@coventia/softphone 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{call-DUVnDxsz.d.cts → call-VKq1I8yP.d.cts} +6 -0
- package/dist/{call-DUVnDxsz.d.ts → call-VKq1I8yP.d.ts} +6 -0
- package/dist/{chunk-YWI6EQYS.js → chunk-EYEDPD7Y.js} +108 -15
- package/dist/chunk-EYEDPD7Y.js.map +1 -0
- package/dist/element/index.d.ts +8 -2
- package/dist/element/index.js +334 -249
- package/dist/element/index.js.map +1 -1
- package/dist/{engine-CDjkrXHY.d.cts → engine-BlQBo2Ys.d.cts} +1 -1
- package/dist/{engine-EPCKf-Bl.d.ts → engine-C0BOkIcW.d.ts} +1 -1
- package/dist/index.cjs +199 -23
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +90 -11
- package/dist/index.js.map +1 -1
- package/dist/react/index.d.cts +2 -2
- package/dist/react/index.d.ts +2 -2
- package/dist/{softphone-BtdgZWkm.d.ts → softphone-Cyq3hiIM.d.ts} +1 -1
- package/dist/{softphone-DHG9MTNg.d.cts → softphone-DlGV12Xp.d.cts} +1 -1
- package/dist/softphone.css +82 -34
- package/dist/{sources-5L2R4HTV.js → sources-IRKNQPWW.js} +6 -2
- package/dist/sources-IRKNQPWW.js.map +1 -0
- package/dist/testing/index.d.cts +2 -2
- package/dist/testing/index.d.ts +2 -2
- package/dist/ui/index.cjs +332 -247
- package/dist/ui/index.cjs.map +1 -1
- package/dist/ui/index.d.cts +17 -6
- package/dist/ui/index.d.ts +17 -6
- package/dist/ui/index.js +332 -247
- package/dist/ui/index.js.map +1 -1
- package/dist/zadarma/index.cjs +106 -13
- package/dist/zadarma/index.cjs.map +1 -1
- package/dist/zadarma/index.d.cts +2 -2
- package/dist/zadarma/index.d.ts +2 -2
- package/dist/zadarma/index.js +1 -1
- package/dist/zadarma-engine-L5DEFXUS.js +5 -0
- package/dist/{zadarma-engine-4VOPIBXG.js.map → zadarma-engine-L5DEFXUS.js.map} +1 -1
- package/package.json +1 -1
- package/dist/chunk-YWI6EQYS.js.map +0 -1
- package/dist/sources-5L2R4HTV.js.map +0 -1
- package/dist/zadarma-engine-4VOPIBXG.js +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/scheduler/cjs/scheduler.production.min.js","../../../../node_modules/scheduler/index.js","../../../../node_modules/react-dom/cjs/react-dom.production.min.js","../../../../node_modules/react-dom/index.js","../../../../node_modules/react-dom/client.js","../../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../../node_modules/react/jsx-runtime.js","../../src/element/index.ts","../../src/react/context.tsx","../../src/ui/SoftphoneWidget.tsx","../../../../node_modules/shared/src/utils.ts","../../../../node_modules/lucide-react/src/defaultAttributes.ts","../../../../node_modules/lucide-react/src/Icon.ts","../../../../node_modules/lucide-react/src/createLucideIcon.ts","../../../../node_modules/lucide-react/src/icons/arrow-left-right.ts","../../../../node_modules/lucide-react/src/icons/arrow-left.ts","../../../../node_modules/lucide-react/src/icons/arrow-right.ts","../../../../node_modules/lucide-react/src/icons/calendar-clock.ts","../../../../node_modules/lucide-react/src/icons/check.ts","../../../../node_modules/lucide-react/src/icons/chevron-down.ts","../../../../node_modules/lucide-react/src/icons/chevron-right.ts","../../../../node_modules/lucide-react/src/icons/circle-help.ts","../../../../node_modules/lucide-react/src/icons/clock.ts","../../../../node_modules/lucide-react/src/icons/delete.ts","../../../../node_modules/lucide-react/src/icons/external-link.ts","../../../../node_modules/lucide-react/src/icons/grid-3x3.ts","../../../../node_modules/lucide-react/src/icons/hash.ts","../../../../node_modules/lucide-react/src/icons/headphones.ts","../../../../node_modules/lucide-react/src/icons/loader-circle.ts","../../../../node_modules/lucide-react/src/icons/mic-off.ts","../../../../node_modules/lucide-react/src/icons/mic.ts","../../../../node_modules/lucide-react/src/icons/monitor-smartphone.ts","../../../../node_modules/lucide-react/src/icons/pause.ts","../../../../node_modules/lucide-react/src/icons/phone-incoming.ts","../../../../node_modules/lucide-react/src/icons/phone-missed.ts","../../../../node_modules/lucide-react/src/icons/phone-off.ts","../../../../node_modules/lucide-react/src/icons/phone-outgoing.ts","../../../../node_modules/lucide-react/src/icons/phone.ts","../../../../node_modules/lucide-react/src/icons/play.ts","../../../../node_modules/lucide-react/src/icons/search.ts","../../../../node_modules/lucide-react/src/icons/settings.ts","../../../../node_modules/lucide-react/src/icons/timer.ts","../../../../node_modules/lucide-react/src/icons/triangle-alert.ts","../../../../node_modules/lucide-react/src/icons/user.ts","../../../../node_modules/lucide-react/src/icons/users.ts","../../../../node_modules/lucide-react/src/icons/x.ts","../../src/react/hooks.ts","../../src/ui/views/Dialpad.tsx","../../src/ui/dialing/CountryPicker.tsx","../../src/ui/dialing/countries.ts","../../src/ui/dialing/format-number.ts","../../src/ui/views/CallScreen.tsx","../../src/ui/lib/format.ts","../../src/ui/lib/error-text.ts","../../src/ui/lib/useTicker.ts","../../src/ui/views/DevicePicker.tsx","../../src/ui/views/ContactsTab.tsx","../../src/ui/views/DetailRow.tsx","../../src/ui/views/ContactDetail.tsx","../../src/ui/lib/useInfiniteList.ts","../../src/ui/views/HistoryTab.tsx","../../src/ui/views/HistoryDetail.tsx","../../src/ui/views/history-format.tsx","../../src/ui/views/SettingsSection.tsx","../../src/ui/views/SettingsTab.tsx","../../src/ui/permission/useMicPermission.ts","../../src/core/env.ts","../../src/ui/permission/unblock-mic.ts","../../src/ui/permission/MicPermissionGate.tsx","../../src/ui/permission/ErrorGate.tsx","../../src/ui/permission/LeaderGate.tsx","../../src/ui/lib/useCallOutcome.ts","../../src/ui/audio/useCallAudio.ts","../../src/ui/audio/audio.ts","../../src/ui/notices/TransferNotices.tsx","../../src/ui/notices/useTransferNotices.ts","../../src/styles/softphone.css"],"names":["a","b","d","e","g","h","k","c","f","l","m","n","t","X","import_react","import_jsx_runtime","Icon","formatIntl","loading","PAGE"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\r\n * `<coventia-softphone>` — the drop-in Web Component (SPEC §2.5).\r\n *\r\n * A Custom Element is a DOM element, so ANY framework can place it: React, Vue, Angular, Svelte,\r\n * plain HTML, or HTML rendered by PHP/Laravel/Rails. This entry bundles its own React and stylesheet,\r\n * so a host with no npm and no React gets a working softphone from one <script> and one tag.\r\n *\r\n * **A React host should NOT use this** — import `@coventia/softphone/react` + `/ui` instead, which\r\n * reuses the host's React. The element's bundled React is a second copy, worth paying for only when\r\n * the host has none.\r\n *\r\n * Rendered into a SHADOW ROOT: the host's CSS selectors cannot reach in and break the layout (a\r\n * stray `button { width:100% }` would destroy the dialpad). Theming still works fully, because custom\r\n * properties inherit THROUGH the shadow boundary — see SPEC §2.6 and `::part()` below.\r\n */\r\nimport { createElement } from 'react';\r\nimport { createRoot, type Root } from 'react-dom/client';\r\nimport { SoftphoneProvider } from '../react/context.js';\r\nimport { SoftphoneWidget } from '../ui/SoftphoneWidget.js';\r\nimport { SoftphoneEvent, CallEvent } from '../core/events.js';\r\nimport type { Softphone } from '../core/softphone.js';\r\nimport type { Call, HangupReason } from '../core/call.js';\r\nimport type {\r\n SoftphoneTheme,\r\n ContactAction,\r\n ContactsSource,\r\n HistorySource,\r\n SoftphoneWidgetProps,\r\n} from '../ui/types.js';\r\nimport type { CallDirection, SoftphoneState, TransferOutcomeEvent } from '../core/types.js';\r\nimport type { SoftphoneErrorCode } from '../core/errors.js';\r\n// Inlined by the element build (`loader: { '.css': 'text' }`) — the drop-in needs no <link>.\r\nimport css from '../styles/softphone.css';\r\n\r\n/**\r\n * Config that cannot be expressed as HTML attributes.\r\n *\r\n * Attributes are strings; `contacts`/`history`/`contactAction` carry FUNCTIONS. So this is set as a\r\n * JS PROPERTY, not an attribute — one line in vanilla JS or a PHP-rendered page. (`theme` is a\r\n * string, so it is also available as the `theme` attribute.)\r\n */\r\nexport interface SoftphoneElementConfig {\r\n /**\r\n * Ask for the microphone before showing the dialer. **On by default** — see\r\n * `SoftphoneWidgetProps.requireMic`. Set `false` only when the mic is somebody else's problem.\r\n */\r\n readonly requireMic?: boolean;\r\n /**\r\n * Play call audio — the remote party, the inbound ring, the outbound ringback. **On by default**;\r\n * see `SoftphoneWidgetProps.sounds`.\r\n *\r\n * Turning this off makes a connected call silent in both directions, because nothing else attaches\r\n * the remote `MediaStream`. Only correct when the host attaches `call.remoteStream` itself, or for\r\n * a view that watches calls without listening to them.\r\n */\r\n readonly sounds?: boolean;\r\n readonly contacts?: ContactsSource;\r\n readonly history?: HistorySource;\r\n /** The action row on a contact's detail page. See `ContactAction` from `@coventia/softphone/ui`. */\r\n readonly contactAction?: ContactAction;\r\n /**\r\n * A second, independent action chip on the INCOMING call screen — see `ContactAction` and\r\n * `SoftphoneWidgetProps.incomingCallAction`. A different value from `contactAction`, not the same\r\n * one reused; a host may configure either, both, or neither.\r\n */\r\n readonly incomingCallAction?: ContactAction;\r\n readonly theme?: SoftphoneTheme;\r\n}\r\n\r\n/**\r\n * Every CustomEvent the element dispatches, with its payload. The single source of truth for both\r\n * sides of the wire.\r\n *\r\n * **Emitting** (`#emit`): fully checked — a name outside this map, or a payload that does not match\r\n * it, is a compile error.\r\n *\r\n * **Listening**: merged into the DOM's event maps below, so a TypeScript consumer gets the name\r\n * autocompleted and `e.detail` narrowed, with no cast. One honest gap — a MISSPELLED name is not\r\n * rejected outright: `addEventListener(type: string, …)` is a real DOM overload and must accept any\r\n * string, or arbitrary CustomEvents would be unlistenable. The typo surfaces one step later, as\r\n * \"Property 'detail' does not exist on type 'Event'\", since the fallback overload hands back a plain\r\n * `Event`. So a typo is caught if the handler reads the payload, and silent if it ignores it.\r\n */\r\nexport interface SoftphoneElementEventMap {\r\n /** The connection state changed (registering, ready, reconnecting…). */\r\n 'cv-state-changed': CustomEvent<{ readonly state: SoftphoneState }>;\r\n /** An inbound INVITE landed. `name` IS the number until a contact resolves (SPEC §5.4). */\r\n 'cv-incoming-call': CustomEvent<{ readonly number: string; readonly name: string }>;\r\n /** A call became the active one, in either direction. */\r\n 'cv-call-started': CustomEvent<{ readonly number: string; readonly direction: CallDirection }>;\r\n /** The active call ended, for `reason`. */\r\n 'cv-call-ended': CustomEvent<{ readonly number: string; readonly reason: HangupReason }>;\r\n /**\r\n * Something failed. **The widget has already shown the user why** — a fatal error replaces the\r\n * dialpad, a call outcome appears as a line under the number — so this is for the host's own\r\n * logging, toasts or call records, not for building an error UI that would say it twice.\r\n *\r\n * `message` is the DEVELOPER's sentence and is English (see `ERROR_CATALOGUE`). It belongs in a log\r\n * or a Sentry group, never on screen. The user's Spanish copy is the widget's business.\r\n *\r\n * `fatal` is the split worth branching on: `true` means calling is impossible until something\r\n * changes, `false` means one call ended badly and the phone is still fine.\r\n */\r\n 'cv-error': CustomEvent<{\r\n readonly code: SoftphoneErrorCode;\r\n readonly fatal: boolean;\r\n readonly message: string;\r\n }>;\r\n /**\r\n * This tab's leadership changed (`multi-tab-leader-election.md`) — a DIFFERENT axis from\r\n * `cv-state-changed`: that is reachability, this is whether this tab is even allowed to be\r\n * reachable while another open tab holds the same extension.\r\n */\r\n 'cv-leadership-changed': CustomEvent<{ readonly isLeader: boolean }>;\r\n /**\r\n * A transfer's final handoff step resolved — `status` says whether the caller actually reached\r\n * `target`. Polled, not instant (Phase A, `docs/specs/transfer-outcome-relay.md`); only for that\r\n * handoff, never for the consult leg itself, which already reports its own outcome in real time via\r\n * `cv-call-ended` on that leg. **The widget already shows its own dismissable notice for this** —\r\n * listen here only for your own logging, or if you are replacing the built-in UI.\r\n */\r\n 'cv-transfer-outcome': CustomEvent<TransferOutcomeEvent>;\r\n}\r\n\r\ntype DetailOf<K extends keyof SoftphoneElementEventMap> =\r\n SoftphoneElementEventMap[K] extends CustomEvent<infer D> ? D : never;\r\n\r\n/**\r\n * `satisfies` — not a plain object — so these keys cannot drift from the map above. Add an event to\r\n * the map and forget it here and nothing breaks; get a name WRONG here and it is a compile error.\r\n */\r\nconst EVENTS = {\r\n stateChanged: 'cv-state-changed',\r\n incomingCall: 'cv-incoming-call',\r\n callStarted: 'cv-call-started',\r\n callEnded: 'cv-call-ended',\r\n error: 'cv-error',\r\n leaderChanged: 'cv-leadership-changed',\r\n transferOutcome: 'cv-transfer-outcome',\r\n} as const satisfies Record<string, keyof SoftphoneElementEventMap>;\r\n\r\n/*\r\n * Declaration merging into the DOM's maps. The two `extends`-only interfaces below are flagged by\r\n * `no-empty-object-type`, but emptiness is the POINT here: merging is the only way to teach TS about\r\n * an event the platform has never heard of, and re-listing the members would duplicate the map above\r\n * and let the two drift. Disabled locally rather than loosening the rule for the whole package.\r\n */\r\n/* eslint-disable @typescript-eslint/no-empty-object-type */\r\ndeclare global {\r\n /** `document.querySelector('coventia-softphone')` returns the real type — no cast to set `.softphone`. */\r\n interface HTMLElementTagNameMap {\r\n 'coventia-softphone': CoventiaSoftphoneElement;\r\n }\r\n /** Types `el.addEventListener` — and any ANCESTOR's, since these events bubble. */\r\n interface HTMLElementEventMap extends SoftphoneElementEventMap {}\r\n /**\r\n * Types `document.addEventListener` too. Needed separately: `DocumentEventMap` extends\r\n * `GlobalEventHandlersEventMap`, NOT `HTMLElementEventMap` — so augmenting the element map alone\r\n * would leave the most common listening spot for a `composed` event untyped.\r\n */\r\n interface DocumentEventMap extends SoftphoneElementEventMap {}\r\n}\r\n/* eslint-enable @typescript-eslint/no-empty-object-type */\r\n\r\nexport class CoventiaSoftphoneElement extends HTMLElement {\r\n /**\r\n * `require-mic` and `sounds` are here so a host with **no JavaScript at all** can turn them off —\r\n * a PHP/WordPress page or a CDN `<script>` drop-in, which is the whole point of this entry. The\r\n * function-valued config (contacts, history, contactAction) can never be attributes; these two\r\n * are booleans and have no such excuse.\r\n */\r\n static readonly observedAttributes = ['theme', 'require-mic', 'sounds'];\r\n\r\n #root: Root | null = null;\r\n #softphone: Softphone | null = null;\r\n #config: SoftphoneElementConfig = {};\r\n #unsubscribe: Array<() => void> = [];\r\n readonly #shadow: ShadowRoot;\r\n /**\r\n * React's container. Held explicitly rather than looked up by position in the shadow root: any\r\n * node appended here later would silently steal the lookup and mount the widget into the wrong\r\n * element.\r\n *\r\n * It carries `cv-mount`, which exists for one reason: this div must not break the height chain.\r\n * `.cv-softphone` is `height: 100%`, and a percentage height resolves against the PARENT — so an\r\n * unstyled wrapper here silently computes to `auto`, the widget shrinks to its content, and the\r\n * host's `height` is quietly ignored. React hosts never see it (they render the widget straight\r\n * into their own sized box); the element is the only path with a wrapper to get wrong.\r\n */\r\n readonly #mount: HTMLElement;\r\n\r\n constructor() {\r\n super();\r\n this.#shadow = this.attachShadow({ mode: 'open' });\r\n const style = document.createElement('style');\r\n style.textContent = css;\r\n this.#mount = document.createElement('div');\r\n this.#mount.className = 'cv-mount';\r\n this.#shadow.append(style, this.#mount);\r\n }\r\n\r\n /**\r\n * The engine. REQUIRED — the host constructs it, so it owns the connection's lifetime and can keep\r\n * a call alive across re-renders/navigations (SPEC §5.1).\r\n *\r\n * el.softphone = createSoftphone({ tokenSource, provider: createZadarmaEngine({…}) });\r\n */\r\n get softphone(): Softphone | null {\r\n return this.#softphone;\r\n }\r\n set softphone(value: Softphone | null) {\r\n this.#detach();\r\n this.#softphone = value;\r\n this.#attach();\r\n this.#render();\r\n }\r\n\r\n /** Config carrying functions (contacts/history/contactAction) — a property, not an attribute. */\r\n get config(): SoftphoneElementConfig {\r\n return this.#config;\r\n }\r\n set config(value: SoftphoneElementConfig) {\r\n this.#config = value ?? {};\r\n this.#render();\r\n }\r\n\r\n connectedCallback(): void {\r\n this.#attach(); // idempotent — re-subscribes if a real removal tore us down\r\n this.#render();\r\n }\r\n\r\n /**\r\n * Moving a node in the DOM fires disconnect→connect **synchronously**, so nothing may be torn down\r\n * here: by the next microtask the element may be connected again. Deferring the decision — not just\r\n * the unmount — is what makes a move survivable. Two things go wrong if you tear down eagerly:\r\n *\r\n * - `#detach()` here kills the engine subscriptions, and `#attach()` would not run again → the\r\n * widget still renders but `cv-*` events stop forever. Silent, and invisible in the UI.\r\n * - Nulling `#root` here makes the reconnect's `??=` call `createRoot` on a container that\r\n * already has a root (\"You are calling createRoot() on a container that has already been\r\n * passed to createRoot()\") — two roots on one div.\r\n *\r\n * The unmount stays asynchronous regardless: React forbids unmounting synchronously from inside a\r\n * lifecycle it may still be rendering.\r\n */\r\n disconnectedCallback(): void {\r\n queueMicrotask(() => {\r\n if (this.isConnected) return; // it was a move — keep the listeners and the root\r\n this.#detach();\r\n const root = this.#root;\r\n this.#root = null;\r\n root?.unmount();\r\n });\r\n }\r\n\r\n attributeChangedCallback(): void {\r\n this.#render();\r\n }\r\n\r\n // ── internals ──────────────────────────────────────────────────────────────\r\n #attach(): void {\r\n const phone = this.#softphone;\r\n if (!phone || this.#unsubscribe.length) return; // already subscribed — never double-subscribe\r\n\r\n // Mirror engine events out as CustomEvents so a non-React host can react to calls without\r\n // touching the JS API. They bubble + compose so they escape the shadow root.\r\n this.#unsubscribe = [\r\n phone.on(SoftphoneEvent.StateChanged, ({ state }) => this.#emit(EVENTS.stateChanged, { state })),\r\n phone.on(SoftphoneEvent.IncomingCall, (call: Call) =>\r\n this.#emit(EVENTS.incomingCall, { number: call.remote.number, name: call.remote.displayName }),\r\n ),\r\n phone.on(SoftphoneEvent.ActiveCallChanged, ({ call }) => {\r\n if (!call) return;\r\n this.#emit(EVENTS.callStarted, { number: call.remote.number, direction: call.direction });\r\n const off = call.on(CallEvent.Ended, ({ reason }) => {\r\n off();\r\n this.#emit(EVENTS.callEnded, { number: call.remote.number, reason });\r\n });\r\n }),\r\n // `message` is deliberately the English developer string, not the Spanish the widget shows —\r\n // a host reading this is logging, and a log in the reader's language is worth more than one in\r\n // the caller's. `error.cause` is not forwarded: it holds live objects (a DOM error, a JsSIP\r\n // response) that do not survive a CustomEvent boundary usefully.\r\n phone.on(SoftphoneEvent.Error, (error) =>\r\n this.#emit(EVENTS.error, { code: error.code, fatal: error.fatal, message: error.message }),\r\n ),\r\n phone.on(SoftphoneEvent.LeaderChanged, ({ isLeader }) =>\r\n this.#emit(EVENTS.leaderChanged, { isLeader }),\r\n ),\r\n // Payload is already exactly `TransferOutcomeEvent` — no reshaping needed, unlike the events above.\r\n phone.on(SoftphoneEvent.TransferOutcome, (payload) => this.#emit(EVENTS.transferOutcome, payload)),\r\n ];\r\n }\r\n\r\n #detach(): void {\r\n for (const off of this.#unsubscribe) off();\r\n this.#unsubscribe = [];\r\n }\r\n\r\n /**\r\n * Read a tri-state boolean attribute: `true`, `false`, or \"not stated\".\r\n *\r\n * **Not an HTML boolean attribute**, deliberately. `disabled`-style presence-means-true cannot\r\n * express the only thing anyone needs here: both flags default to ON, so the useful instruction is\r\n * `sounds=\"false\"`. This follows `draggable`/`contenteditable` instead — enumerated, value-carrying.\r\n *\r\n * An unrecognised value returns undefined and so falls back to the default, which for both of these\r\n * is the safe direction: a typo leaves the mic gate and call audio ON rather than silently\r\n * shipping a dialer that cannot be heard.\r\n */\r\n #boolAttr(name: string): boolean | undefined {\r\n const raw = this.getAttribute(name);\r\n if (raw === null) return undefined;\r\n const value = raw.trim().toLowerCase();\r\n if (value === 'false') return false;\r\n // `''` is bare presence (`<coventia-softphone sounds>`), which reads as true to anyone.\r\n if (value === 'true' || value === '') return true;\r\n return undefined;\r\n }\r\n\r\n /** `bubbles` + `composed` are what let these escape the shadow root at all — see the file header. */\r\n #emit<K extends keyof SoftphoneElementEventMap>(type: K, detail: DetailOf<K>): void {\r\n this.dispatchEvent(new CustomEvent(type, { detail, bubbles: true, composed: true }));\r\n }\r\n\r\n #render(): void {\r\n if (!this.isConnected || !this.#softphone) return;\r\n this.#root ??= createRoot(this.#mount);\r\n\r\n const attrTheme = this.getAttribute('theme') as SoftphoneTheme | null;\r\n /*\r\n * The `config` PROPERTY wins over the attribute, for all three. A host that sets both has a\r\n * build step and a JS object; the attribute is the fallback for hosts that have neither, so it\r\n * must not override the more specific source. `??` and not `||`, so `false` is honoured.\r\n */\r\n const theme = this.#config.theme ?? attrTheme ?? 'system';\r\n const requireMic = this.#config.requireMic ?? this.#boolAttr('require-mic');\r\n const sounds = this.#config.sounds ?? this.#boolAttr('sounds');\r\n\r\n // Built as one typed object rather than inline conditional spreads: under\r\n // exactOptionalPropertyTypes the spreads widen the type and no createElement overload matches.\r\n const widgetProps: SoftphoneWidgetProps = {\r\n theme,\r\n ...(requireMic === undefined ? {} : { requireMic }),\r\n ...(sounds === undefined ? {} : { sounds }),\r\n ...(this.#config.contacts ? { contacts: this.#config.contacts } : {}),\r\n ...(this.#config.history ? { history: this.#config.history } : {}),\r\n ...(this.#config.contactAction ? { contactAction: this.#config.contactAction } : {}),\r\n ...(this.#config.incomingCallAction ? { incomingCallAction: this.#config.incomingCallAction } : {}),\r\n };\r\n\r\n this.#root.render(\r\n createElement(\r\n SoftphoneProvider,\r\n { softphone: this.#softphone, children: createElement(SoftphoneWidget, widgetProps) },\r\n ),\r\n );\r\n }\r\n}\r\n\r\n/** Register the element. Idempotent — a page may load the bundle more than once. */\r\nexport function defineSoftphoneElement(tagName = 'coventia-softphone'): void {\r\n if (typeof customElements === 'undefined') return; // SSR / non-browser — no-op\r\n if (customElements.get(tagName)) return;\r\n customElements.define(tagName, CoventiaSoftphoneElement);\r\n}\r\n\r\n// Auto-register for the `<script type=\"module\" src=\"…/element.js\">` case, which is the whole point\r\n// of the drop-in. Guarded so importing this module under SSR is still safe (SPEC §10.2).\r\ndefineSoftphoneElement();\r\n","import { createContext, useContext, type ReactNode } from 'react';\r\nimport type { Softphone } from '../core/softphone.js';\r\n\r\n/**\r\n * The provider takes an INSTANCE the host constructed — not config props.\r\n *\r\n * This is LiveKit's hard-won lesson (SPEC §5.1): they are deprecating their config-props\r\n * `<LiveKitRoom>` in favour of a provider that accepts an instance. Holding the `Softphone` above the\r\n * React tree lets the app own the connection, survive route changes and unmounts without dropping a\r\n * call, and unit-test the engine with no React at all. Config-props would rebuild the engine on\r\n * every prop change — catastrophic for something holding a live `RTCPeerConnection`.\r\n */\r\nconst SoftphoneContext = createContext<Softphone | null>(null);\r\n\r\nexport interface SoftphoneProviderProps {\r\n readonly softphone: Softphone;\r\n readonly children: ReactNode;\r\n}\r\n\r\nexport function SoftphoneProvider({ softphone, children }: SoftphoneProviderProps) {\r\n return <SoftphoneContext.Provider value={softphone}>{children}</SoftphoneContext.Provider>;\r\n}\r\n\r\n/** The `Softphone` instance from context. Stable — does not re-render on state changes. */\r\nexport function useSoftphone(): Softphone {\r\n const softphone = useContext(SoftphoneContext);\r\n if (!softphone) {\r\n throw new Error('useSoftphone() must be used within a <SoftphoneProvider>.');\r\n }\r\n return softphone;\r\n}\r\n","import { useState } from 'react';\r\nimport { Grid3x3, Users, Clock, Settings } from 'lucide-react';\r\nimport {\r\n useActiveCall,\r\n useIsLeader,\r\n useLastError,\r\n useSoftphone,\r\n useSoftphoneState,\r\n} from '../react/index.js';\r\nimport { Dialpad } from './views/Dialpad.js';\r\nimport { CallScreen } from './views/CallScreen.js';\r\nimport { ContactsTab } from './views/ContactsTab.js';\r\nimport { HistoryTab } from './views/HistoryTab.js';\r\nimport { SettingsTab } from './views/SettingsTab.js';\r\nimport { MicPrompt } from './permission/MicPermissionGate.js';\r\nimport { ErrorGate } from './permission/ErrorGate.js';\r\nimport { LeaderGate } from './permission/LeaderGate.js';\r\nimport { useCallOutcome } from './lib/useCallOutcome.js';\r\nimport { useMicPermission } from './permission/useMicPermission.js';\r\nimport { useCallAudio } from './audio/useCallAudio.js';\r\nimport { TransferNotices } from './notices/TransferNotices.js';\r\nimport { useTransferNotices } from './notices/useTransferNotices.js';\r\nimport type { SoftphoneWidgetProps } from './types.js';\r\n\r\ntype TabId = 'dialer' | 'contacts' | 'history' | 'settings';\r\n\r\n/**\r\n * The softphone widget (legacy ZadarmaWidget) — the drop-in call UI. Wrap it in a\r\n * `<SoftphoneProvider softphone={…}>` and that is all: it asks for the microphone ITSELF\r\n * (`requireMic`, on by default), so no integrator has to know that a phone needs one.\r\n *\r\n * When a call is live, the call screen takes the whole body and the tabs hide. Otherwise the tabbed\r\n * interface (Teclado / Contactos / Historial) shows. Contactos/Historial appear only when their data\r\n * source is provided — the widget stays useful as a bare dialer with no backend at all.\r\n */\r\nexport function SoftphoneWidget(props: SoftphoneWidgetProps) {\r\n const {\r\n contacts,\r\n history,\r\n contactAction,\r\n incomingCallAction,\r\n className,\r\n theme = 'system',\r\n requireMic = true,\r\n sounds = true,\r\n } = props;\r\n const softphone = useSoftphone();\r\n\r\n /*\r\n * The sources come from the SOFTPHONE, not from a prop.\r\n *\r\n * `createSoftphone({ coventia })` builds them once, because caller ID has to work when an INVITE\r\n * lands — which can be before any UI is mounted. Reading them back here means one instance and one\r\n * name cache, and a host never imports an adapter or repeats a config to wire the tabs.\r\n *\r\n * An explicit `contacts`/`history` prop still wins, for a host driving the UI from somewhere else.\r\n */\r\n const fallback = softphone.sources;\r\n const contactsSource = contacts ?? fallback?.contacts;\r\n const historySource = history ?? fallback?.history;\r\n const [tab, setTab] = useState<TabId>('dialer');\r\n const call = useActiveCall();\r\n const isLeader = useIsLeader();\r\n const softphoneState = useSoftphoneState();\r\n // `isLeader` alone cannot tell \"never started\" from \"started, currently a follower\" — both are\r\n // `isLeader === false`. `state === 'starting'` is the disambiguator: it now covers the whole\r\n // in-progress window, including waiting behind another tab (SPEC — `softphone-impl.ts#start()`,\r\n // `multi-tab-leader-election.md` §3.4). A phone that was simply never `start()`-ed must fall\r\n // through to the mic gate / dialer exactly as before this feature existed.\r\n const isFollower = !isLeader && softphoneState === 'starting';\r\n // Always called — hooks cannot be conditional — but ignored when the host opted out.\r\n const mic = useMicPermission();\r\n // The remote party, the ring, the ringback. Without it a connected call is silent.\r\n useCallAudio(sounds);\r\n const blocked = requireMic && mic.state !== 'ready';\r\n const fatal = useLastError();\r\n // Shared by the tab bar (below) and `TransferNotices`: both are lower-priority than whatever else\r\n // the widget might be showing, and both simply don't render — never hidden, never queued behind —\r\n // while a call, the mic gate, a fatal error, or another tab's leadership owns the screen instead.\r\n const screenIsFree = !call && !blocked && !fatal && !isFollower;\r\n // Held HERE, not in the dialpad: the outcome is raised as the call ends, which is the same moment\r\n // the dialpad remounts — it would be born into a remounting component and lost.\r\n const { outcome, clear: clearOutcome } = useCallOutcome();\r\n // Held HERE too, and for a stronger version of the same reason: an outcome for an EARLIER transfer\r\n // can arrive while the agent is on a brand new, unrelated call — `TransferNotices` below is only\r\n // ever RENDERED once the screen is free, but the SUBSCRIPTION must stay alive the whole time the\r\n // widget is mounted, or that outcome reaches nobody (`useTransferNotices`'s own comment).\r\n const { notices: transferNotices, dismiss: dismissTransferNotice } = useTransferNotices();\r\n\r\n /*\r\n * `stop()` then `start()`, not `start()` alone — `start()` early-returns once the softphone has\r\n * been started, so on its own it would be a button that visibly does nothing.\r\n *\r\n * The round trip is also what makes recovery observable: it tears the signal channel down and\r\n * builds it again with fresh credentials, producing a real `offline → online` transition, which is\r\n * what clears `lastError` and takes the gate away. If it fails the same way, the error is\r\n * re-emitted and the gate returns — which is the honest outcome.\r\n */\r\n const retry = () => {\r\n void (async () => {\r\n try {\r\n await softphone.stop();\r\n await softphone.start();\r\n } catch {\r\n // Already reported through the error channel; the gate simply stays.\r\n }\r\n })();\r\n };\r\n\r\n const tabs = [\r\n { id: 'dialer' as const, icon: Grid3x3, label: 'Teclado', show: true },\r\n { id: 'contacts' as const, icon: Users, label: 'Contactos', show: !!contactsSource },\r\n { id: 'history' as const, icon: Clock, label: 'Historial', show: !!historySource },\r\n // Unlike Contactos/Historial, needs no host-supplied source — a microphone and a speaker are not\r\n // optional parts of a phone, so this is never conditionally hidden.\r\n { id: 'settings' as const, icon: Settings, label: 'Ajustes', show: true },\r\n ].filter((t) => t.show);\r\n\r\n return (\r\n <div\r\n className={className ? `cv-softphone ${className}` : 'cv-softphone'}\r\n // 'system' omits the attribute entirely, letting the prefers-color-scheme media query decide.\r\n {...(theme === 'system' ? {} : { 'data-cv-theme': theme })}\r\n >\r\n {/*\r\n A sibling of `.cv-body`, not inside it: a persistent notice must never scroll away with a long\r\n Contactos/Historial list, and must stay put across every tab. It OVERLAYS `.cv-body` (CSS —\r\n `position: absolute`) rather than pushing it down, so the widget's overall height never changes\r\n just because a notice appeared or was dismissed. `screenIsFree` gates it the same way it gates\r\n the tab bar below — it simply doesn't render, rather than queuing, while a call, the mic gate, a\r\n fatal error or another tab's leadership needs the screen instead.\r\n */}\r\n {screenIsFree ? (\r\n <TransferNotices notices={transferNotices} dismiss={dismissTransferNotice} />\r\n ) : null}\r\n <div className=\"cv-body\">\r\n {/*\r\n Order matters. `isFollower` comes FIRST, ahead even of the mic gate: another open tab\r\n holding this extension is a structural reason this tab cannot call, and asking for\r\n microphone permission somewhere that can never place or receive a call would be pure\r\n friction (`multi-tab-leader-election.md`). It clears on its own — no user action here helps\r\n it along. (A phone that was simply never `start()`-ed is NOT a follower — `isFollower`\r\n requires `state === 'starting'` too — so it falls through to the checks below, unchanged.)\r\n\r\n The mic gate comes next because it IS the precondition once leadership is not in question: no\r\n microphone means no call regardless of anything else, and it is the one thing here the user\r\n can complete right now. A fatal error outlives it — `lastError` persists — so nothing is lost\r\n by showing the actionable thing first.\r\n\r\n The call screen outranks the error gate, which is how \"suppress during a call\" is enforced:\r\n a live call is the highest-value state the widget has and nothing may cover it.\r\n */}\r\n {isFollower ? (\r\n <LeaderGate />\r\n ) : blocked ? (\r\n <MicPrompt state={mic.state} onRequest={() => void mic.request()} />\r\n ) : call ? (\r\n <CallScreen call={call} {...(incomingCallAction ? { incomingCallAction } : {})} />\r\n ) : fatal ? (\r\n <ErrorGate error={fatal} onRetry={retry} />\r\n ) : tab === 'contacts' && contactsSource ? (\r\n <ContactsTab source={contactsSource} {...(contactAction ? { contactAction } : {})} />\r\n ) : tab === 'history' && historySource ? (\r\n <HistoryTab source={historySource} />\r\n ) : tab === 'settings' ? (\r\n <SettingsTab />\r\n ) : (\r\n <Dialpad outcome={outcome} onIntent={clearOutcome} />\r\n )}\r\n </div>\r\n\r\n {/* No tabs while the mic is pending: Contactos and Historial would work, but offering them\r\n implies the phone is usable, and it is not until the mic is granted. Same reasoning extends\r\n to `isFollower` — a follower tab has nothing behind any of these tabs to be usable at all. */}\r\n {screenIsFree ? (\r\n <div className=\"cv-tabs\" role=\"tablist\">\r\n {tabs.map(({ id, icon: Icon, label }) => (\r\n <button\r\n key={id}\r\n role=\"tab\"\r\n aria-selected={tab === id}\r\n className=\"cv-tab\"\r\n onClick={() => setTab(id)}\r\n >\r\n <Icon size={20} />\r\n <span>{label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n })\n .join(' ');\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) => {\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props,\n }),\n );\n\n Component.displayName = `${iconName}`;\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeftRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeftRight = createLucideIcon('ArrowLeftRight', [\n ['path', { d: 'M8 3 4 7l4 4', key: '9rb6wj' }],\n ['path', { d: 'M4 7h16', key: '6tx8e3' }],\n ['path', { d: 'm16 21 4-4-4-4', key: 'siv7j2' }],\n ['path', { d: 'M20 17H4', key: 'h6l3hr' }],\n]);\n\nexport default ArrowLeftRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeft = createLucideIcon('ArrowLeft', [\n ['path', { d: 'm12 19-7-7 7-7', key: '1l729n' }],\n ['path', { d: 'M19 12H5', key: 'x3x0zl' }],\n]);\n\nexport default ArrowLeft;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowRight = createLucideIcon('ArrowRight', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'm12 5 7 7-7 7', key: 'xquz4c' }],\n]);\n\nexport default ArrowRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CalendarClock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/calendar-clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CalendarClock = createLucideIcon('CalendarClock', [\n ['path', { d: 'M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5', key: '1osxxc' }],\n ['path', { d: 'M16 2v4', key: '4m81vk' }],\n ['path', { d: 'M8 2v4', key: '1cmpym' }],\n ['path', { d: 'M3 10h5', key: 'r794hk' }],\n ['path', { d: 'M17.5 17.5 16 16.3V14', key: 'akvzfd' }],\n ['circle', { cx: '16', cy: '16', r: '6', key: 'qoo3c4' }],\n]);\n\nexport default CalendarClock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('Check', [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]]);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('ChevronDown', [\n ['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }],\n]);\n\nexport default ChevronDown;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('ChevronRight', [\n ['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }],\n]);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleHelp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-help\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleHelp = createLucideIcon('CircleHelp', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3', key: '1u773s' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default CircleHelp;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Clock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Clock = createLucideIcon('Clock', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['polyline', { points: '12 6 12 12 16 14', key: '68esgv' }],\n]);\n\nexport default Clock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Delete\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/delete\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Delete = createLucideIcon('Delete', [\n [\n 'path',\n {\n d: 'M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z',\n key: '1yo7s0',\n },\n ],\n ['path', { d: 'm12 9 6 6', key: 'anjzzh' }],\n ['path', { d: 'm18 9-6 6', key: '1fp51s' }],\n]);\n\nexport default Delete;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('ExternalLink', [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n]);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Grid3x3\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/grid-3x3\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Grid3x3 = createLucideIcon('Grid3x3', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n ['path', { d: 'M3 9h18', key: '1pudct' }],\n ['path', { d: 'M3 15h18', key: '5xshup' }],\n ['path', { d: 'M9 3v18', key: 'fh3hqa' }],\n ['path', { d: 'M15 3v18', key: '14nvp0' }],\n]);\n\nexport default Grid3x3;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Hash\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/hash\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Hash = createLucideIcon('Hash', [\n ['line', { x1: '4', x2: '20', y1: '9', y2: '9', key: '4lhtct' }],\n ['line', { x1: '4', x2: '20', y1: '15', y2: '15', key: 'vyu0kd' }],\n ['line', { x1: '10', x2: '8', y1: '3', y2: '21', key: '1ggp8o' }],\n ['line', { x1: '16', x2: '14', y1: '3', y2: '21', key: 'weycgp' }],\n]);\n\nexport default Hash;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Headphones\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/headphones\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Headphones = createLucideIcon('Headphones', [\n [\n 'path',\n {\n d: 'M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3',\n key: '1xhozi',\n },\n ],\n]);\n\nexport default Headphones;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name LoaderCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LoaderCircle = createLucideIcon('LoaderCircle', [\n ['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }],\n]);\n\nexport default LoaderCircle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MicOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/mic-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MicOff = createLucideIcon('MicOff', [\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22', key: 'a6p6uj' }],\n ['path', { d: 'M18.89 13.23A7.12 7.12 0 0 0 19 12v-2', key: '80xlxr' }],\n ['path', { d: 'M5 10v2a7 7 0 0 0 12 5', key: 'p2k8kg' }],\n ['path', { d: 'M15 9.34V5a3 3 0 0 0-5.68-1.33', key: '1gzdoj' }],\n ['path', { d: 'M9 9v3a3 3 0 0 0 5.12 2.12', key: 'r2i35w' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22', key: 'x3vr5v' }],\n]);\n\nexport default MicOff;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Mic\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/mic\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Mic = createLucideIcon('Mic', [\n ['path', { d: 'M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z', key: '131961' }],\n ['path', { d: 'M19 10v2a7 7 0 0 1-14 0v-2', key: '1vc78b' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22', key: 'x3vr5v' }],\n]);\n\nexport default Mic;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MonitorSmartphone\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/monitor-smartphone\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MonitorSmartphone = createLucideIcon('MonitorSmartphone', [\n ['path', { d: 'M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8', key: '10dyio' }],\n ['path', { d: 'M10 19v-3.96 3.15', key: '1irgej' }],\n ['path', { d: 'M7 19h5', key: 'qswx4l' }],\n ['rect', { width: '6', height: '10', x: '16', y: '12', rx: '2', key: '1egngj' }],\n]);\n\nexport default MonitorSmartphone;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pause\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/pause\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pause = createLucideIcon('Pause', [\n ['rect', { x: '14', y: '4', width: '4', height: '16', rx: '1', key: 'zuxfzm' }],\n ['rect', { x: '6', y: '4', width: '4', height: '16', rx: '1', key: '1okwgv' }],\n]);\n\nexport default Pause;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneIncoming\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-incoming\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneIncoming = createLucideIcon('PhoneIncoming', [\n ['polyline', { points: '16 2 16 8 22 8', key: '1ygljm' }],\n ['line', { x1: '22', x2: '16', y1: '2', y2: '8', key: '1xzwqn' }],\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default PhoneIncoming;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneMissed\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-missed\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneMissed = createLucideIcon('PhoneMissed', [\n ['line', { x1: '22', x2: '16', y1: '2', y2: '8', key: '1xzwqn' }],\n ['line', { x1: '16', x2: '22', y1: '2', y2: '8', key: '13zxdn' }],\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default PhoneMissed;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneOff = createLucideIcon('PhoneOff', [\n [\n 'path',\n {\n d: 'M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91',\n key: 'z86iuo',\n },\n ],\n ['line', { x1: '22', x2: '2', y1: '2', y2: '22', key: '11kh81' }],\n]);\n\nexport default PhoneOff;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneOutgoing\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-outgoing\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneOutgoing = createLucideIcon('PhoneOutgoing', [\n ['polyline', { points: '22 8 22 2 16 2', key: '1g204g' }],\n ['line', { x1: '16', x2: '22', y1: '8', y2: '2', key: '1ggias' }],\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default PhoneOutgoing;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Phone\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Phone = createLucideIcon('Phone', [\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default Phone;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('Play', [\n ['polygon', { points: '6 3 20 12 6 21 6 3', key: '1oa8hb' }],\n]);\n\nexport default Play;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('Search', [\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ['path', { d: 'm21 21-4.3-4.3', key: '1qie3q' }],\n]);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Settings\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/settings\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Settings = createLucideIcon('Settings', [\n [\n 'path',\n {\n d: 'M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z',\n key: '1qme2f',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n]);\n\nexport default Settings;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Timer\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/timer\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Timer = createLucideIcon('Timer', [\n ['line', { x1: '10', x2: '14', y1: '2', y2: '2', key: '14vaq8' }],\n ['line', { x1: '12', x2: '15', y1: '14', y2: '11', key: '17fdiu' }],\n ['circle', { cx: '12', cy: '14', r: '8', key: '1e1u0o' }],\n]);\n\nexport default Timer;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TriangleAlert = createLucideIcon('TriangleAlert', [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default TriangleAlert;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name User\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/user\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst User = createLucideIcon('User', [\n ['path', { d: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2', key: '975kel' }],\n ['circle', { cx: '12', cy: '7', r: '4', key: '17ys0d' }],\n]);\n\nexport default User;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Users\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/users\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Users = createLucideIcon('Users', [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2', key: '1yyitq' }],\n ['circle', { cx: '9', cy: '7', r: '4', key: 'nufk8' }],\n ['path', { d: 'M22 21v-2a4 4 0 0 0-3-3.87', key: 'kshegd' }],\n ['path', { d: 'M16 3.13a4 4 0 0 1 0 7.75', key: '1da9ce' }],\n]);\n\nexport default Users;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('X', [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n]);\n\nexport default X;\n","// Built-in, no shim: the peer floor is React 18 (SPEC §2.7), which ships useSyncExternalStore.\r\nimport { useCallback, useRef, useSyncExternalStore } from 'react';\r\nimport { useSoftphone } from './context.js';\r\nimport { SoftphoneEvent, CallEvent } from '../core/events.js';\r\nimport type { Call, CallState } from '../core/call.js';\r\nimport type { PresenceEntry, RemoteParty, SoftphoneState } from '../core/types.js';\r\nimport type { AudioDevices } from '../core/softphone.js';\r\nimport type { FatalSoftphoneError } from '../core/errors.js';\r\n\r\n/** Reactive softphone lifecycle state (`stopped` → `online` → …). */\r\n/**\r\n * The reason the phone cannot currently be used, or `null`.\r\n *\r\n * Reads `softphone.lastError`, which is STATE rather than only an event — the widget is usually\r\n * opened *after* something broke, and a listener mounted at that point would have missed the event\r\n * entirely and rendered a dialpad with no explanation.\r\n *\r\n * Re-reads on both channels because both can change it: `Error` sets it, and `StateChanged` clears it\r\n * on reaching `online`. Subscribing to only the first would leave a stale gate on screen after the\r\n * phone recovered.\r\n */\r\nexport function useLastError(): FatalSoftphoneError | null {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback(\r\n (cb: () => void) => {\r\n const offError = phone.on(SoftphoneEvent.Error, () => cb());\r\n const offState = phone.on(SoftphoneEvent.StateChanged, () => cb());\r\n return () => {\r\n offError();\r\n offState();\r\n };\r\n },\r\n [phone],\r\n ),\r\n useCallback(() => phone.lastError, [phone]),\r\n );\r\n}\r\n\r\nexport function useSoftphoneState(): SoftphoneState {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback((cb: () => void) => phone.on(SoftphoneEvent.StateChanged, () => cb()), [phone]),\r\n useCallback(() => phone.state, [phone]),\r\n );\r\n}\r\n\r\n/**\r\n * Whether THIS tab is the one allowed to be reachable (`multi-tab-leader-election.md`). `false` by\r\n * default and while waiting for another open tab to release it — show your own \"active in another\r\n * tab\" state for that duration; the `/ui` widget already does.\r\n */\r\nexport function useIsLeader(): boolean {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback((cb: () => void) => phone.on(SoftphoneEvent.LeaderChanged, () => cb()), [phone]),\r\n useCallback(() => phone.isLeader, [phone]),\r\n );\r\n}\r\n\r\n/**\r\n * The current call, or null. Re-renders when it changes — inbound, outbound, or ended.\r\n *\r\n * `phone.activeCall` returns a stable reference for a given call, so it is a safe snapshot.\r\n */\r\nexport function useActiveCall(): Call | null {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback((cb: () => void) => phone.on(SoftphoneEvent.ActiveCallChanged, () => cb()), [phone]),\r\n useCallback(() => phone.activeCall, [phone]),\r\n );\r\n}\r\n\r\n/**\r\n * The live agent-presence list (`phone.presence`, Phase B) — reactive on `SoftphoneEvent.\r\n * PresenceChanged`. `active` gates the SUBSCRIPTION only, not the underlying connection: the socket\r\n * itself stays governed entirely by `online && isLeader` inside the softphone (spec's own\r\n * always-connected decision), so passing `false` here does not close it — it only stops this\r\n * particular component from re-rendering on every update while it has no reason to care, e.g. the\r\n * transfer step being closed (spec §4.5: \"subscribe when the step opens... unsubscribe when it\r\n * closes\"). `phone.presence` is still read fresh on every call, so flipping `active` back to `true`\r\n * never shows a stale snapshot.\r\n */\r\nexport function usePresence(active: boolean): readonly PresenceEntry[] {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback(\r\n (cb: () => void) => {\r\n if (!active) return () => {};\r\n return phone.on(SoftphoneEvent.PresenceChanged, () => cb());\r\n },\r\n [phone, active],\r\n ),\r\n useCallback(() => phone.presence, [phone]),\r\n );\r\n}\r\n\r\n/** An immutable snapshot of a call's reactive fields. */\r\nexport interface CallView {\r\n readonly state: CallState;\r\n readonly isMuted: boolean;\r\n readonly isOnHold: boolean;\r\n readonly remote: RemoteParty;\r\n readonly remoteStream: MediaStream | null;\r\n readonly answeredAt: Date | null;\r\n}\r\n\r\nconst CALL_EVENTS: readonly CallEvent[] = [\r\n CallEvent.StateChanged,\r\n CallEvent.Muted,\r\n CallEvent.Held,\r\n CallEvent.Unheld,\r\n CallEvent.RemotePartyUpdated,\r\n CallEvent.RemoteStream,\r\n CallEvent.Ended,\r\n];\r\n\r\n/**\r\n * Reactive view of a specific call. Re-renders only when one of the call's own events fires — no\r\n * polling, no re-render storms.\r\n *\r\n * The snapshot is CACHED and invalidated only on an event, so `useSyncExternalStore` gets a stable\r\n * reference between changes (returning a fresh object every render would infinite-loop).\r\n */\r\nexport function useCall(call: Call | null): CallView | null {\r\n const cache = useRef<{ call: Call; view: CallView } | null>(null);\r\n\r\n const subscribe = useCallback(\r\n (cb: () => void) => {\r\n if (!call) return () => {};\r\n const unsubs = CALL_EVENTS.map((event) =>\r\n call.on(event, () => {\r\n cache.current = null; // invalidate; getSnapshot rebuilds on the next read\r\n cb();\r\n }),\r\n );\r\n return () => {\r\n for (const off of unsubs) off();\r\n };\r\n },\r\n [call],\r\n );\r\n\r\n const getSnapshot = useCallback((): CallView | null => {\r\n if (!call) return null;\r\n if (cache.current?.call === call) return cache.current.view;\r\n const view: CallView = {\r\n state: call.state,\r\n isMuted: call.isMuted,\r\n isOnHold: call.isOnHold,\r\n remote: call.remote,\r\n remoteStream: call.remoteStream,\r\n answeredAt: call.answeredAt,\r\n };\r\n cache.current = { call, view };\r\n return view;\r\n }, [call]);\r\n\r\n return useSyncExternalStore(subscribe, getSnapshot);\r\n}\r\n\r\n/**\r\n * The audio device surface (`phone.audio`) — reactive. Re-renders on `SoftphoneEvent.DeviceChange`: a\r\n * device plugged/unplugged, or a selection changed (SPEC §7 Phase 2).\r\n *\r\n * The snapshot is CACHED and invalidated only on that event, same reasoning as `useCall`'s own\r\n * `CallView`: `phone.audio` is ONE stable object whose fields mutate in place, so returning it\r\n * directly would never change by reference and `useSyncExternalStore` would never re-render. A fresh\r\n * object, rebuilt only when something actually changed, is what makes this reactive without polling.\r\n */\r\nexport function useDevices(): AudioDevices {\r\n const phone = useSoftphone();\r\n const cache = useRef<{ audio: AudioDevices; view: AudioDevices } | null>(null);\r\n\r\n const subscribe = useCallback(\r\n (cb: () => void) =>\r\n phone.on(SoftphoneEvent.DeviceChange, () => {\r\n cache.current = null; // invalidate; getSnapshot rebuilds on the next read\r\n cb();\r\n }),\r\n [phone],\r\n );\r\n\r\n const getSnapshot = useCallback((): AudioDevices => {\r\n const audio = phone.audio;\r\n if (cache.current?.audio === audio) return cache.current.view;\r\n const view: AudioDevices = {\r\n inputs: audio.inputs,\r\n outputs: audio.outputs,\r\n currentInputId: audio.currentInputId,\r\n currentOutputId: audio.currentOutputId,\r\n canSelectOutput: audio.canSelectOutput,\r\n setInput: (deviceId) => audio.setInput(deviceId),\r\n setOutput: (deviceId) => audio.setOutput(deviceId),\r\n setRingtoneOutput: (deviceId) => audio.setRingtoneOutput(deviceId),\r\n refresh: () => audio.refresh(),\r\n };\r\n cache.current = { audio, view };\r\n return view;\r\n }, [phone]);\r\n\r\n return useSyncExternalStore(subscribe, getSnapshot);\r\n}\r\n","import { useLayoutEffect, useRef, useState } from 'react';\r\nimport { Phone, Delete } from 'lucide-react';\r\nimport { useSoftphone, useSoftphoneState } from '../../react/index.js';\r\nimport { CountryPicker } from '../dialing/CountryPicker.js';\r\nimport { DEFAULT_COUNTRY, toE164 } from '../dialing/countries.js';\r\nimport { caretAfterDigits, digitsBeforeCaret, useNumberFormatter } from '../dialing/format-number.js';\r\n\r\n/**\r\n * The 3×4 grid every phone has. `*` and `#` are here because a keypad without them is not a keypad —\r\n * but they are **not dialable**: `toE164` keeps digits only, so a number carrying them would lose them\r\n * silently at dial time and the display would have lied.\r\n *\r\n * The CRM has the same keys and the same rule (`IdleView.setNational` runs `replace(/\\D/g,'')`, so a\r\n * `*` press is swallowed before it is ever shown). This states it instead of leaving it to a regex\r\n * three functions away: they are DTMF tones for an ACTIVE call (CallScreen), not part of a number.\r\n */\r\nconst KEYS: ReadonlyArray<readonly [key: string, letters: string, dialable: boolean]> = [\r\n ['1', '', true],\r\n ['2', 'ABC', true],\r\n ['3', 'DEF', true],\r\n ['4', 'GHI', true],\r\n ['5', 'JKL', true],\r\n ['6', 'MNO', true],\r\n ['7', 'PQRS', true],\r\n ['8', 'TUV', true],\r\n ['9', 'WXYZ', true],\r\n ['*', '', false],\r\n ['0', '+', true],\r\n ['#', '', false],\r\n];\r\n\r\n/**\r\n * The keypad view (legacy IdleView). Strings are Spanish (SPEC §2.4).\r\n *\r\n * Layout is three flex rows — head (fixed) / keypad (flex:1) / foot (fixed) — so the keypad absorbs\r\n * whatever height is left. Sizing keys by aspect-ratio instead would overflow the shell and push the\r\n * call button under the tab bar.\r\n */\r\nexport interface DialpadProps {\r\n /** The outcome of the last attempt — \"Sin respuesta\", \"Llamada rechazada\". Non-fatal only. */\r\n readonly outcome?: { readonly code: string; readonly text: string } | null;\r\n /** Called on any action that supersedes that outcome: a digit, a backspace, a dial. */\r\n readonly onIntent?: () => void;\r\n}\r\n\r\nexport function Dialpad({ outcome = null, onIntent }: DialpadProps = {}) {\r\n const softphone = useSoftphone();\r\n const state = useSoftphoneState();\r\n // The NATIONAL number, as the CRM's IdleView held it: the prefix lives in the chip, so the user\r\n // types what they would read off a business card. `toE164` composes the two at dial time.\r\n //\r\n // State holds RAW DIGITS; the input displays them GROUPED. Keeping the raw digits as the source of\r\n // truth means the separators are pure presentation — nothing downstream ever has to un-format, and\r\n // `toE164` sees exactly what was typed.\r\n const [value, setValue] = useState('');\r\n const [country, setCountry] = useState(DEFAULT_COUNTRY);\r\n const format = useNumberFormatter();\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const caretRef = useRef<number | null>(null);\r\n\r\n const display = format(country, value);\r\n const target = toE164(country, value);\r\n const canCall = state === 'online' && target.length > 1;\r\n\r\n // Restore the caret AFTER React paints the regrouped string, or inserting a digit mid-number would\r\n // throw it to the end and the next keystroke would land in the wrong place. Layout effect, not\r\n // effect: the caret must not be visibly wrong for a frame.\r\n useLayoutEffect(() => {\r\n const caret = caretRef.current;\r\n if (caret === null || !inputRef.current) return;\r\n caretRef.current = null;\r\n const pos = caretAfterDigits(display, caret);\r\n inputRef.current.setSelectionRange(pos, pos);\r\n }, [display]);\r\n\r\n const append = (key: string) => {\r\n onIntent?.();\r\n setValue((v) => v + key);\r\n };\r\n const backspace = () => {\r\n onIntent?.();\r\n setValue((v) => v.slice(0, -1));\r\n };\r\n const call = () => {\r\n if (!canCall) return;\r\n onIntent?.();\r\n void softphone.call(target);\r\n };\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n {/*\r\n The prefix sits on its OWN row, above the number — as the CRM's IdleView always did.\r\n\r\n Sharing one line reads fine at 340px and starves the number at 310: the chip and the erase\r\n button each take a fixed ~36-70px out of the middle, so \"Número\" gets whatever is left, and a\r\n formatted international number (`+34 600 11 12 22`) is exactly when there is least of it. The\r\n number is the content; the prefix is a setting you touch once a week. Give the content the\r\n full width.\r\n */}\r\n <div className=\"cv-dial-prefix\">\r\n <CountryPicker value={country} onChange={setCountry} />\r\n </div>\r\n\r\n <div className=\"cv-dial-head\">\r\n {/* Mirrors the erase button so the number stays optically centred. */}\r\n <span className=\"cv-dial-side\" aria-hidden />\r\n <input\r\n ref={inputRef}\r\n className=\"cv-display\"\r\n value={display}\r\n onChange={(e) => {\r\n onIntent?.();\r\n // Remember the caret in DIGITS before reformatting — see `caretAfterDigits`.\r\n caretRef.current = digitsBeforeCaret(e.target.value, e.target.selectionStart ?? 0);\r\n // Digits and a leading `+` only, matching what `toE164` will actually honour. This used\r\n // to accept `*#`, so a typed `*` displayed fine and then vanished at dial time.\r\n setValue(e.target.value.replace(/[^\\d+]/g, ''));\r\n }}\r\n onKeyDown={(e) => e.key === 'Enter' && call()}\r\n placeholder=\"Número\"\r\n aria-label=\"Número a marcar\"\r\n inputMode=\"tel\"\r\n />\r\n <button\r\n type=\"button\"\r\n className=\"cv-dial-side\"\r\n data-hidden={value.length === 0}\r\n onClick={backspace}\r\n aria-label=\"Borrar\"\r\n >\r\n <Delete size={19} />\r\n </button>\r\n </div>\r\n\r\n {/*\r\n What happened to the last attempt, under the number it was dialled from. Muted and inline\r\n rather than a banner: the phone still works, so nothing here should block or alarm.\r\n\r\n `role=\"status\"` and not `alert` — an alert interrupts a screen reader mid-sentence, and\r\n \"Sin respuesta\" is not worth interrupting for. Always rendered so the region exists before the\r\n text arrives; an aria-live region inserted at the same moment as its content is not announced.\r\n */}\r\n <p className=\"cv-dial-outcome\" role=\"status\" part=\"error\" data-shown={outcome !== null}>\r\n {outcome?.text ?? ''}\r\n </p>\r\n\r\n <div className=\"cv-keypad\">\r\n {KEYS.map(([key, letters, dialable]) => (\r\n <button\r\n key={key}\r\n type=\"button\"\r\n className=\"cv-key\"\r\n data-dialable={dialable}\r\n onClick={() => dialable && append(key)}\r\n aria-disabled={!dialable}\r\n // Not `disabled`: the key must stay in the grid and stay legible. It does nothing here\r\n // because `*`/`#` are DTMF for a live call, not digits in a number.\r\n title={dialable ? undefined : 'Solo disponible durante una llamada'}\r\n >\r\n <b>{key}</b>\r\n {letters ? <small>{letters}</small> : null}\r\n </button>\r\n ))}\r\n </div>\r\n\r\n <div className=\"cv-dial-foot\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--answer\"\r\n onClick={call}\r\n disabled={!canCall}\r\n aria-label=\"Llamar\"\r\n part=\"call-button\"\r\n >\r\n <Phone size={26} />\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useEffect, useMemo, useRef, useState, type ComponentType } from 'react';\r\nimport { Check, ChevronDown } from 'lucide-react';\r\nimport { COUNTRIES, DIAL_CODES, countryName } from './countries.js';\r\n\r\ntype FlagSet = Readonly<Record<string, ComponentType<{ className?: string }> | undefined>>;\r\n\r\n/**\r\n * Real SVG flags, fetched once, on nobody's critical path.\r\n *\r\n * All 245 are **40 kB brotli** and cannot tree-shake (the picker looks them up by code), which is a\r\n * lot to put in front of every consumer for a chip most never open. Named imports shake to ~350 B\r\n * each, so this is the one place the cost is unavoidable — and the one place it is easy to defer.\r\n *\r\n * Module-level, not per component: the chip and 245 rows share one import and one chunk. tsup emits\r\n * it as a relative chunk, so `/element` stays self-contained (`verify-static` walks relative imports)\r\n * and a CDN `<script type=\"module\">` resolves it fine.\r\n */\r\nlet FLAGS: FlagSet | null = null;\r\nlet flagsPromise: Promise<FlagSet> | null = null;\r\n\r\nfunction loadFlags(): Promise<FlagSet> {\r\n flagsPromise ??= import('country-flag-icons/react/3x2')\r\n .then((m) => (FLAGS = m as FlagSet))\r\n .catch(() => (FLAGS = {})); // offline / blocked: keep the plates, never break the dialer\r\n return flagsPromise;\r\n}\r\n\r\nfunction useFlags(): FlagSet | null {\r\n const [flags, setFlags] = useState<FlagSet | null>(FLAGS);\r\n useEffect(() => {\r\n if (flags) return;\r\n let alive = true;\r\n void loadFlags().then((f) => {\r\n if (alive) setFlags(f);\r\n });\r\n return () => {\r\n alive = false;\r\n };\r\n }, [flags]);\r\n return flags;\r\n}\r\n\r\n/**\r\n * The country mark: a flag, or the ISO code set into a plate.\r\n *\r\n * **Both are designed states in one 20×14 box** — a flag's own 3:2 — so the chip and every row keep\r\n * their rhythm regardless of which is showing. Nothing reflows when the flags arrive.\r\n *\r\n * The plate is the LOADING state (and the offline state), not a fallback. That distinction is the\r\n * whole design: there is no flash of something broken, only a designed plate becoming a designed flag\r\n * once, on the first widget of the session.\r\n */\r\nfunction CountryMark({ code }: Readonly<{ code: string }>) {\r\n const flags = useFlags();\r\n const Flag = flags?.[code];\r\n return (\r\n <span className=\"cv-mark\" data-plate={!Flag} aria-hidden part=\"country-mark\">\r\n {Flag ? <Flag className=\"cv-mark-svg\" /> : code}\r\n </span>\r\n );\r\n}\r\n\r\n/**\r\n * The prefix chip: flag + dial code, opening a searchable country list.\r\n *\r\n * Own combobox — no `cmdk`, no Radix `Popover`, no `ScrollArea` (S7 dropped those with the rest of\r\n * shadcn). It is a `<button>` and a positioned `<div>`, which is all the CRM's version was underneath.\r\n *\r\n * Search matches the localised NAME, the ISO code, and the dial code, so \"esp\", \"ES\" and \"+34\" all\r\n * find Spain — the CRM's `CommandItem value={`${name} ${code} +${calling}`}` did the same thing, and\r\n * it is the difference between a picker you can use and one you scroll for twenty seconds.\r\n */\r\nexport function CountryPicker({\r\n value,\r\n onChange,\r\n}: Readonly<{ value: string; onChange: (code: string) => void }>) {\r\n const [open, setOpen] = useState(false);\r\n const [query, setQuery] = useState('');\r\n const rootRef = useRef<HTMLDivElement>(null);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const results = useMemo(() => {\r\n const q = query.trim().toLowerCase().replace(/^\\+/, '');\r\n if (!q) return COUNTRIES;\r\n return COUNTRIES.filter(\r\n (c) =>\r\n c.name.toLowerCase().includes(q) ||\r\n c.code.toLowerCase().includes(q) ||\r\n String(c.dial).startsWith(q),\r\n );\r\n }, [query]);\r\n\r\n // Close on outside click / Escape. Deliberately on the SHADOW ROOT's node when there is one:\r\n // inside a shadow tree, `document` click targets are retargeted to the host, so `contains()`\r\n // against the host would report every internal click as \"outside\" and the list would never open.\r\n useEffect(() => {\r\n if (!open) return;\r\n const root = rootRef.current?.getRootNode() ?? document;\r\n const onDown = (e: Event) => {\r\n if (!rootRef.current?.contains(e.target as Node)) setOpen(false);\r\n };\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') setOpen(false);\r\n };\r\n root.addEventListener('pointerdown', onDown);\r\n document.addEventListener('keydown', onKey);\r\n return () => {\r\n root.removeEventListener('pointerdown', onDown);\r\n document.removeEventListener('keydown', onKey);\r\n };\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n if (open) inputRef.current?.focus();\r\n else setQuery('');\r\n }, [open]);\r\n\r\n const dial = DIAL_CODES.get(value);\r\n\r\n return (\r\n <div className=\"cv-cp\" ref={rootRef}>\r\n <button\r\n type=\"button\"\r\n className=\"cv-cp-chip\"\r\n onClick={() => setOpen((o) => !o)}\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={open}\r\n // The mark is aria-hidden — a flag glyph reads as \"flag of Spain\" or, on a plate, as the bare\r\n // letters \"ES\". Neither is what a screen-reader user needs, so the name carries it instead.\r\n aria-label={`Prefijo: ${countryName(value)} (+${dial ?? '?'}). Cambiar país`}\r\n part=\"country-chip\"\r\n >\r\n <CountryMark code={value} />\r\n <span className=\"cv-cp-dial\">+{dial ?? '?'}</span>\r\n <ChevronDown size={13} className=\"cv-cp-caret\" data-open={open} />\r\n </button>\r\n\r\n {open ? (\r\n <div className=\"cv-cp-pop\" role=\"dialog\" part=\"country-list\">\r\n <input\r\n ref={inputRef}\r\n className=\"cv-cp-search\"\r\n value={query}\r\n onChange={(e) => setQuery(e.target.value)}\r\n placeholder=\"Buscar país…\"\r\n aria-label=\"Buscar país\"\r\n />\r\n <div className=\"cv-cp-list\" role=\"listbox\">\r\n {results.length === 0 ? (\r\n <p className=\"cv-cp-empty\">No se encontró ningún país.</p>\r\n ) : (\r\n results.map((c) => (\r\n <button\r\n key={c.code}\r\n type=\"button\"\r\n role=\"option\"\r\n aria-selected={c.code === value}\r\n className=\"cv-cp-item\"\r\n onClick={() => {\r\n onChange(c.code);\r\n setOpen(false);\r\n }}\r\n >\r\n <CountryMark code={c.code} />\r\n <span className=\"cv-cp-name\">{c.name}</span>\r\n <span className=\"cv-cp-dial\">+{c.dial}</span>\r\n <Check size={14} className=\"cv-cp-check\" data-on={c.code === value} />\r\n </button>\r\n ))\r\n )}\r\n </div>\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","/**\r\n * Country → dial code, flags and names — **data and platform APIs, not a dependency** (SPEC §11).\r\n *\r\n * The CRM reached all of this through `react-phone-number-input` + its flag SVGs: **82 kB brotli,\r\n * measured**. Everything below costs **~1 kB**, because the expensive parts are already in the\r\n * browser:\r\n *\r\n * - **names** → `Intl.DisplayNames`, localised, shipped with the runtime\r\n * - **codes** → the table below, 245 regions in 1,364 characters\r\n *\r\n * Flags are the exception and live in `CountryPicker`: real SVGs from `country-flag-icons`, 40 kB\r\n * brotli for all 245, **lazily imported** so they cost nothing until someone opens the picker. An\r\n * earlier cut used flag EMOJI (free, but Windows ships none and degrades to stray letters) — that is\r\n * gone: an SVG renders the same everywhere, and the emoji-support probe it needed went with it.\r\n *\r\n * What we give up is libphonenumber's parsing and validation — deliberately. A dialer must let you\r\n * dial anything: refusing a call because a number looks wrong for a region is a bug, not a feature.\r\n * We compose `+<code><digits>` and let the PBX decide.\r\n */\r\n\r\n/**\r\n * ISO 3166-1 alpha-2 immediately followed by its E.164 calling code, space-separated.\r\n *\r\n * Packed as one string rather than an object literal: no quotes, no colons, no commas — it compresses\r\n * to **729 bytes brotli**, and it parses once at module load into the Map below.\r\n *\r\n * GENERATED — do not hand-edit. Regenerate against a real source with:\r\n *\r\n * node -e \"const{getCountries,getCountryCallingCode}=require('libphonenumber-js/min');\\\r\n * console.log(getCountries().map(c=>c+getCountryCallingCode(c)).join(' '))\"\r\n */\r\nconst PACKED =\r\n 'AC247 AD376 AE971 AF93 AG1 AI1 AL355 AM374 AO244 AR54 AS1 AT43 AU61 AW297 AX358 AZ994 ' +\r\n 'BA387 BB1 BD880 BE32 BF226 BG359 BH973 BI257 BJ229 BL590 BM1 BN673 BO591 BQ599 BR55 BS1 ' +\r\n 'BT975 BW267 BY375 BZ501 CA1 CC61 CD243 CF236 CG242 CH41 CI225 CK682 CL56 CM237 CN86 CO57 ' +\r\n 'CR506 CU53 CV238 CW599 CX61 CY357 CZ420 DE49 DJ253 DK45 DM1 DO1 DZ213 EC593 EE372 EG20 ' +\r\n 'EH212 ER291 ES34 ET251 FI358 FJ679 FK500 FM691 FO298 FR33 GA241 GB44 GD1 GE995 GF594 ' +\r\n 'GG44 GH233 GI350 GL299 GM220 GN224 GP590 GQ240 GR30 GT502 GU1 GW245 GY592 HK852 HN504 ' +\r\n 'HR385 HT509 HU36 ID62 IE353 IL972 IM44 IN91 IO246 IQ964 IR98 IS354 IT39 JE44 JM1 JO962 ' +\r\n 'JP81 KE254 KG996 KH855 KI686 KM269 KN1 KP850 KR82 KW965 KY1 KZ7 LA856 LB961 LC1 LI423 ' +\r\n 'LK94 LR231 LS266 LT370 LU352 LV371 LY218 MA212 MC377 MD373 ME382 MF590 MG261 MH692 MK389 ' +\r\n 'ML223 MM95 MN976 MO853 MP1 MQ596 MR222 MS1 MT356 MU230 MV960 MW265 MX52 MY60 MZ258 NA264 ' +\r\n 'NC687 NE227 NF672 NG234 NI505 NL31 NO47 NP977 NR674 NU683 NZ64 OM968 PA507 PE51 PF689 ' +\r\n 'PG675 PH63 PK92 PL48 PM508 PR1 PS970 PT351 PW680 PY595 QA974 RE262 RO40 RS381 RU7 RW250 ' +\r\n 'SA966 SB677 SC248 SD249 SE46 SG65 SH290 SI386 SJ47 SK421 SL232 SM378 SN221 SO252 SR597 ' +\r\n 'SS211 ST239 SV503 SX1 SY963 SZ268 TA290 TC1 TD235 TG228 TH66 TJ992 TK690 TL670 TM993 ' +\r\n 'TN216 TO676 TR90 TT1 TV688 TW886 TZ255 UA380 UG256 US1 UY598 UZ998 VA39 VC1 VE58 VG1 VI1 ' +\r\n 'VN84 VU678 WF681 WS685 XK383 YE967 YT262 ZA27 ZM260 ZW263';\r\n\r\n/** ISO alpha-2 → calling code, e.g. `'ES' → 34`. */\r\nexport const DIAL_CODES: ReadonlyMap<string, number> = new Map(\r\n PACKED.split(' ').map((token) => [token.slice(0, 2), Number(token.slice(2))]),\r\n);\r\n\r\n/** The picker's default. Coventia is Spanish and so is the UI (SPEC §2.4). */\r\nexport const DEFAULT_COUNTRY = 'ES';\r\n\r\n// Built once, not per render — `Intl.DisplayNames` construction is not free, and this module is\r\n// imported by a component that re-renders on every keystroke.\r\nconst REGION_NAMES = (() => {\r\n try {\r\n return new Intl.DisplayNames(['es'], { type: 'region' });\r\n } catch {\r\n return null; // ancient runtime — fall back to the code\r\n }\r\n})();\r\n\r\n/** `'ES'` → `'España'`, localised by the platform. Falls back to the code. */\r\nexport function countryName(country: string): string {\r\n try {\r\n return REGION_NAMES?.of(country) ?? country;\r\n } catch {\r\n return country; // `of()` throws on codes it does not know (e.g. 'TA', 'XK')\r\n }\r\n}\r\n\r\nexport interface CountryOption {\r\n readonly code: string;\r\n readonly name: string;\r\n readonly dial: number;\r\n}\r\n\r\n/** Every country, sorted by localised name — the picker's list. Computed once. */\r\nexport const COUNTRIES: readonly CountryOption[] = [...DIAL_CODES.entries()]\r\n .map(([code, dial]) => ({ code, name: countryName(code), dial }))\r\n .sort((a, b) => a.name.localeCompare(b.name, 'es'));\r\n\r\n/**\r\n * Compose what the user sees into what the PBX gets: `('ES', '600 111 222')` → `'+34600111222'`.\r\n *\r\n * No validation, on purpose (see the module header). Two rules earn their place:\r\n * - a national number written with a trunk `0` (`06 12 34 56 78` in FR) must lose it, or the PBX\r\n * receives a number with a digit that only means something domestically;\r\n * - if the user typed a full international number themselves, respect it and do not prepend a\r\n * second country code.\r\n */\r\nexport function toE164(country: string, national: string): string {\r\n const typed = String(national ?? '').trim();\r\n if (typed.startsWith('+')) return '+' + typed.slice(1).replace(/\\D/g, '');\r\n\r\n const digits = typed.replace(/\\D/g, '').replace(/^0+/, '');\r\n if (!digits) return '';\r\n const dial = DIAL_CODES.get(country);\r\n return dial === undefined ? `+${digits}` : `+${dial}${digits}`;\r\n}\r\n","/**\r\n * As-you-type national grouping — `600111222` → `600 11 12 22`.\r\n *\r\n * **Lazily imported, like the flags.** `libphonenumber-js/min` is 27 kB brotli, which is 3× the whole\r\n * `/ui` entry, and it is needed only once someone actually types. Preloaded on mount so it is there\r\n * before a human can reach the keypad; until then digits render unformatted and then snap into\r\n * groups, which is a far better failure than blocking first paint on a formatting table.\r\n *\r\n * **Why a library at all**, when `countries.ts` deliberately avoids one: there is no universal rule.\r\n *\r\n * ES 600111222 → 600 11 12 22 (3-2-2-2)\r\n * FR 0612345678 → 06 12 34 56 78 (2-2-2-2-2)\r\n * GB 07911123456 → 07911 123456 (5-6)\r\n * DE 01701234567 → 0170 1234567 (4-7)\r\n *\r\n * GB and DE group differently again for landlines. A hand-rolled table would be wrong for most of the\r\n * world, and wrong grouping reads as broken rather than as a simplification. This is grouping ONLY —\r\n * we still do not validate, and `toE164` is still the thing that decides what gets dialled.\r\n */\r\nimport { useEffect, useState } from 'react';\r\n\r\ntype AsYouTypeCtor = new (country?: string) => { input(text: string): string };\r\ntype ParseIntl = (text: string) => { formatInternational(): string } | undefined;\r\n\r\nlet AsYouType: AsYouTypeCtor | null = null;\r\nlet parseIntl: ParseIntl | null = null;\r\nlet loading: Promise<void> | null = null;\r\n\r\n/**\r\n * Fetch the metadata once per page. Safe to call repeatedly; resolves immediately once loaded.\r\n *\r\n * One shared load for BOTH formatters this file exports (`formatNational` for as-you-type in the\r\n * dialer, `formatIntl` for a full E.164 number on the contact detail page) — same 27 kB chunk either\r\n * way, so a second consumer must not pay for it twice or drift onto a second copy of the metadata.\r\n */\r\nexport function loadNumberFormatter(): Promise<void> {\r\n loading ??= import('libphonenumber-js/min')\r\n .then((m) => {\r\n AsYouType = m.AsYouType as unknown as AsYouTypeCtor;\r\n parseIntl = m.parsePhoneNumberFromString as unknown as ParseIntl;\r\n })\r\n .catch(() => {\r\n // Offline, blocked, or a bundler that could not fetch the chunk: keep dialing with plain\r\n // digits. Formatting is a nicety; the dialer is not.\r\n });\r\n return loading;\r\n}\r\n\r\n/**\r\n * A full E.164 number (`+34600111222`) as it is normally written (`+34 600 11 12 22`). Same\r\n * never-empty-never-mangled contract as `formatNational`: the raw number until metadata loads or on\r\n * any parse failure — a contact's own phone number is never worth blocking on or hiding behind a\r\n * formatting error.\r\n */\r\nexport function formatIntl(e164: string): string {\r\n if (!parseIntl) return e164;\r\n try {\r\n return parseIntl(e164)?.formatInternational() ?? e164;\r\n } catch {\r\n return e164;\r\n }\r\n}\r\n\r\n/** Subscribe a component to the formatter, the same way `useNumberFormatter` does for typing. */\r\nexport function useIntlFormatter(): typeof formatIntl {\r\n const [, bump] = useState(0);\r\n useEffect(() => {\r\n if (parseIntl) return;\r\n let alive = true;\r\n void loadNumberFormatter().then(() => {\r\n if (alive) bump((n) => n + 1);\r\n });\r\n return () => {\r\n alive = false;\r\n };\r\n }, []);\r\n return formatIntl;\r\n}\r\n\r\n/**\r\n * Group `digits` the way `country` writes them. Returns the input unchanged until the metadata has\r\n * loaded, and on any parse failure — so the display is always *at worst* the digits the user typed,\r\n * never empty and never mangled.\r\n */\r\nexport function formatNational(country: string, digits: string): string {\r\n if (!AsYouType || !digits) return digits;\r\n try {\r\n return new AsYouType(country).input(digits);\r\n } catch {\r\n return digits;\r\n }\r\n}\r\n\r\n/**\r\n * Subscribe a component to the formatter. Returns `formatNational`, re-rendering once when the\r\n * metadata lands so an already-typed number regroups itself.\r\n */\r\nexport function useNumberFormatter(): typeof formatNational {\r\n const [, bump] = useState(0);\r\n useEffect(() => {\r\n if (AsYouType) return;\r\n let alive = true;\r\n void loadNumberFormatter().then(() => {\r\n if (alive) bump((n) => n + 1);\r\n });\r\n return () => {\r\n alive = false;\r\n };\r\n }, []);\r\n return formatNational;\r\n}\r\n\r\n/**\r\n * Where the caret belongs after reformatting, counted in DIGITS rather than characters.\r\n *\r\n * Without this, inserting a digit mid-number reformats the string, the caret snaps to the end, and\r\n * the next keystroke lands somewhere the user did not choose. Counting digits is the only stable\r\n * anchor, because the separators are exactly what moves.\r\n */\r\nexport function caretAfterDigits(formatted: string, digitsBefore: number): number {\r\n if (digitsBefore <= 0) return 0;\r\n let seen = 0;\r\n for (let i = 0; i < formatted.length; i++) {\r\n if (/\\d/.test(formatted[i]!)) seen++;\r\n if (seen === digitsBefore) return i + 1;\r\n }\r\n return formatted.length;\r\n}\r\n\r\n/** Digits appearing before `caret` in `text` — the position we must preserve across a reformat. */\r\nexport function digitsBeforeCaret(text: string, caret: number): number {\r\n return (text.slice(0, caret).match(/\\d/g) ?? []).length;\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\nimport {\r\n Phone,\r\n PhoneOff,\r\n Mic,\r\n MicOff,\r\n Pause,\r\n Play,\r\n ArrowLeft,\r\n ArrowLeftRight,\r\n ExternalLink,\r\n Headphones,\r\n type LucideIcon,\r\n} from 'lucide-react';\r\nimport { useCall, usePresence, useSoftphone } from '../../react/index.js';\r\nimport type { CallView } from '../../react/index.js';\r\nimport { CallEvent } from '../../core/events.js';\r\nimport type { Call, HangupReason } from '../../core/call.js';\r\nimport type { SoftphoneErrorCode } from '../../core/errors.js';\r\nimport { formatDuration, elapsedSeconds, initials } from '../lib/format.js';\r\nimport { ERROR_TEXT } from '../lib/error-text.js';\r\nimport { useTicker } from '../lib/useTicker.js';\r\nimport { DevicePickers } from './DevicePicker.js';\r\nimport type { ContactAction, PresenceEntry, PresenceState } from '../types.js';\r\n\r\n/**\r\n * A secondary control: the button and the word for it.\r\n *\r\n * **The label is not decoration.** These were icon-only, and an icon-only control is a quiz — `⇄` is\r\n * transfer or swap or call-waiting depending on who you ask, and you are asking someone mid-call. The\r\n * CRM labels every one of these (`Silenciar` / `Colgar` / `Transferir`) and it is right to.\r\n *\r\n * `tone` carries the ON state's meaning rather than a colour, so muted reads as *danger* and held\r\n * reads as *held* — using the same `--cv-*` tokens the rest of the widget themes with.\r\n */\r\nfunction Control({\r\n icon: Icon,\r\n label,\r\n pressed = false,\r\n tone,\r\n onClick,\r\n}: Readonly<{\r\n icon: LucideIcon;\r\n label: string;\r\n pressed?: boolean;\r\n tone?: 'danger' | 'hold' | 'accent';\r\n onClick: () => void;\r\n}>) {\r\n return (\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-ctrl\"\r\n data-tone={pressed ? tone : undefined}\r\n aria-pressed={pressed}\r\n aria-label={label}\r\n onClick={onClick}\r\n >\r\n <Icon size={19} />\r\n </button>\r\n {/* aria-hidden: the button's own name already says this — do not announce it twice. */}\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n {label}\r\n </span>\r\n </div>\r\n );\r\n}\r\n\r\nconst STATUS_LABEL: Record<string, string> = {\r\n ringing: 'Llamada entrante',\r\n dialing: 'Llamando…',\r\n early: 'Llamando…',\r\n answering: 'Conectando…',\r\n reconnecting: 'Reconectando…',\r\n held: 'En espera',\r\n};\r\n\r\n/**\r\n * A consult leg (attended transfer, SPEC §5.6) that ends without being completed reports a REAL\r\n * reason — it's an ordinary outbound call, not the REFER black box blind `transfer()` is\r\n * (`docs/specs/transfer-availability.md` §2). Reusing `ERROR_TEXT`'s existing call-outcome copy\r\n * rather than inventing new strings; `call/transfer-failed` is the fallback for a reason this table\r\n * doesn't otherwise name — it should be unreachable in practice, but a consult leg has more possible\r\n * `HangupReason`s than this maps, and staying exhaustive costs four lines.\r\n */\r\nconst CONSULT_FAIL_CODE: Partial<Record<HangupReason, SoftphoneErrorCode>> = {\r\n busy: 'call/busy',\r\n 'no-answer': 'call/no-answer',\r\n rejected: 'call/rejected',\r\n failed: 'call/failed',\r\n};\r\n\r\nfunction consultFailText(reason: HangupReason): string {\r\n return ERROR_TEXT[CONSULT_FAIL_CODE[reason] ?? 'call/transfer-failed'].title;\r\n}\r\n\r\n/**\r\n * Found live (plan T5, 2026-09-28): completing a consulted transfer via `ConsultScreen`'s own\r\n * \"Completar\" within ~1-2s of the consult answering can drop the caller entirely — `REFER` gets\r\n * accepted and the agent's own leg gets a clean \"Normal Clearing\" `BYE`, wire-identical to a genuine\r\n * success (`transfer-availability.md` §15 item 5's own evidence table), but the target's line was never\r\n * actually ready for the immediately-following fresh INVITE. Reusing `consultView.answeredAt` and the\r\n * existing ticker, no new tracking state. Same \"observed starting point, tune if real usage shows\r\n * otherwise\" posture this codebase's own `POST_CALL_COOLDOWN_MS` (5s, presence) was set with, not a\r\n * rigorously derived number — and it needed tuning twice: 3s (real margin above the ~1-2s that actually\r\n * failed) turned out live not to be enough; 6s STILL failed intermittently in further live testing;\r\n * raised to 10s, which live re-testing then confirmed reliable for THIS path. Exported so\r\n * `CallScreen.test.tsx` references this value directly instead of a duplicated literal.\r\n *\r\n * This same gate used to ALSO cover \"Transferir directo\" — the auto-handoff path completed the\r\n * identical warm-blind-transfer automatically, the instant this same minimum passed. That path kept\r\n * dropping calls even at 10s, live, while manual stayed reliable at the same value — an automated\r\n * completion apparently races Zadarma's own readiness signal harder than a human's incidental\r\n * reaction-time delay ever did, for reasons never root-caused. Rather than keep chasing a bigger\r\n * number on a mechanism that had already needed two rounds of \"still sometimes fails,\" \"Transferir\r\n * directo\" was redesigned (2026-09-28) into a literal, immediate blind transfer with no consult at\r\n * all — see `selectPresenceAgentAuto`'s own comment. This constant now only gates the manual path.\r\n */\r\nexport const MIN_CONSULT_HOLD_SECONDS = 10;\r\n\r\n/**\r\n * Full takeover while a consult is in progress (SPEC §5.6) — not a panel bolted onto the caller's own\r\n * screen, which is what this replaced. Two real calls exist simultaneously the whole time this is on\r\n * screen: the caller, silently on hold, and the consult target, who is who the agent is actually\r\n * talking to. Showing the CALLER's own screen with a collapsible transfer panel made that easy to\r\n * lose track of — found live: an agent reached for the ordinary \"Reanudar\" hold toggle without\r\n * realising the consult leg was still up, unholding the caller INTO a second already-live call and\r\n * putting both ends within earshot of each other at once. This screen removes that toggle from reach\r\n * entirely (it doesn't exist here) and makes \"go back to the caller\" a single, impossible-to-miss\r\n * action instead of something buried behind a panel someone could forget was open.\r\n */\r\nfunction ConsultScreen({\r\n mainName,\r\n consultView,\r\n now,\r\n onReturn,\r\n onComplete,\r\n onHangupAll,\r\n}: Readonly<{\r\n /** The ORIGINAL caller's name — for the \"who's waiting\" banner, not this screen's own subject. */\r\n mainName: string;\r\n consultView: CallView;\r\n now: number;\r\n /** Ends the consult leg and un-holds the caller — \"Cancelar\" and the return banner do the same thing. */\r\n onReturn: () => void;\r\n onComplete: () => void;\r\n /** Ends BOTH legs — the one true \"I'm done with all of this\" escape hatch. */\r\n onHangupAll: () => void;\r\n}>) {\r\n const s = consultView.state;\r\n const answered = s === 'active';\r\n const name = consultView.remote.displayName;\r\n const number = consultView.remote.number;\r\n const showNumber = number !== name;\r\n const heldSeconds = elapsedSeconds(consultView.answeredAt, now);\r\n const [rawM = '0', ss = '00'] = formatDuration(heldSeconds).split(':');\r\n const mm = rawM.padStart(2, '0');\r\n // See MIN_CONSULT_HOLD_SECONDS's own comment — a real, live-found gap, not a guess.\r\n const canComplete = heldSeconds >= MIN_CONSULT_HOLD_SECONDS;\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n <div className=\"cv-call\">\r\n {/* The one fact that matters most on this whole screen: someone is still waiting. Full-width\r\n and tappable, not a passive status line — reads the return action as its own affordance. */}\r\n <button type=\"button\" className=\"cv-consult-hold-banner\" onClick={onReturn}>\r\n <Pause size={13} aria-hidden />\r\n {mainName} en espera · Volver\r\n </button>\r\n\r\n <div className=\"cv-avatar-wrap\">\r\n <div className=\"cv-avatar\" aria-hidden>\r\n {initials(name)}\r\n </div>\r\n {answered ? <span className=\"cv-avatar-dot\" aria-hidden /> : null}\r\n </div>\r\n <div className=\"cv-call-name\">{name}</div>\r\n {showNumber ? <div className=\"cv-call-number\">{number}</div> : null}\r\n\r\n {answered ? (\r\n <div className=\"cv-timer\" aria-label=\"Duración de la llamada\">\r\n <b>{mm}</b>\r\n <i>:</i>\r\n <b>{ss}</b>\r\n </div>\r\n ) : (\r\n <div className=\"cv-call-status\">{STATUS_LABEL[s] ?? ''}</div>\r\n )}\r\n </div>\r\n\r\n <div className=\"cv-controls\">\r\n <div className=\"cv-transfer-actions\">\r\n {answered ? (\r\n <button className=\"cv-btn cv-btn--accent\" onClick={onComplete} disabled={!canComplete}>\r\n Completar\r\n </button>\r\n ) : null}\r\n <button className=\"cv-btn\" onClick={onReturn}>\r\n Cancelar\r\n </button>\r\n </div>\r\n <div className=\"cv-controls-primary\">\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--hangup\"\r\n onClick={onHangupAll}\r\n aria-label=\"Colgar todo\"\r\n >\r\n <PhoneOff size={26} />\r\n </button>\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n Colgar todo\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nconst PRESENCE_LABEL: Record<PresenceState, string> = {\r\n disponible: 'Disponible',\r\n en_llamada: 'En llamada',\r\n desconectado: 'Desconectado',\r\n};\r\n\r\nconst PRESENCE_RANK: Record<PresenceState, number> = {\r\n disponible: 0,\r\n en_llamada: 1,\r\n desconectado: 2,\r\n};\r\n\r\n/** *Disponible* → *En llamada* → *Desconectado*, then by name (spec §4.5). Self-exclusion happens in\r\n * the caller, not here — `TransferPicker` needs the pre-exclusion count too, to tell \"empty org\" (no\r\n * picker at all) apart from \"no match for what's typed\" (an empty-state row inside one). */\r\nfunction filterAgents(agents: readonly PresenceEntry[], query: string): readonly PresenceEntry[] {\r\n const q = query.trim().toLowerCase();\r\n return agents\r\n .filter((a) => !q || (a.name ?? '').toLowerCase().includes(q) || a.extension.includes(q))\r\n .sort(\r\n (a, b) =>\r\n PRESENCE_RANK[a.state] - PRESENCE_RANK[b.state] ||\r\n (a.name ?? a.extension).localeCompare(b.name ?? b.extension),\r\n );\r\n}\r\n\r\n/** Bounds the \"Llamar a {typed}\" button's own content size — a long paste must not force the\r\n * input+button row wider than the ~340 px embed (the exact class of bug `.cv-transfer-notice`\r\n * already hit once this widget, see that component's own history). */\r\nfunction truncateForButton(text: string, max = 16): string {\r\n return text.length > max ? `${text.slice(0, max)}…` : text;\r\n}\r\n\r\n/**\r\n * The agent list under the transfer input (spec §4.5, plan T7) — the \"one control instead of two\":\r\n * the existing input/button stay the free-text fallback, this is the new part. Renders nothing at\r\n * all once `myUserId` is excluded and no one else is left — an empty org, no `PresenceSource`\r\n * configured, or this tab not currently `online && isLeader` all look identical from here (spec\r\n * §4.4's success criterion: no error, just nothing to show) — the caller falls straight back to\r\n * today's free-text-only field, unchanged.\r\n */\r\nfunction TransferPicker({\r\n agents,\r\n myUserId,\r\n query,\r\n onSelect,\r\n}: Readonly<{\r\n agents: readonly PresenceEntry[];\r\n myUserId: string | null;\r\n query: string;\r\n onSelect: (extension: string) => void;\r\n}>) {\r\n const others = agents.filter((a) => a.userId !== myUserId);\r\n if (others.length === 0) return null;\r\n const filtered = filterAgents(others, query);\r\n\r\n return (\r\n <div className=\"cv-presence\">\r\n <div className=\"cv-presence-list\" role=\"listbox\" aria-label=\"Compañeros\">\r\n {filtered.length === 0 ? (\r\n <p className=\"cv-presence-empty\">Sin coincidencias</p>\r\n ) : (\r\n filtered.map((agent) => {\r\n // Found live (2026-09-28): transferring (either path) to a colleague who is genuinely\r\n // `en_llamada` — mid-call, or still inside Zadarma's own post-call settling window\r\n // (backend `POST_CALL_COOLDOWN_MS`, `redisPubSub/index.js`) — can leave the call a silent\r\n // ghost: the target's phone never rings, the caller just waits with no failure signal at\r\n // all, not even the \"busy\" a normal consult would surface. Unlike *Desconectado* (§4.6: a\r\n // HINT, since presence only sees our own web softphone and a colleague could be reachable\r\n // elsewhere), `en_llamada` is a real, currently-true signal we already have and were simply\r\n // not acting on — so this one is a hard block, not a hint: the row stays visible (an agent\r\n // should still see who's busy) but isn't selectable. It un-blocks itself the moment presence\r\n // reports them free again — no separate retry affordance needed. Free text remains a\r\n // deliberate escape hatch (spec §4: presence is what justifies this restriction too, and\r\n // free text has no presence behind it).\r\n const isBusy = agent.state === 'en_llamada';\r\n return (\r\n <button\r\n key={agent.userId}\r\n type=\"button\"\r\n role=\"option\"\r\n className=\"cv-presence-item\"\r\n disabled={isBusy}\r\n onClick={() => onSelect(agent.extension)}\r\n >\r\n <span className=\"cv-presence-dot\" data-state={agent.state} aria-hidden />\r\n <span className=\"cv-presence-name\">{agent.name ?? agent.extension}</span>\r\n <span className=\"cv-presence-meta\">\r\n {agent.extension} · {PRESENCE_LABEL[agent.state]}\r\n </span>\r\n </button>\r\n );\r\n })\r\n )}\r\n </div>\r\n {/* Decided 2026-09-21 (spec §4.6): *Desconectado* is a HINT, never \"can't transfer\" — presence\r\n only sees our own web softphone, so a colleague on a desk phone or Zadarma's own app reads\r\n Desconectado while genuinely reachable. This is what keeps that from being misread. */}\r\n <p className=\"cv-presence-legend\">\r\n Desconectado: sin conexión en el softphone web. Puede atender desde otro dispositivo.\r\n </p>\r\n </div>\r\n );\r\n}\r\n\r\n/** The active-call view: incoming, outgoing and in-call in one, switched on call.state. */\r\nexport function CallScreen({\r\n call,\r\n incomingCallAction,\r\n}: Readonly<{ call: Call; incomingCallAction?: ContactAction }>) {\r\n const view = useCall(call);\r\n const softphone = useSoftphone();\r\n const [showTransfer, setShowTransfer] = useState(false);\r\n const [transferTo, setTransferTo] = useState('');\r\n const [consultCall, setConsultCall] = useState<Call | null>(null);\r\n const [consultOutcome, setConsultOutcome] = useState<HangupReason | null>(null);\r\n const [myUserId, setMyUserId] = useState<string | null>(null);\r\n const consultView = useCall(consultCall);\r\n // Set right before completeTransfer()/cancelConsult() so the Ended listener below can tell \"we just\r\n // ended this ourselves\" apart from \"the target hung up on us\" — the same event fires either way, and\r\n // only the second case is a failure worth showing.\r\n const consultIntentRef = useRef<'complete' | 'cancel' | null>(null);\r\n const [showDevices, setShowDevices] = useState(false);\r\n const controlsRef = useRef<HTMLDivElement>(null);\r\n const now = useTicker(view?.state === 'active');\r\n // `ConsultScreen` needs its OWN timer — the consult leg answers, and stays live, independently of\r\n // whatever the main call's own state is doing underneath it.\r\n const consultNow = useTicker(consultView?.state === 'active');\r\n // Needed ahead of the early-return guard below, since the outside-click effect depends on it and\r\n // hooks can't follow a conditional return.\r\n const isConnected = view ? view.state === 'active' || view.state === 'held' || view.state === 'reconnecting' : false;\r\n // Same reasoning — `usePresence` is a hook too. Mirrors `inCall && showTransfer && !consultCall`\r\n // below exactly (`inCall` is this same value under a different name, post-early-return).\r\n const transferPickerActive = isConnected && showTransfer && !consultCall;\r\n // Subscribes only while the transfer step is open (spec §4.5) — the CONNECTION itself stays\r\n // governed by `online && isLeader` regardless (`usePresence`'s own doc comment); this only scopes\r\n // which component bothers re-rendering on an update.\r\n const presence = usePresence(transferPickerActive);\r\n\r\n // The org's phone directory, fetched once — same source, same \"absent ⇒ feature quietly does not\r\n // render\" shape `HistoryTab`'s own `PersonFilter` already uses. `me.userId` is the ONE piece needed\r\n // here: excluding the agent from their own transfer picker (spec §4.5).\r\n useEffect(() => {\r\n const listAgents = softphone.sources?.listAgents;\r\n if (!listAgents) return;\r\n let cancelled = false;\r\n void listAgents()\r\n .then((d) => !cancelled && setMyUserId(d.me?.userId ?? null))\r\n .catch(() => {});\r\n return () => {\r\n cancelled = true;\r\n };\r\n }, [softphone]);\r\n\r\n // The consult leg's terminal event — NOT unsubscribed on anything UI-side: `ConsultScreen` is on\r\n // screen for exactly as long as `consultCall` is non-null, so there is no \"panel closed but the\r\n // call is still ringing\" state left to strand (there was, before this was its own screen — see that\r\n // component's own comment).\r\n useEffect(() => {\r\n if (!consultCall) return;\r\n return consultCall.on(CallEvent.Ended, ({ reason }) => {\r\n const intent = consultIntentRef.current;\r\n consultIntentRef.current = null;\r\n setConsultCall(null);\r\n if (!intent) {\r\n // Ended on its own — busy/no-answer/rejected/failed. Plan T2: recover the caller automatically\r\n // instead of leaving them silently held until the agent notices this notice and resumes them by\r\n // hand — a real gap that existed before this fix.\r\n setConsultOutcome(reason);\r\n // Guard against the MAIN call having ALSO already ended by now (spec §5.3/plan §10 Q5) — found\r\n // to be a REAL, reachable ordering, not just a theoretical one: `CallImpl#end()`'s own\r\n // consult-leg cleanup fires `consult.hangup()` without awaiting it, so this listener can still\r\n // run — the component hasn't unmounted yet — before React processes the main call's own `ended`\r\n // state. Caught directly by a spy in the \"caller hangs up first\" test, which failed on the first\r\n // attempt without this guard: `unhold()` doesn't throw when called on an ended call (its own\r\n // `!this.#onHold` short-circuit doesn't help here, since the caller genuinely WAS on hold right\r\n // up to that point), but calling it on a dead session is still wrong to do on purpose. `call.state`\r\n // is `CallImpl`'s own live getter, not a React-closure value — reading it fresh here, not `view`.\r\n if (call.state !== 'ended') void call.unhold();\r\n }\r\n // else: we ended it ourselves (bridged by completeTransfer, or hung up by cancelConsult) —\r\n // nothing failed, nothing to show.\r\n });\r\n }, [consultCall, call]);\r\n\r\n /**\r\n * `target` overrides `transferTo` — needed when a `TransferPicker` row is clicked (plan T7):\r\n * `setTransferTo` is async (React state), so a caller that set it and immediately called this\r\n * without the override would still read the PREVIOUS render's `transferTo` here, off by one click.\r\n * Free text (the button) omits it and falls back to the input's own current value, unchanged.\r\n */\r\n const startConsult = async (target?: string) => {\r\n const t = (target ?? transferTo).trim();\r\n if (!t) return;\r\n setConsultOutcome(null);\r\n setConsultCall(await call.startConsult(t));\r\n };\r\n const selectPresenceAgent = (extension: string) => {\r\n setTransferTo(extension);\r\n void startConsult(extension);\r\n };\r\n // Which of the two paths (spec §5.4) a picker row click starts — \"Hablar primero\" (the consult flow\r\n // above, unchanged) by default, or \"Transferir directo\" once switched. Free text (the `Llamar` button\r\n // below) always uses `startConsult` directly, unaffected either way — presence is what justifies a\r\n // one-click transfer at all, and free text has no presence behind it.\r\n const [quickTransfer, setQuickTransfer] = useState(false);\r\n /**\r\n * \"Transferir directo\": a literal, immediate blind transfer — no consult, no ring-first confirmation,\r\n * no hold-timer gate. This replaces an earlier design (plan `transfer-auto-handoff-plan.md` T1–T5)\r\n * that reused the \"warm blind transfer\" pattern automatically — consult the target, wait for it to\r\n * answer, hold `MIN_CONSULT_HOLD_SECONDS`, then bridge — the exact same mechanism `ConsultScreen`'s\r\n * manual \"Completar\" still uses. That approach kept dropping the caller live even after the hold was\r\n * raised to 10s (found reliable for the MANUAL path at that value), for reasons never root-caused —\r\n * an automated completion apparently doesn't get the same margin a human's incidental reaction-time\r\n * delay was providing. Found live, 2026-09-28: \"Sometimes it still fails at 6s... [still] fails\" even\r\n * at 10s, direct transfer only — the consult-first path was confirmed reliable at 10s in the same\r\n * round of testing.\r\n *\r\n * Rather than keep tuning an interval that had already needed three rounds, this path now does what\r\n * its label says: an honest, single-step blind transfer, same call as a fresh cold transfer to any\r\n * number would be. The trade-off is real and accepted, not hidden — a failed transfer here drops the\r\n * caller with no recovery on screen, same as any blind transfer (`transfer-availability.md` §2's own\r\n * foundational finding: success and failure are indistinguishable at the SIP layer). The existing\r\n * outcome-relay (`transfer-outcome-relay.md`, Phase A, already live) catches it roughly a minute later\r\n * and offers the agent a callback — the accepted safety net. \"Hablar primero\" remains the path for an\r\n * agent who wants certainty over speed; this one is for speed.\r\n */\r\n const selectPresenceAgentAuto = (extension: string) => {\r\n void call.transfer(extension);\r\n };\r\n /**\r\n * NOT `call.completeTransfer()` (REFER…Replaces) — confirmed dead against Zadarma, three times, live\r\n * (`docs/specs/transfer-availability.md` §12.3): Zadarma accepts the REFER, drops the caller's leg\r\n * the same way it does for blind transfer, and never bridges anything — the consult leg is simply\r\n * orphaned. What actually works: hang up the consult leg (freeing the target's line) and then blind-\r\n * transfer the caller to that SAME target — the \"warm blind transfer\" pattern (§15 item 5's chosen\r\n * fix). Blind transfer to a target that's already known to be there and answering is exactly Phase\r\n * 0's capture 2, which worked. The one honest cost: the target's phone rings a SECOND time (once for\r\n * the consult, once for the actual transferred call) — REFER always triggers a fresh INVITE, there is\r\n * no seamless hand-off available here. They just confirmed they're expecting it, so this reads as\r\n * \"the call is coming through now,\" not a mystery second ring.\r\n */\r\n const completeTransfer = async () => {\r\n if (!consultCall) return;\r\n const target = transferTo.trim();\r\n consultIntentRef.current = 'complete';\r\n await consultCall.hangup();\r\n await call.transfer(target);\r\n };\r\n const cancelConsult = async () => {\r\n consultIntentRef.current = 'cancel';\r\n await call.cancelConsult();\r\n };\r\n\r\n // Close on outside click / Escape — same shape as `PersonFilter`'s own (HistoryTab.tsx), not\r\n // shared: duplicating this dozen lines is cheaper than coupling two unrelated pickers through an\r\n // abstraction neither needs.\r\n //\r\n // Outside-click only matters once connected: that's the ONLY state where Dispositivos is still a\r\n // floating popover (`.cv-device-popover--above`, anchored to `.cv-controls`). Before a call\r\n // connects it's inline content swapped into `.cv-call` (see that JSX's own comment for why) — there\r\n // is no overlay to click away from, so the only way out is the back button or Escape.\r\n useEffect(() => {\r\n if (!showDevices) return;\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') setShowDevices(false);\r\n };\r\n document.addEventListener('keydown', onKey);\r\n if (!isConnected) return () => document.removeEventListener('keydown', onKey);\r\n // On the SHADOW ROOT's node when there is one — inside a shadow tree, `document` click targets\r\n // are retargeted to the host, so `contains()` against the host would report every internal click\r\n // as \"outside\" and the popover would never open.\r\n const root = controlsRef.current?.getRootNode() ?? document;\r\n const onDown = (e: Event) => {\r\n if (!controlsRef.current?.contains(e.target as Node)) setShowDevices(false);\r\n };\r\n root.addEventListener('pointerdown', onDown);\r\n return () => {\r\n document.removeEventListener('keydown', onKey);\r\n root.removeEventListener('pointerdown', onDown);\r\n };\r\n }, [showDevices, isConnected]);\r\n\r\n if (!view || view.state === 'ended') return null;\r\n\r\n const s = view.state;\r\n const isRinging = s === 'ringing';\r\n const inCall = isConnected;\r\n const name = view.remote.displayName;\r\n const number = view.remote.number;\r\n const showNumber = number !== name;\r\n\r\n // Full takeover, not a branch further down inside the normal layout — see `ConsultScreen`'s own\r\n // comment for why the caller's screen with a bolted-on panel was the wrong shape for this. Only\r\n // \"Hablar primero\" ever creates a consult call now — \"Transferir directo\" bypasses this entirely\r\n // (see `selectPresenceAgentAuto`'s own comment).\r\n if (consultCall && consultView) {\r\n return (\r\n <ConsultScreen\r\n mainName={name}\r\n consultView={consultView}\r\n now={consultNow}\r\n onReturn={() => void cancelConsult()}\r\n onComplete={() => void completeTransfer()}\r\n onHangupAll={() => void call.hangup()}\r\n />\r\n );\r\n }\r\n\r\n // Incoming calls only (matches the legacy softphone's own `IncomingCallView`, a screen distinct\r\n // from outbound/in-call) — and only once `resolveContact` has actually matched this number to a\r\n // real contact, the same \"known contacts only\" gate the legacy's own \"Ver mensajes\" button used.\r\n // Independent of `contactAction` (the Contactos-tab detail page's own action): same TYPE, a\r\n // DIFFERENT host-supplied instance, because what's useful to offer while someone is ringing you\r\n // is not necessarily what belongs on a contact's static detail page.\r\n const incomingAction = isRinging && view.remote.contact && incomingCallAction ? incomingCallAction : null;\r\n const IncomingActionIcon = incomingAction?.icon ?? ExternalLink;\r\n\r\n // The call timer is always MM:SS (zero-padded), matching the product. formatDuration is left\r\n // unpadded because the history list reads better as \"1:33\" than \"01:33\".\r\n const [rawM = '0', ss = '00'] = formatDuration(elapsedSeconds(view.answeredAt, now)).split(':');\r\n const mm = rawM.padStart(2, '0');\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n <div className=\"cv-call\">\r\n {/*\r\n Before a call connects, Colgar (or Rechazar/Contestar) is the ONLY other control on screen —\r\n a Dispositivos popover anchored anywhere near it, even spaced out, either overlapped those\r\n buttons or had to clamp itself down to something cramped and scrolly for just two rows (this\r\n SDK's actual production embed — a 310×520 host panel with its own header eating further into\r\n that — leaves very little free room around a trigger sitting in vertically-centred content).\r\n Swapping the call info for the picker in the SAME space sidesteps the problem rather than\r\n measuring around it: the picker gets the full `.cv-call` box, not a leftover sliver of it.\r\n */}\r\n {!inCall && showDevices ? (\r\n <div className=\"cv-call-devices-inline\">\r\n <div className=\"cv-call-devices-header\">\r\n {/* Same chip as the entry point below, not an icon-only ghost button — an icon alone\r\n here read as decoration, not a way out, which is exactly the mistake `.cv-cp-chip`\r\n (CountryPicker) already made and fixed once: \"invisible until hover... nothing says\r\n you can change this.\" A visible \"Volver\" fixes it the same way that one was fixed. */}\r\n <button type=\"button\" className=\"cv-call-devices-chip\" onClick={() => setShowDevices(false)}>\r\n <ArrowLeft size={13} aria-hidden />\r\n Volver\r\n </button>\r\n <span className=\"cv-call-devices-title\">Dispositivos</span>\r\n </div>\r\n {/* Who's calling doesn't disappear just because you're checking your mic. */}\r\n <p className=\"cv-call-devices-context\">\r\n {showNumber ? `${number} · ` : ''}\r\n {STATUS_LABEL[s] ?? ''}\r\n </p>\r\n <div className=\"cv-settings-section-body\">\r\n <DevicePickers />\r\n </div>\r\n </div>\r\n ) : transferPickerActive ? (\r\n /*\r\n Found live (2026-09-29): the agent list a moment ago picked between showing ONE agent row\r\n or forcing a scroll — `.cv-presence-list`'s own `max-height` had already been trimmed twice\r\n (T7, then T3) chasing that, and both times the room it was chasing lived somewhere else.\r\n The full avatar/name/giant-timer block above stayed on screen, unconditionally, the WHOLE\r\n time the picker was open — exactly the anti-pattern `.cv-call-devices-inline` (above) was\r\n already built to avoid for the pre-connect device picker: \"an inline swap, not an overlay,\r\n so it gets the full box, not a leftover sliver.\" The picker never got that same treatment.\r\n Measured live (a temporary harness, `playground/react/picker-harness.*`, real Chromium at\r\n this SDK's own real embed footprint, 310×520): the avatar+name+timer block alone cost\r\n ~150px of `.cv-call`'s ~340px of usable height — more than the entire agent list, the mode\r\n toggle, and the free-text row combined. Reusing `.cv-call-devices-inline`'s OWN \"who's\r\n calling doesn't disappear\" compact context line (below) instead of the full block gives\r\n that ~150px back to the one thing this screen is actually for right now: the list.\r\n */\r\n <div className=\"cv-transfer\">\r\n <div className=\"cv-transfer-context\">\r\n <span className=\"cv-call-devices-title\">{name}</span>\r\n <p className=\"cv-call-devices-context\">\r\n {showNumber ? `${number} · ` : ''}\r\n {s === 'active' ? `${mm}:${ss}` : (STATUS_LABEL[s] ?? '')}\r\n </p>\r\n </div>\r\n {consultOutcome ? (\r\n <p className=\"cv-dial-outcome\" role=\"status\" data-shown=\"true\">\r\n {consultFailText(consultOutcome)}\r\n </p>\r\n ) : null}\r\n {/*\r\n Attended-first by default (SPEC §5.6, `docs/specs/transfer-availability.md` §5): free\r\n text always consults first — its target is unconfirmed, and a blind transfer's REFER\r\n outcome is unknowable against Zadarma (§2). A presence-picked colleague under\r\n \"Transferir directo\" (below) is the one deliberate exception — see\r\n `selectPresenceAgentAuto`'s own comment for why that one-click blind transfer is\r\n accepted there.\r\n */}\r\n <div className=\"cv-transfer-row\">\r\n <input\r\n className=\"cv-search\"\r\n value={transferTo}\r\n onChange={(e) => setTransferTo(e.target.value)}\r\n placeholder=\"Nombre, ext. o número\"\r\n aria-label=\"Transferir a\"\r\n autoFocus\r\n />\r\n <button\r\n className=\"cv-btn cv-btn--accent\"\r\n disabled={!transferTo.trim()}\r\n onClick={() => void startConsult()}\r\n >\r\n {transferTo.trim() ? `Llamar a ${truncateForButton(transferTo.trim())}` : 'Llamar'}\r\n </button>\r\n </div>\r\n {/* Plan T3 (spec §5.4/§10.1): reuses `HistoryTab`'s own `.cv-segmented` filter-toggle\r\n pattern verbatim — same tablist semantics, same already-styled look — rather than\r\n inventing a second segmented-control design for the same widget. */}\r\n <div className=\"cv-segmented\" role=\"tablist\" aria-label=\"Modo de transferencia\">\r\n {(\r\n [\r\n { key: 'consult', label: 'Hablar primero' },\r\n { key: 'auto', label: 'Transferir directo' },\r\n ] as const\r\n ).map(({ key, label }) => (\r\n <button\r\n key={key}\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected={quickTransfer === (key === 'auto')}\r\n className=\"cv-segmented-btn\"\r\n onClick={() => setQuickTransfer(key === 'auto')}\r\n >\r\n {label}\r\n </button>\r\n ))}\r\n </div>\r\n <TransferPicker\r\n agents={presence}\r\n myUserId={myUserId}\r\n query={transferTo}\r\n onSelect={quickTransfer ? selectPresenceAgentAuto : selectPresenceAgent}\r\n />\r\n </div>\r\n ) : (\r\n <>\r\n <div className=\"cv-avatar-wrap\">\r\n {/* The halo is the one moment worth animating — it reads as \"ringing\" at a glance. */}\r\n {isRinging ? <span className=\"cv-avatar-ping\" aria-hidden /> : null}\r\n <div className=\"cv-avatar\" aria-hidden>\r\n {initials(name)}\r\n </div>\r\n {s === 'active' ? <span className=\"cv-avatar-dot\" aria-hidden /> : null}\r\n </div>\r\n\r\n <div className=\"cv-call-name\">{name}</div>\r\n {showNumber ? <div className=\"cv-call-number\">{number}</div> : null}\r\n\r\n {s === 'active' ? (\r\n <div className=\"cv-timer\" aria-label=\"Duración de la llamada\">\r\n <b>{mm}</b>\r\n <i>:</i>\r\n <b>{ss}</b>\r\n </div>\r\n ) : (\r\n <div className=\"cv-call-status\">\r\n {s === 'held' ? <span className=\"cv-badge-hold\">{STATUS_LABEL[s]}</span> : (STATUS_LABEL[s] ?? '')}\r\n </div>\r\n )}\r\n\r\n {!inCall ? (\r\n <div className=\"cv-call-chips\">\r\n {/* The caller-specific action comes first — it is about who is calling, which\r\n outranks a phone-utility setting. Wraps onto its own line rather than forcing\r\n both chips into a fixed row: a host's label is arbitrary text, not something\r\n this component can assume is short. */}\r\n {incomingAction ? (\r\n <button\r\n type=\"button\"\r\n className=\"cv-call-devices-chip\"\r\n onClick={() => incomingAction.onClick(view.remote.contact!)}\r\n >\r\n <IncomingActionIcon size={13} aria-hidden />\r\n {incomingAction.label}\r\n </button>\r\n ) : null}\r\n <button type=\"button\" className=\"cv-call-devices-chip\" onClick={() => setShowDevices(true)}>\r\n <Headphones size={13} aria-hidden />\r\n Dispositivos\r\n </button>\r\n </div>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n\r\n {/*\r\n Two tiers, not one row. Hang up is the ONE action that must never be hunted for, so it sits\r\n alone, centred and largest — the anchor the eye lands on. The secondaries flank above it.\r\n Previously all four shared a row and hang up was simply the last of them, the same visual\r\n weight as \"transfer\", off to one side. On a live call that is the wrong hierarchy.\r\n */}\r\n <div className=\"cv-controls\" ref={controlsRef}>\r\n {isRinging ? (\r\n <div className=\"cv-controls-primary\">\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--hangup\"\r\n onClick={() => void call.reject()}\r\n aria-label=\"Rechazar\"\r\n >\r\n <PhoneOff size={26} />\r\n </button>\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n Rechazar\r\n </span>\r\n </div>\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--answer\"\r\n onClick={() => void call.answer()}\r\n aria-label=\"Contestar\"\r\n part=\"answer-button\"\r\n >\r\n <Phone size={26} />\r\n </button>\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n Contestar\r\n </span>\r\n </div>\r\n </div>\r\n ) : (\r\n <>\r\n {inCall ? (\r\n <div className=\"cv-controls-row\">\r\n <Control\r\n icon={view.isMuted ? MicOff : Mic}\r\n label={view.isMuted ? 'Activar' : 'Silenciar'}\r\n pressed={view.isMuted}\r\n tone=\"danger\"\r\n onClick={() => call.mute(!view.isMuted)}\r\n />\r\n <Control\r\n icon={view.isOnHold ? Play : Pause}\r\n label={view.isOnHold ? 'Reanudar' : 'Espera'}\r\n pressed={view.isOnHold}\r\n tone=\"hold\"\r\n onClick={() => (view.isOnHold ? void call.unhold() : void call.hold())}\r\n />\r\n <Control\r\n icon={ArrowLeftRight}\r\n label=\"Transferir\"\r\n pressed={showTransfer}\r\n tone=\"accent\"\r\n onClick={() => setShowTransfer((v) => !v)}\r\n />\r\n <Control\r\n icon={Headphones}\r\n label=\"Dispositivos\"\r\n pressed={showDevices}\r\n tone=\"accent\"\r\n onClick={() => setShowDevices((v) => !v)}\r\n />\r\n </div>\r\n ) : null}\r\n <div className=\"cv-controls-primary\">\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--hangup\"\r\n onClick={() => void call.hangup()}\r\n aria-label=\"Colgar\"\r\n part=\"hangup-button\"\r\n >\r\n <PhoneOff size={26} />\r\n </button>\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n Colgar\r\n </span>\r\n </div>\r\n </div>\r\n {/*\r\n Anchored to `.cv-controls` (position:relative, spanning the full row) rather than to\r\n this trigger's own small wrapper — the same fix `.cv-cp`/CountryPicker already needed\r\n (see its own comment): anchoring to a narrow, off-centre trigger let the popover's edge\r\n reach `.cv-softphone`'s `overflow:hidden` and get clipped. A full-width anchor makes\r\n that arithmetically impossible.\r\n */}\r\n {inCall && showDevices ? (\r\n <div className=\"cv-device-popover cv-device-popover--above\" role=\"dialog\" aria-label=\"Dispositivos de audio\">\r\n <DevicePickers />\r\n </div>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","/** Small presentational helpers. Pure — no React, no DOM. */\r\n\r\n/** `93` → `1:33`, `3725` → `1:02:05`. */\r\nexport function formatDuration(totalSeconds: number): string {\r\n const s = Math.max(0, Math.floor(totalSeconds));\r\n const hh = Math.floor(s / 3600);\r\n const mm = Math.floor((s % 3600) / 60);\r\n const ss = s % 60;\r\n const pad = (n: number) => String(n).padStart(2, '0');\r\n return hh > 0 ? `${hh}:${pad(mm)}:${pad(ss)}` : `${mm}:${pad(ss)}`;\r\n}\r\n\r\n/** `\"Ana García\"` → `\"AG\"`, `\"+34600111222\"` → `\"#\"`. */\r\nexport function initials(name: string | null | undefined): string {\r\n if (!name) return '#';\r\n const words = name.trim().split(/\\s+/).filter(Boolean);\r\n if (words.length === 0 || /^\\+?\\d/.test(words[0]!)) return '#';\r\n return words\r\n .slice(0, 2)\r\n .map((w) => w[0]!.toUpperCase())\r\n .join('');\r\n}\r\n\r\n/** Seconds elapsed since a start Date, as a live-timer-friendly integer. */\r\nexport function elapsedSeconds(since: Date | null, now: number): number {\r\n if (!since) return 0;\r\n return Math.floor((now - since.getTime()) / 1000);\r\n}\r\n\r\n/**\r\n * A notice's age, coarse and relative — `\"justo ahora\"`, `\"hace 1 min\"`, `\"hace 2 h\"`. Deliberately\r\n * never seconds: a notice worth keeping this long (no auto-dismiss — spec §5.5) is never worth timing\r\n * to the second, and a number that changes every tick reads as more urgent than the notice actually is.\r\n */\r\nexport function formatAge(totalSeconds: number): string {\r\n const s = Math.max(0, Math.floor(totalSeconds));\r\n if (s < 60) return 'justo ahora';\r\n const mm = Math.floor(s / 60);\r\n if (mm < 60) return `hace ${mm} min`;\r\n const hh = Math.floor(mm / 60);\r\n return `hace ${hh} h`;\r\n}\r\n","import type { SoftphoneErrorCode } from '../../core/errors.js';\r\n\r\n/**\r\n * What the USER reads when something fails. Spanish, because the widget is.\r\n *\r\n * **Deliberately not in the catalogue.** `ERROR_CATALOGUE.message` is documented as *\"what went\r\n * wrong, for a developer\"* and lands on `Error.message` — the string a host logs, and the one Sentry\r\n * groups by. Translating it would hand an English-speaking partner integrator Spanish stack traces,\r\n * and would put a locale into a `core/` that currently has no user-facing string in it at all.\r\n *\r\n * So the split is: the catalogue explains the failure to whoever is debugging it, and this explains\r\n * it to whoever is trying to make a call. They are different audiences and different sentences.\r\n *\r\n * `Record<SoftphoneErrorCode, ErrorText>` is what keeps them in step: a missing code will not\r\n * compile, and neither will one that no longer exists. Annotated rather than `as const satisfies`\r\n * deliberately — the literal types buy nothing, and they make `body` unreachable on the entries that\r\n * omit it, which is every call outcome.\r\n */\r\nexport interface ErrorText {\r\n /** The headline. For a non-fatal outcome this is the whole message — \"No contestaron\". */\r\n readonly title: string;\r\n /** One line of what to do. Fatal errors always have one; a call outcome rarely needs it. */\r\n readonly body?: string;\r\n}\r\n\r\nexport const ERROR_TEXT: Record<SoftphoneErrorCode, ErrorText> = {\r\n // ── Engine lifecycle ────────────────────────────────────────────────────────\r\n // Integrator mistakes rather than user-facing failures, but they must still read as something\r\n // rather than as a blank panel if one ever reaches the UI.\r\n 'engine/duplicate-instance': {\r\n title: 'Teléfono duplicado',\r\n body: 'Hay otro teléfono abierto en esta página. Cierra uno y vuelve a cargar.',\r\n },\r\n 'engine/not-started': { title: 'El teléfono aún no está listo' },\r\n 'engine/destroyed': {\r\n title: 'Teléfono cerrado',\r\n body: 'Vuelve a cargar la página para usarlo de nuevo.',\r\n },\r\n\r\n // ── Auth ────────────────────────────────────────────────────────────────────\r\n // Never \"token\": the user has no idea what one is. What they can act on is the session.\r\n 'auth/token-fetch-failed': {\r\n title: 'Sin conexión con el servidor',\r\n body: 'No se ha podido activar el teléfono. Reinténtalo en unos segundos.',\r\n },\r\n 'auth/token-rejected': {\r\n title: 'Sesión caducada',\r\n body: 'Vuelve a iniciar sesión para poder llamar.',\r\n },\r\n\r\n // ── Media ───────────────────────────────────────────────────────────────────\r\n // Verbatim from MicPermissionGate, which already says these well and says them first.\r\n //\r\n // NEVER ACTUALLY SHOWN via this table — these four codes (through `media/playback-blocked`, below)\r\n // are never raised as a `SoftphoneError` at all. See the fuller comment on each in `core/errors.ts`\r\n // for why. Copy kept here anyway so the catalogue and this file stay the same shape as every other\r\n // code — `error-text.test.ts` would fail the build the moment they drifted.\r\n 'media/permission-denied': {\r\n title: 'Micrófono bloqueado',\r\n body: 'Permítelo en tu navegador para poder llamar.',\r\n },\r\n 'media/no-input-device': {\r\n title: 'Sin micrófono',\r\n body: 'Conecta un micrófono y vuelve a intentarlo.',\r\n },\r\n 'media/webrtc-unsupported': {\r\n title: 'Llamadas no disponibles',\r\n body: 'Este navegador no admite llamadas. Prueba con Chrome, Edge o Firefox.',\r\n },\r\n 'media/playback-blocked': { title: 'Toca la pantalla para activar el sonido' },\r\n\r\n // ── Network / signalling ────────────────────────────────────────────────────\r\n // \"Centralita\" rather than \"SIP\" or \"registro\": the user knows what a phone system is.\r\n 'net/registration-failed': {\r\n title: 'No se pudo conectar',\r\n body: 'No hemos podido conectar con la centralita. Reintenta en unos segundos.',\r\n },\r\n 'net/transport-failed': {\r\n title: 'Conexión perdida',\r\n body: 'Se ha perdido la conexión con la centralita.',\r\n },\r\n // NEVER ACTUALLY SHOWN either — CallScreen's own \"Reconectando…\" already covers this, off the\r\n // call's `reconnecting` state rather than this channel. See the comment in `core/errors.ts`.\r\n 'net/ice-failed': { title: 'Recuperando el audio…' },\r\n\r\n // ── Call ────────────────────────────────────────────────────────────────────\r\n /*\r\n THE VOICE RULE FOR THIS BLOCK: say what HAPPENED, not what it is called.\r\n\r\n These were status labels — \"Llamada perdida\", \"Llamada rechazada\", \"Sin respuesta\". Each is a\r\n name for a category rather than an account of an event, which is why they read as a database enum\r\n someone forgot to translate into human. Worse, a label hides the ACTOR: \"Llamada rechazada\" never\r\n says who rejected what, so the user reading it after declining a call and the user reading it\r\n after being declined see the same three words.\r\n\r\n So each one is a short sentence about what the other person, or the phone, did — the form\r\n `call/busy` already had, and the reason it was the only one here that read clearly.\r\n\r\n Impersonal third-person plural (\"contestaron\", \"colgaron\") throughout: the user does not know who\r\n is at the other end, and it is what Spanish uses when the subject is unknown. Mixing it with the\r\n singular across neighbouring lines reads as carelessness.\r\n\r\n LENGTH IS A HARD CONSTRAINT, not a preference. `.cv-dial-outcome` is one line at a fixed\r\n `1.15rem`, and the keypad below it is `flex: 1` — a title that wraps resizes every key and shifts\r\n the grid under a finger already reaching for it. `error-text.test.ts` caps this at 48 characters.\r\n */\r\n 'call/not-answerable': { title: 'Esa llamada ya ha terminado' },\r\n /*\r\n NOT \"Comunicando\", which is what this said and what sent us looking. SIP 486 is both \"the line is\r\n engaged\" AND what almost every endpoint sends when a person presses decline — including our own\r\n `reject()`. One code, two events, no way to tell them apart, so the copy has to hold both rather\r\n than assert the less likely one. `call/rejected` can be definite: an endpoint sending 603 Decline\r\n means exactly that.\r\n */\r\n 'call/busy': { title: 'No contestaron o la línea estaba ocupada' },\r\n 'call/no-answer': { title: 'No contestaron' },\r\n 'call/rejected': { title: 'No aceptaron tu llamada' },\r\n /*\r\n The legacy CRM said \"La persona que llamaba colgó antes de que pudieras contestar.\" — the right\r\n fact, at three times the width of the line that has to hold it. This keeps the fact and drops the\r\n words: the user needs to know the call was FOR them and that nobody is waiting on the line.\r\n \"Llamada perdida\" alone tested badly for exactly the label reason above — it names the category\r\n without saying anyone rang.\r\n */\r\n 'call/missed': { title: 'Colgaron antes de que pudieras contestar' },\r\n // \"No se pudo completar la llamada\" was our own \"something went wrong\": true of every failure and\r\n // useful for none. The number is what the user can actually act on.\r\n 'call/failed': { title: 'No se pudo conectar con ese número' },\r\n // The load-bearing half is the SECOND sentence: the original call is still up, and a user who\r\n // thinks they dropped it will hang up on a client to \"fix\" it.\r\n 'call/transfer-failed': { title: 'No se pudo transferir. Sigues en la llamada' },\r\n 'call/unsupported': { title: 'Esta función no está disponible' },\r\n\r\n // ── Provider ────────────────────────────────────────────────────────────────\r\n 'provider/provision-failed': {\r\n title: 'No se pudo activar el teléfono',\r\n body: 'Si el problema continúa, contacta con soporte.',\r\n },\r\n};\r\n","import { useEffect, useState } from 'react';\r\n\r\n/**\r\n * `Date.now()`, updated every `intervalMs` while `enabled`. For the live call timer.\r\n *\r\n * Kept as its own hook so only the timer text re-renders on each tick, not the whole widget.\r\n */\r\nexport function useTicker(enabled: boolean, intervalMs = 1000): number {\r\n const [now, setNow] = useState(() => Date.now());\r\n useEffect(() => {\r\n if (!enabled) return;\r\n setNow(Date.now());\r\n const id = setInterval(() => setNow(Date.now()), intervalMs);\r\n return () => clearInterval(id);\r\n }, [enabled, intervalMs]);\r\n return now;\r\n}\r\n","import { useEffect } from 'react';\r\nimport { Headphones, Mic } from 'lucide-react';\r\nimport { useDevices, useSoftphone } from '../../react/index.js';\r\nimport type { ContactActionIcon } from '../types.js';\r\n\r\n/**\r\n * A device's own label, or a numbered fallback.\r\n *\r\n * `enumerateDevices()` returns an EMPTY `label` until the microphone has been granted at least once\r\n * (a browser privacy measure — see `AudioDevices.refresh`'s own comment) — a blank row in a picker\r\n * reads as broken, not as \"permission pending\", so this names it something a user can still pick.\r\n */\r\nfunction deviceLabel(device: MediaDeviceInfo, index: number, kind: 'input' | 'output'): string {\r\n if (device.label) return device.label;\r\n return kind === 'input' ? `Micrófono ${index + 1}` : `Altavoz ${index + 1}`;\r\n}\r\n\r\n/** `''` is the DOM's own spelling of \"system default\" on a `<select>`; `null` is this SDK's. */\r\nconst DEFAULT_OPTION = '';\r\n\r\nfunction DevicePicker({\r\n icon: Icon,\r\n label,\r\n kind,\r\n options,\r\n value,\r\n onChange,\r\n emptyText,\r\n}: Readonly<{\r\n icon: ContactActionIcon;\r\n label: string;\r\n kind: 'input' | 'output';\r\n options: readonly MediaDeviceInfo[];\r\n value: string | null;\r\n onChange: (deviceId: string | null) => void;\r\n emptyText: string;\r\n}>) {\r\n return (\r\n <div className=\"cv-settings-row\">\r\n <span className=\"cv-settings-row-icon\" aria-hidden>\r\n <Icon size={16} />\r\n </span>\r\n <span className=\"cv-settings-row-text\">\r\n <span className=\"cv-settings-row-label\" id={`cv-settings-label-${kind}`}>\r\n {label}\r\n </span>\r\n {options.length > 0 ? (\r\n <select\r\n className=\"cv-settings-select\"\r\n aria-labelledby={`cv-settings-label-${kind}`}\r\n value={value ?? DEFAULT_OPTION}\r\n onChange={(e) => onChange(e.target.value === DEFAULT_OPTION ? null : e.target.value)}\r\n >\r\n <option value={DEFAULT_OPTION}>Predeterminado del sistema</option>\r\n {options.map((d, i) => (\r\n <option key={d.deviceId} value={d.deviceId}>\r\n {deviceLabel(d, i, kind)}\r\n </option>\r\n ))}\r\n </select>\r\n ) : (\r\n <span className=\"cv-settings-empty\">{emptyText}</span>\r\n )}\r\n </span>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Both device pickers (microphone + speaker), self-contained: reads `useDevices()` itself and\r\n * re-scans on mount. Shared between the Ajustes tab and the in-call quick-switch popover\r\n * (`CallScreen`) so the two surfaces show the same devices under the same labels and can't drift\r\n * apart — there is exactly one place that knows what a device row looks like.\r\n */\r\nexport function DevicePickers() {\r\n const softphone = useSoftphone();\r\n const devices = useDevices();\r\n\r\n // Labels enumerate blank until the microphone has been granted at least once, and a permission\r\n // grant fires no `devicechange` — so every surface that shows device NAMES re-scans on mount\r\n // rather than trusting whatever `BrowserAudioDevices` happened to see when the softphone was\r\n // first constructed. `softphone`, not `devices`, is the dependency: `devices` is a fresh object\r\n // every time it changes (see `useDevices`), and depending on it here would re-trigger this effect\r\n // on its own refresh.\r\n useEffect(() => {\r\n void softphone.audio.refresh();\r\n }, [softphone]);\r\n\r\n return (\r\n <>\r\n <DevicePicker\r\n icon={Mic}\r\n label=\"Micrófono\"\r\n kind=\"input\"\r\n options={devices.inputs}\r\n value={devices.currentInputId}\r\n onChange={(id) => void devices.setInput(id)}\r\n emptyText=\"No se encontró ningún micrófono\"\r\n />\r\n {devices.canSelectOutput ? (\r\n <DevicePicker\r\n icon={Headphones}\r\n label=\"Altavoces\"\r\n kind=\"output\"\r\n options={devices.outputs}\r\n value={devices.currentOutputId}\r\n onChange={(id) => void devices.setOutput(id)}\r\n emptyText=\"No se encontró ningún altavoz\"\r\n />\r\n ) : (\r\n // Safari and most of Firefox have no `setSinkId` at all — nothing here would do anything,\r\n // and offering a picker that silently fails is worse than not offering one.\r\n <p className=\"cv-settings-note\">\r\n Tu navegador no permite elegir el altavoz desde aquí — cámbialo en los ajustes del\r\n sistema.\r\n </p>\r\n )}\r\n </>\r\n );\r\n}\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { Loader2, Phone, Search, User, Users, X } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { ContactDetail } from './ContactDetail.js';\r\nimport { useInfiniteList } from '../lib/useInfiniteList.js';\r\nimport type { Contact } from '../../core/types.js';\r\nimport type { ContactAction, ContactsSource } from '../types.js';\r\nimport { initials } from '../lib/format.js';\r\n\r\nconst PAGE = 50;\r\n\r\n/**\r\n * The Contactos tab — decoupled. Data comes from an injected `ContactsSource`; contacts are\r\n * `Contact { id, name, phone }` (never `wa_id`, SPEC §4). Tapping a contact always opens its detail\r\n * page (`ContactDetail`) — `contactAction` customises the ONE extra row on it, not what tapping the\r\n * list itself does; there is no bypass of the detail page from here.\r\n */\r\nexport function ContactsTab({\r\n source,\r\n contactAction,\r\n}: Readonly<{\r\n source: ContactsSource;\r\n contactAction?: ContactAction;\r\n}>) {\r\n const softphone = useSoftphone();\r\n const [search, setSearch] = useState('');\r\n const [debouncedSearch, setDebouncedSearch] = useState('');\r\n const [selected, setSelected] = useState<Contact | null>(null);\r\n\r\n useEffect(() => {\r\n const t = setTimeout(() => setDebouncedSearch(search), 200);\r\n return () => clearTimeout(t);\r\n }, [search]);\r\n\r\n // `loadPage`'s identity is `useInfiniteList`'s reset signal — it must only change once the\r\n // DEBOUNCED term changes, or every keystroke would restart the list instead of the fetch it\r\n // triggers being debounced.\r\n const loadPage = useCallback(\r\n (skip: number) =>\r\n source({ search: debouncedSearch, skip, limit: PAGE }).then((page) => ({\r\n items: page.items,\r\n hasMore: skip + page.items.length < page.total,\r\n })),\r\n [source, debouncedSearch],\r\n );\r\n const {\r\n items,\r\n loading: loadingPage,\r\n loadingMore,\r\n hasMore,\r\n containerRef,\r\n sentinelRef,\r\n } = useInfiniteList(loadPage);\r\n // The 200ms debounce above delays `debouncedSearch` (and with it `loadPage`'s identity), so the\r\n // very first keystroke would otherwise keep showing the PREVIOUS term's results for up to 200ms\r\n // with no loading indicator. Comparing the two search values catches exactly that window.\r\n const loading = loadingPage || search !== debouncedSearch;\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n <div className=\"cv-list-head\">\r\n {/*\r\n A wrapper, not a change to `.cv-search` itself — that class is shared with the transfer\r\n input in CallScreen, which wants none of this (no icon, no clear button, a different\r\n affordance entirely). The icon and clear button are additive, scoped to this field only.\r\n */}\r\n <div className=\"cv-search-field\">\r\n <Search className=\"cv-search-icon\" size={15} aria-hidden />\r\n <input\r\n className=\"cv-search cv-search--icon\"\r\n value={search}\r\n onChange={(e) => setSearch(e.target.value)}\r\n placeholder=\"Buscar contactos\"\r\n aria-label=\"Buscar contactos\"\r\n />\r\n {search ? (\r\n <button\r\n type=\"button\"\r\n className=\"cv-search-clear\"\r\n onClick={() => setSearch('')}\r\n aria-label=\"Limpiar búsqueda\"\r\n >\r\n <X size={14} />\r\n </button>\r\n ) : null}\r\n </div>\r\n </div>\r\n\r\n <div className=\"cv-list\" ref={containerRef}>\r\n {loading ? (\r\n // The spinner alone was silent to a screen reader — nothing else on this state carries\r\n // the word \"loading\" for it to announce. `role=\"status\"` + real text fixes both the\r\n // accessibility gap and, incidentally, gives the icon something to be decorative NEXT TO\r\n // rather than being the sole carrier of the information itself.\r\n <div className=\"cv-empty\" role=\"status\">\r\n <Loader2 className=\"cv-empty-spinner\" size={18} aria-hidden />\r\n <span className=\"cv-empty-title\">Cargando…</span>\r\n </div>\r\n ) : items.length === 0 ? (\r\n <div className=\"cv-empty\">\r\n <span className=\"cv-empty-icon\" aria-hidden>\r\n <Users size={20} />\r\n </span>\r\n <p className=\"cv-empty-title\">{search ? 'Sin resultados' : 'No tienes contactos'}</p>\r\n <p className=\"cv-empty-sub\">\r\n {search ? `Nada coincide con «${search}».` : 'Tus contactos con teléfono aparecerán aquí.'}\r\n </p>\r\n </div>\r\n ) : (\r\n <>\r\n {items.map((c) => (\r\n // A row, not a button: the name area and the call action are separate controls, so\r\n // neither is nested inside the other (nested interactives are invalid + inaccessible).\r\n <div key={c.id} className=\"cv-item\">\r\n <span className=\"cv-item-avatar\" aria-hidden>\r\n {initials(c.name) === '#' ? <User size={17} /> : initials(c.name)}\r\n </span>\r\n {/* Always enabled — tapping a contact opens its detail page unconditionally now.\r\n `contactAction` decides whether THAT page has an extra row, not whether this does\r\n anything at all. */}\r\n <button type=\"button\" className=\"cv-item-main\" onClick={() => setSelected(c)}>\r\n <span className=\"cv-item-name\">{c.name ?? c.phone}</span>\r\n <span className=\"cv-item-sub\">{c.phone}</span>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"cv-item-action\"\r\n data-tone=\"accent\"\r\n aria-label={`Llamar a ${c.name ?? c.phone}`}\r\n onClick={() => void softphone.call(c.phone)}\r\n >\r\n <Phone size={16} />\r\n </button>\r\n </div>\r\n ))}\r\n {/* The scroll-triggered \"load more\" marker — only rendered while there IS more, so the\r\n observer (see `useInfiniteList`) naturally stops firing once the list is exhausted. */}\r\n {hasMore ? <div ref={sentinelRef} className=\"cv-list-sentinel\" aria-hidden /> : null}\r\n {loadingMore ? (\r\n <div className=\"cv-list-loading-more\" role=\"status\" aria-label=\"Cargando más contactos\">\r\n <Loader2 className=\"cv-list-loading-more-spinner\" size={14} aria-hidden />\r\n </div>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n\r\n {/* Kept mounted underneath the list, not swapped in its place — so the list's own scroll\r\n position and size measurements survive a round trip through the detail page and back. */}\r\n {selected ? (\r\n <ContactDetail\r\n contact={selected}\r\n onBack={() => setSelected(null)}\r\n {...(contactAction ? { contactAction } : {})}\r\n />\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import { ChevronRight } from 'lucide-react';\r\nimport type { ReactNode } from 'react';\r\nimport type { ContactActionIcon } from '../types.js';\r\n\r\n/**\r\n * One row on a detail page (contact or call). `eyebrow` is the informational shape (a field: Teléfono,\r\n * its value below) — `onClick` is the action shape (one line, a chevron, something happens). A row is\r\n * never both: the legacy's \"Conversación\" row forced an ACTION into a field's label/value layout,\r\n * which is why it read as an odd, oversized field rather than as a button. Splitting the two here is\r\n * what fixes that.\r\n *\r\n * Shared between `ContactDetail` and `HistoryDetail` rather than duplicated — the two pages show\r\n * different fields, but the ROW itself (icon + eyebrow + value, optionally a chevron) is one thing.\r\n */\r\nexport function DetailRow({\r\n icon: Icon,\r\n eyebrow,\r\n text,\r\n onClick,\r\n}: Readonly<{\r\n icon: ContactActionIcon;\r\n eyebrow?: string;\r\n text: ReactNode;\r\n onClick?: () => void;\r\n}>) {\r\n const inner = (\r\n <>\r\n <span className=\"cv-detail-row-icon\" aria-hidden>\r\n <Icon size={16} />\r\n </span>\r\n <span className=\"cv-detail-row-text\">\r\n {eyebrow ? <span className=\"cv-detail-row-eyebrow\">{eyebrow}</span> : null}\r\n <span className=\"cv-detail-row-value\">{text}</span>\r\n </span>\r\n {onClick ? <ChevronRight size={16} className=\"cv-detail-row-chevron\" aria-hidden /> : null}\r\n </>\r\n );\r\n return onClick ? (\r\n <button type=\"button\" className=\"cv-detail-row cv-detail-row--action\" onClick={onClick}>\r\n {inner}\r\n </button>\r\n ) : (\r\n <div className=\"cv-detail-row\">{inner}</div>\r\n );\r\n}\r\n","import { ArrowLeft, ExternalLink, Phone } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { useIntlFormatter } from '../dialing/format-number.js';\r\nimport { initials } from '../lib/format.js';\r\nimport { DetailRow } from './DetailRow.js';\r\nimport type { Contact } from '../../core/types.js';\r\nimport type { ContactAction } from '../types.js';\r\n\r\n/**\r\n * A contact's detail page — avatar, name, phone, one optional host-defined action, and the call\r\n * button. Opens over the list when a contact is tapped (`ContactsTab` owns that transition); this\r\n * component only knows how to show ONE contact and get back out.\r\n */\r\nexport function ContactDetail({\r\n contact,\r\n onBack,\r\n contactAction,\r\n}: Readonly<{\r\n contact: Contact;\r\n onBack: () => void;\r\n contactAction?: ContactAction;\r\n}>) {\r\n const softphone = useSoftphone();\r\n const formatIntl = useIntlFormatter();\r\n const formatted = formatIntl(contact.phone);\r\n const name = contact.name ?? formatted;\r\n\r\n return (\r\n <div className=\"cv-detail\" role=\"region\" aria-label={name}>\r\n <div className=\"cv-detail-head\">\r\n <button type=\"button\" className=\"cv-detail-back\" onClick={onBack}>\r\n <ArrowLeft size={16} aria-hidden />\r\n Contactos\r\n </button>\r\n </div>\r\n\r\n <div className=\"cv-detail-body\">\r\n <div className=\"cv-detail-identity\">\r\n <span className=\"cv-detail-avatar\" aria-hidden>\r\n {initials(contact.name)}\r\n </span>\r\n <h2 className=\"cv-detail-name\">{name}</h2>\r\n </div>\r\n\r\n <div className=\"cv-detail-rows\">\r\n <DetailRow icon={Phone} eyebrow=\"Teléfono\" text={formatted} />\r\n {contactAction ? (\r\n <DetailRow\r\n icon={contactAction.icon ?? ExternalLink}\r\n text={contactAction.label}\r\n onClick={() => contactAction.onClick(contact)}\r\n />\r\n ) : null}\r\n </div>\r\n </div>\r\n\r\n <div className=\"cv-detail-foot\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-btn cv-btn--accent cv-detail-call\"\r\n onClick={() => void softphone.call(contact.phone)}\r\n >\r\n <Phone size={16} aria-hidden />\r\n Llamar\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nexport interface InfiniteListPage<T> {\r\n readonly items: readonly T[];\r\n /** Whether another page exists beyond this one. */\r\n readonly hasMore: boolean;\r\n}\r\n\r\nexport interface InfiniteListResult<T> {\r\n readonly items: readonly T[];\r\n /** True only while the FIRST page (for the current `loadPage`) is in flight. */\r\n readonly loading: boolean;\r\n /** True while a SUBSEQUENT page is in flight — kept separate from `loading` so the list doesn't\r\n * drop back to the full empty/spinner state on every scroll-triggered fetch. */\r\n readonly loadingMore: boolean;\r\n readonly hasMore: boolean;\r\n /** The first page failed. Subsequent-page failures are not surfaced here — see `loadMore` below. */\r\n readonly error: boolean;\r\n /** Attach to the scrollable list element — the `IntersectionObserver`'s `root`. */\r\n readonly containerRef: (node: HTMLElement | null) => void;\r\n /** Attach to a marker rendered after the last row, only while `hasMore`. */\r\n readonly sentinelRef: (node: HTMLElement | null) => void;\r\n}\r\n\r\n/**\r\n * Pages a list on scroll. `loadPage(skip)` fetches one page; the hook appends it and arms a\r\n * sentinel row, observed with a plain `IntersectionObserver` against the scrollable container, to\r\n * fetch the next one as it nears the bottom. No virtualization, no extra dependency — proportionate\r\n * to the list sizes a softphone panel holds (a CRM's contacts, a call history), where scrolling\r\n * itself is the cost, not rendering N rows of DOM.\r\n *\r\n * `root` is set explicitly to the scroll container rather than left as the default (browser\r\n * viewport), because the widget can sit anywhere on a host's page — a panel that is itself fully\r\n * on-screen but taller than the visible viewport would otherwise never fire.\r\n *\r\n * `loadPage`'s IDENTITY is the reset signal: give it a new one (`useCallback`, keyed on whatever\r\n * should restart the list — a changed `source` prop, a changed search term) and the hook drops the\r\n * current items and fetches page one again. A page landing after a newer `loadPage` has already\r\n * superseded it is discarded via `seqRef`, the same race the legacy CRM's `ContactsTab` guarded\r\n * against with its own `seqRef` bumped per search.\r\n */\r\nexport function useInfiniteList<T>(loadPage: (skip: number) => Promise<InfiniteListPage<T>>): InfiniteListResult<T> {\r\n const [items, setItems] = useState<readonly T[]>([]);\r\n const [loading, setLoading] = useState(true);\r\n const [loadingMore, setLoadingMore] = useState(false);\r\n const [hasMore, setHasMore] = useState(true);\r\n const [error, setError] = useState(false);\r\n\r\n const seqRef = useRef(0);\r\n const itemsRef = useRef<readonly T[]>(items);\r\n itemsRef.current = items;\r\n const loadingMoreRef = useRef(false);\r\n const hasMoreRef = useRef(true);\r\n\r\n useEffect(() => {\r\n const seq = ++seqRef.current;\r\n loadingMoreRef.current = false;\r\n hasMoreRef.current = true;\r\n setItems([]);\r\n setHasMore(true);\r\n setError(false);\r\n setLoading(true);\r\n void loadPage(0)\r\n .then((page) => {\r\n if (seq !== seqRef.current) return;\r\n setItems(page.items);\r\n setHasMore(page.hasMore);\r\n hasMoreRef.current = page.hasMore;\r\n })\r\n .catch(() => {\r\n if (seq !== seqRef.current) return;\r\n setItems([]);\r\n setHasMore(false);\r\n hasMoreRef.current = false;\r\n setError(true);\r\n })\r\n .finally(() => {\r\n if (seq === seqRef.current) setLoading(false);\r\n });\r\n }, [loadPage]);\r\n\r\n const loadMore = useCallback(() => {\r\n if (loadingMoreRef.current || !hasMoreRef.current) return;\r\n const seq = seqRef.current;\r\n loadingMoreRef.current = true;\r\n setLoadingMore(true);\r\n void loadPage(itemsRef.current.length)\r\n .then((page) => {\r\n if (seq !== seqRef.current) return;\r\n setItems((prev) => [...prev, ...page.items]);\r\n setHasMore(page.hasMore);\r\n hasMoreRef.current = page.hasMore;\r\n })\r\n .catch(() => {\r\n // Left `hasMore`/`hasMoreRef` untouched deliberately — a transient failure should not\r\n // permanently stop pagination. The sentinel stays armed, and scrolling away and back\r\n // (a real change in its intersection state) retries, mirroring the legacy CRM's\r\n // `react-window-infinite-loader` comment: \"ignore — retries on further scroll.\"\r\n })\r\n .finally(() => {\r\n loadingMoreRef.current = false;\r\n if (seq === seqRef.current) setLoadingMore(false);\r\n });\r\n }, [loadPage]);\r\n\r\n const [containerEl, setContainerEl] = useState<HTMLElement | null>(null);\r\n const [sentinelEl, setSentinelEl] = useState<HTMLElement | null>(null);\r\n // Refs, not the `loadMore`/`hasMore` values directly, so the observer effect below does not\r\n // need to re-run (tear down and recreate the observer) every time either one changes.\r\n const loadMoreRef = useRef(loadMore);\r\n loadMoreRef.current = loadMore;\r\n\r\n useEffect(() => {\r\n if (!containerEl || !sentinelEl) return;\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry?.isIntersecting) loadMoreRef.current();\r\n },\r\n { root: containerEl, rootMargin: '160px' },\r\n );\r\n observer.observe(sentinelEl);\r\n return () => observer.disconnect();\r\n }, [containerEl, sentinelEl]);\r\n\r\n return {\r\n items,\r\n loading,\r\n loadingMore,\r\n hasMore,\r\n error,\r\n containerRef: setContainerEl,\r\n sentinelRef: setSentinelEl,\r\n };\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { Check, ChevronDown, Loader2, Mic, Phone, Users } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { useInfiniteList } from '../lib/useInfiniteList.js';\r\nimport { useIntlFormatter } from '../dialing/format-number.js';\r\nimport { HistoryDetail } from './HistoryDetail.js';\r\nimport { Icon, OUTCOME_LABELS, statusTone, timeLabel } from './history-format.js';\r\nimport type { AgentsDirectory, CallHistoryEntry, HistorySource } from '../types.js';\r\nimport { formatDuration } from '../lib/format.js';\r\n\r\nconst PAGE = 30;\r\ntype StatusFilter = 'all' | 'missed';\r\n\r\nfunction startOfDay(at: Date): number {\r\n return new Date(at.getFullYear(), at.getMonth(), at.getDate()).getTime();\r\n}\r\n\r\nfunction dayLabel(at: Date, now: number): string {\r\n const diffDays = Math.round((startOfDay(new Date(now)) - startOfDay(at)) / 86_400_000);\r\n if (diffDays === 0) return 'Hoy';\r\n if (diffDays === 1) return 'Ayer';\r\n return at.toLocaleDateString('es-ES', { day: 'numeric', month: 'long' });\r\n}\r\n\r\n/** Consecutive rows sharing a day label, newest-first — the server already sorts that way. */\r\nfunction groupByDay(\r\n entries: readonly CallHistoryEntry[],\r\n now: number,\r\n): ReadonlyArray<{ readonly label: string; readonly rows: readonly CallHistoryEntry[] }> {\r\n const groups: Array<{ label: string; rows: CallHistoryEntry[] }> = [];\r\n for (const e of entries) {\r\n const label = dayLabel(e.at, now);\r\n const last = groups.at(-1);\r\n if (last && last.label === label) last.rows.push(e);\r\n else groups.push({ label, rows: [e] });\r\n }\r\n return groups;\r\n}\r\n\r\n/**\r\n * \"Todas las personas\" / \"Mis llamadas · X\" / a specific person — the Historial tab's filter by who\r\n * handled the call. Own combobox, same shape as `CountryPicker`'s (a `<button>` + a positioned\r\n * `<div>`, no external popover lib) but not sharing its code: the two pickers have no reason to\r\n * change together, and duplicating this little outside-click/Escape handling is cheaper than coupling\r\n * them through a shared abstraction neither actually needs.\r\n */\r\nfunction PersonFilter({\r\n value,\r\n directory,\r\n onChange,\r\n}: Readonly<{\r\n /** '' means everyone. */\r\n value: string;\r\n directory: AgentsDirectory;\r\n onChange: (userId: string) => void;\r\n}>) {\r\n const [open, setOpen] = useState(false);\r\n const rootRef = useRef<HTMLDivElement>(null);\r\n\r\n // Close on outside click / Escape. On the SHADOW ROOT's node when there is one — inside a shadow\r\n // tree, `document` click targets are retargeted to the host, so `contains()` against the host would\r\n // report every internal click as \"outside\" and the popover would never open (see CountryPicker).\r\n useEffect(() => {\r\n if (!open) return;\r\n const root = rootRef.current?.getRootNode() ?? document;\r\n const onDown = (e: Event) => {\r\n if (!rootRef.current?.contains(e.target as Node)) setOpen(false);\r\n };\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') setOpen(false);\r\n };\r\n root.addEventListener('pointerdown', onDown);\r\n document.addEventListener('keydown', onKey);\r\n return () => {\r\n root.removeEventListener('pointerdown', onDown);\r\n document.removeEventListener('keydown', onKey);\r\n };\r\n }, [open]);\r\n\r\n const options: ReadonlyArray<{ readonly v: string; readonly label: string }> = [\r\n { v: '', label: 'Todas las personas' },\r\n ...(directory.me ? [{ v: directory.me.userId, label: `Mis llamadas · ${directory.me.name ?? 'Yo'}` }] : []),\r\n ...directory.people\r\n .filter((p) => !directory.me || p.userId !== directory.me.userId)\r\n .map((p) => ({ v: p.userId, label: p.name ?? 'Sin nombre' })),\r\n ];\r\n const label = options.find((o) => o.v === value)?.label ?? 'Todas las personas';\r\n\r\n return (\r\n <div className=\"cv-person-filter\" ref={rootRef}>\r\n <button\r\n type=\"button\"\r\n className=\"cv-person-filter-chip\"\r\n onClick={() => setOpen((o) => !o)}\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={open}\r\n >\r\n <Users size={13} aria-hidden />\r\n <span className=\"cv-person-filter-label\">{label}</span>\r\n <ChevronDown size={13} className=\"cv-person-filter-caret\" data-open={open} aria-hidden />\r\n </button>\r\n {open ? (\r\n <div className=\"cv-person-filter-pop\" role=\"listbox\">\r\n {options.map((opt) => (\r\n <button\r\n key={opt.v || 'all'}\r\n type=\"button\"\r\n role=\"option\"\r\n aria-selected={opt.v === value}\r\n className=\"cv-person-filter-item\"\r\n onClick={() => {\r\n onChange(opt.v);\r\n setOpen(false);\r\n }}\r\n >\r\n <span className=\"cv-person-filter-name\">{opt.label}</span>\r\n <Check size={14} className=\"cv-person-filter-check\" data-on={opt.v === value} aria-hidden />\r\n </button>\r\n ))}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * The Historial tab — decoupled. Entries come from an injected `HistorySource` (SPEC §4). Tapping a\r\n * row always opens its detail page (`HistoryDetail`) — the row's own call button places a call\r\n * directly, without opening it. Same split `ContactsTab`/`ContactDetail` already settled on, for the\r\n * same reason: a row-wide tap target and a specific, separate action live at different button.\r\n *\r\n * The two filters (status, person) are local UI state — `HistorySource` merely accepts them as\r\n * optional params, same as `ContactsSource` accepts `search`, so a host's own override can honour\r\n * them or ignore them. The person directory behind the second filter is different: it is always\r\n * Coventia's own org membership (there is no partner override point for it, unlike `contacts`), so\r\n * it is read straight off `softphone.sources` rather than threaded through as a prop.\r\n */\r\nexport function HistoryTab({ source }: Readonly<{ source: HistorySource }>) {\r\n const softphone = useSoftphone();\r\n const formatIntl = useIntlFormatter();\r\n const now = Date.now();\r\n const [status, setStatus] = useState<StatusFilter>('all');\r\n const [agentId, setAgentId] = useState(''); // '' = everyone\r\n const [directory, setDirectory] = useState<AgentsDirectory | null>(null);\r\n const [selected, setSelected] = useState<CallHistoryEntry | null>(null);\r\n\r\n // Fetched once, not paginated — an org's phone members, not its calls. Absent (and the person\r\n // filter simply does not render) when there is no Coventia backend at all: a bare dialer, or a\r\n // host-supplied `history` override with nothing behind `softphone.sources`.\r\n useEffect(() => {\r\n const listAgents = softphone.sources?.listAgents;\r\n if (!listAgents) return;\r\n let cancelled = false;\r\n void listAgents()\r\n .then((d) => !cancelled && setDirectory(d))\r\n .catch(() => {});\r\n return () => {\r\n cancelled = true;\r\n };\r\n }, [softphone]);\r\n\r\n /**\r\n * `HistorySource` has no `total` (unlike `ContactsSource`), so \"is there another page\" is read\r\n * off the page itself: a page shorter than what was asked for is the last one. A page exactly\r\n * `PAGE` long that happens to be the last one costs one extra request that returns zero rows —\r\n * an acceptable trade for not having to widen the source contract just for this.\r\n */\r\n const loadPage = useCallback(\r\n (skip: number) =>\r\n source({\r\n skip,\r\n limit: PAGE,\r\n missed: status === 'missed',\r\n ...(agentId ? { userId: agentId } : {}),\r\n }).then((rows) => ({ items: rows, hasMore: rows.length === PAGE })),\r\n [source, status, agentId],\r\n );\r\n const { items: entries, loading, loadingMore, hasMore, containerRef, sentinelRef } = useInfiniteList(loadPage);\r\n const groups = groupByDay(entries, now);\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n <div className=\"cv-list-head\">\r\n <div className=\"cv-segmented\" role=\"tablist\" aria-label=\"Filtrar por estado\">\r\n {(['all', 'missed'] as const satisfies readonly StatusFilter[]).map((key) => (\r\n <button\r\n key={key}\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected={status === key}\r\n className=\"cv-segmented-btn\"\r\n onClick={() => setStatus(key)}\r\n >\r\n {key === 'all' ? 'Todas' : 'Perdidas'}\r\n </button>\r\n ))}\r\n </div>\r\n {directory ? <PersonFilter value={agentId} directory={directory} onChange={setAgentId} /> : null}\r\n </div>\r\n\r\n <div className=\"cv-list\" ref={containerRef}>\r\n {loading && <div className=\"cv-empty\">Cargando…</div>}\r\n {!loading && entries.length === 0 && (\r\n <div className=\"cv-empty\">\r\n {status === 'missed' ? 'Sin llamadas perdidas' : 'Sin llamadas recientes'}\r\n </div>\r\n )}\r\n {!loading &&\r\n groups.map((group) => (\r\n <div key={group.label}>\r\n <div className=\"cv-history-day\">{group.label}</div>\r\n {group.rows.map((e) => (\r\n <div key={e.id} className=\"cv-item\">\r\n <span className=\"cv-item-avatar\" data-tone={statusTone(e)} aria-hidden>\r\n <Icon entry={e} />\r\n </span>\r\n {/* Always enabled — tapping a call opens its detail page unconditionally, the same\r\n way a contact row does. The call button beside it is the only way to call from\r\n here now; recordings/handler info live on the detail page, not the list. */}\r\n <button\r\n type=\"button\"\r\n className=\"cv-item-main\"\r\n onClick={() => setSelected(e)}\r\n >\r\n <span className=\"cv-item-name\" data-tone={e.missed ? 'danger' : undefined}>\r\n {e.name ?? formatIntl(e.number)}\r\n </span>\r\n <span className=\"cv-item-sub\">\r\n <span className=\"tabular-nums\">{timeLabel(e.at)}</span>\r\n {e.missed ? (\r\n <span className=\"cv-item-sub-outcome\">\r\n {' '}\r\n · {e.outcome ? OUTCOME_LABELS[e.outcome] : 'Perdida'}\r\n </span>\r\n ) : (\r\n e.durationSec > 0 && ` · ${formatDuration(e.durationSec)}`\r\n )}\r\n {/* Informational only — the recording itself plays from the detail page now.\r\n A hint that opening the row is worth it, not an action of its own. */}\r\n {e.recorded ? <Mic size={11} className=\"cv-item-sub-rec\" aria-label=\"Grabada\" /> : null}\r\n </span>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"cv-item-action\"\r\n data-tone=\"accent\"\r\n aria-label={`Llamar a ${e.name ?? e.number}`}\r\n onClick={() => void softphone.call(e.number)}\r\n >\r\n <Phone size={16} />\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n {!loading && hasMore ? <div ref={sentinelRef} className=\"cv-list-sentinel\" aria-hidden /> : null}\r\n {loadingMore ? (\r\n <div className=\"cv-list-loading-more\" role=\"status\" aria-label=\"Cargando más llamadas\">\r\n <Loader2 className=\"cv-list-loading-more-spinner\" size={14} aria-hidden />\r\n </div>\r\n ) : null}\r\n </div>\r\n\r\n {/* Kept mounted underneath the list, not swapped in its place — so the list's own scroll\r\n position and size measurements survive a round trip through the detail page and back. */}\r\n {selected ? <HistoryDetail entry={selected} onBack={() => setSelected(null)} /> : null}\r\n </div>\r\n );\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { ArrowLeft, ArrowRight, CalendarClock, Hash, Loader2, Mic, Phone, Timer, User } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { useIntlFormatter } from '../dialing/format-number.js';\r\nimport { DetailRow } from './DetailRow.js';\r\nimport { Icon, OUTCOME_LABELS, statusIcon, statusTone, timeLabel, fullDateLabel } from './history-format.js';\r\nimport { formatDuration } from '../lib/format.js';\r\nimport type { CallDetail, CallHandler, CallHistoryEntry } from '../types.js';\r\n\r\n/**\r\n * Who handled the call, in order — \"Ana · 102 → Bruno · 100\", the LAST hop (the one it ended with)\r\n * highlighted. A hop whose extension never resolved to an org member falls back to \"Ext. 102\" rather\r\n * than disappearing — unifying `CallHandler`'s two sources (a real handler, a bare extension) into one\r\n * rendering, since both are the same shape by the time they reach here (see `toHandledBy`).\r\n */\r\nfunction HandlerChain({ handlers }: Readonly<{ handlers: readonly CallHandler[] }>) {\r\n return (\r\n <span className=\"cv-detail-handlers\">\r\n {handlers.map((h, i) => {\r\n const isLast = i === handlers.length - 1;\r\n const label = h.name ?? `Ext. ${h.extension}`;\r\n return (\r\n <span key={`${h.extension}-${i}`} className=\"cv-detail-handler-hop\">\r\n {i > 0 ? <ArrowRight size={12} className=\"cv-detail-handler-arrow\" aria-hidden /> : null}\r\n <span className=\"cv-detail-handler-chip\" data-tone={isLast ? 'accent' : undefined}>\r\n {label}\r\n {h.name ? <span className=\"cv-detail-handler-ext\">· {h.extension}</span> : null}\r\n </span>\r\n </span>\r\n );\r\n })}\r\n </span>\r\n );\r\n}\r\n\r\n/**\r\n * A call's detail page — identity, its recording(s) if any, and the metadata the legacy CRM's own\r\n * `CallDetail` showed. Ported close to that implementation on purpose: unlike `contactAction`, there\r\n * is no partner customisation point here to design around — the Historial tab is Coventia's data,\r\n * always, so this is a direct port rather than a generalised API.\r\n *\r\n * Opens over the list when a row is tapped (`HistoryTab` owns that transition); this component only\r\n * knows how to show ONE call and get back out.\r\n */\r\nexport function HistoryDetail({\r\n entry,\r\n onBack,\r\n}: Readonly<{\r\n entry: CallHistoryEntry;\r\n onBack: () => void;\r\n}>) {\r\n const softphone = useSoftphone();\r\n const formatIntl = useIntlFormatter();\r\n const [detail, setDetail] = useState<CallDetail | null>(null);\r\n const [loadingDetail, setLoadingDetail] = useState(false);\r\n\r\n // The enriched fetch — signed recording URLs, and the SAME handler chain with names resolved. Only\r\n // when there is something to enrich: `entry.loadDetail` is absent otherwise (see `CallHistoryEntry`).\r\n useEffect(() => {\r\n const load = entry.loadDetail;\r\n if (!load) return;\r\n let cancelled = false;\r\n setLoadingDetail(true);\r\n void load()\r\n .then((d) => !cancelled && setDetail(d))\r\n .catch(() => {\r\n // Kept as the list's own (unenriched) data — `loadingDetail` still clears, so the recording\r\n // section's own \"couldn't load\" state renders instead of spinning forever.\r\n })\r\n .finally(() => !cancelled && setLoadingDetail(false));\r\n return () => {\r\n cancelled = true;\r\n };\r\n }, [entry]);\r\n\r\n const formatted = formatIntl(entry.number);\r\n const name = entry.name ?? formatted;\r\n const handledBy = detail?.handledBy ?? entry.handledBy;\r\n const recordingUrls = detail?.recordingUrls ?? [];\r\n const loadingRecording = entry.recorded && loadingDetail && recordingUrls.length === 0;\r\n const statusText = entry.missed ? (entry.outcome ? OUTCOME_LABELS[entry.outcome] : 'Perdida') : 'Contestada';\r\n const handlerLabel =\r\n handledBy.length > 1 ? 'Ruta de la llamada' : entry.direction === 'outbound' ? 'Realizada por' : 'Atendida por';\r\n\r\n return (\r\n <div className=\"cv-detail\" role=\"region\" aria-label={name}>\r\n <div className=\"cv-detail-head\">\r\n <button type=\"button\" className=\"cv-detail-back\" onClick={onBack}>\r\n <ArrowLeft size={16} aria-hidden />\r\n Historial\r\n </button>\r\n </div>\r\n\r\n <div className=\"cv-detail-body\">\r\n <div className=\"cv-detail-identity\">\r\n <span className=\"cv-detail-avatar\" data-tone={statusTone(entry)} aria-hidden>\r\n <Icon entry={entry} />\r\n </span>\r\n <h2 className=\"cv-detail-name\" data-tone={entry.missed ? 'danger' : undefined}>\r\n {name}\r\n </h2>\r\n <p className=\"cv-detail-meta\">\r\n {statusText} · {timeLabel(entry.at)}\r\n </p>\r\n </div>\r\n\r\n {entry.recorded ? (\r\n <div className=\"cv-detail-recording\">\r\n {loadingRecording ? (\r\n <div className=\"cv-detail-recording-status\">\r\n <Loader2 size={14} className=\"cv-detail-recording-spinner\" aria-hidden />\r\n Cargando grabación…\r\n </div>\r\n ) : recordingUrls.length > 0 ? (\r\n <>\r\n <p className=\"cv-detail-recording-label\">\r\n {recordingUrls.length === 1 ? 'Grabación' : 'Grabaciones'}\r\n </p>\r\n {recordingUrls.map((url) => (\r\n <audio key={url} controls src={url} className=\"cv-detail-audio\" preload=\"metadata\" />\r\n ))}\r\n </>\r\n ) : (\r\n <p className=\"cv-detail-recording-status cv-detail-recording-status--warn\">\r\n No se pudo cargar la grabación ahora. Inténtalo de nuevo más tarde.\r\n </p>\r\n )}\r\n </div>\r\n ) : (\r\n <p className=\"cv-detail-recording-status\">\r\n <Mic size={14} aria-hidden />\r\n Esta llamada no se grabó.\r\n </p>\r\n )}\r\n\r\n <div className=\"cv-detail-rows\">\r\n <DetailRow icon={statusIcon(entry)} eyebrow=\"Estado\" text={statusText} />\r\n <DetailRow icon={CalendarClock} eyebrow=\"Fecha y hora\" text={fullDateLabel(entry.at)} />\r\n {entry.durationSec > 0 ? (\r\n <DetailRow icon={Timer} eyebrow=\"Duración\" text={formatDuration(entry.durationSec)} />\r\n ) : null}\r\n <DetailRow icon={Phone} eyebrow=\"Número\" text={formatted} />\r\n {handledBy.length > 0 ? (\r\n <DetailRow icon={User} eyebrow={handlerLabel} text={<HandlerChain handlers={handledBy} />} />\r\n ) : null}\r\n {entry.direction === 'inbound' && entry.did ? (\r\n <DetailRow icon={Hash} eyebrow=\"Número marcado (DID)\" text={formatIntl(entry.did)} />\r\n ) : null}\r\n </div>\r\n </div>\r\n\r\n <div className=\"cv-detail-foot\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-btn cv-btn--accent cv-detail-call\"\r\n onClick={() => void softphone.call(entry.number)}\r\n >\r\n <Phone size={16} aria-hidden />\r\n Llamar\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { PhoneIncoming, PhoneMissed, PhoneOutgoing } from 'lucide-react';\r\nimport type { CallHistoryEntry, CallOutcome, ContactActionIcon } from '../types.js';\r\n\r\n/** The SDK's own vocabulary (never the PBX's raw disposition string — see `coventia/sources.ts`). */\r\nexport const OUTCOME_LABELS: Record<CallOutcome, string> = {\r\n 'no-answer': 'No contestada',\r\n busy: 'Ocupada',\r\n cancelled: 'Cancelada',\r\n failed: 'Fallida',\r\n unavailable: 'No disponible',\r\n};\r\n\r\n/** A literal clock time — callers that also show the date (a day header, a full timestamp) say it\r\n * separately rather than repeating it here. */\r\nexport function timeLabel(at: Date): string {\r\n return at.toLocaleTimeString('es-ES', { hour: '2-digit', minute: '2-digit' });\r\n}\r\n\r\n/** Date AND time together, spelled out — the call detail page's own \"Fecha y hora\" row, which has no\r\n * day-group header above it to lean on the way a list row does. */\r\nexport function fullDateLabel(at: Date): string {\r\n return at.toLocaleString('es-ES', {\r\n day: '2-digit',\r\n month: 'long',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n });\r\n}\r\n\r\nexport function Icon({ entry }: Readonly<{ entry: CallHistoryEntry }>) {\r\n if (entry.missed) return <PhoneMissed size={16} />;\r\n return entry.direction === 'inbound' ? <PhoneIncoming size={16} /> : <PhoneOutgoing size={16} />;\r\n}\r\n\r\n/**\r\n * The same icon `Icon` renders, but as a bare component reference rather than a rendered element —\r\n * what `DetailRow`'s `icon` prop needs (it renders the icon itself, at its own size). Kept separate\r\n * from `Icon` rather than having `Icon` take an optional `size` and reusing it two ways: `Icon` is a\r\n * component meant to be written as `<Icon entry={e} />`; this is a value meant to be passed around.\r\n */\r\nexport function statusIcon(entry: CallHistoryEntry): ContactActionIcon {\r\n if (entry.missed) return PhoneMissed;\r\n return entry.direction === 'inbound' ? PhoneIncoming : PhoneOutgoing;\r\n}\r\n\r\n/**\r\n * Three status hues, not two — matching the legacy CRM's own split (emerald/sky/rose) rather than\r\n * collapsing an answered outgoing call into the same colour as an answered incoming one. Direction\r\n * is already the icon's shape; this is a SEPARATE signal (did it connect) that direction alone can't\r\n * carry once \"connected\" itself gets a colour at all.\r\n */\r\nexport function statusTone(entry: CallHistoryEntry): 'accent' | 'info' | 'danger' {\r\n if (entry.missed) return 'danger';\r\n return entry.direction === 'inbound' ? 'accent' : 'info';\r\n}\r\n","import type { ReactNode } from 'react';\r\n\r\n/**\r\n * One labeled group on the Ajustes tab — a title, and a bordered body holding its rows (dividers\r\n * between them, no border of their own; see `.cv-settings-section-body`'s own CSS comment for why).\r\n *\r\n * Ajustes started as a flat list of two rows (Micrófono, Altavoces) with no grouping at all — fine\r\n * for two rows, unreadable the moment a third, unrelated setting arrives with nothing to tell it\r\n * apart from the device rows above it. This is the container every future settings group reuses, so\r\n * \"add a setting\" never again means \"invent a new layout for it.\"\r\n */\r\nexport function SettingsSection({\r\n title,\r\n children,\r\n}: Readonly<{\r\n title: string;\r\n children: ReactNode;\r\n}>) {\r\n return (\r\n <section className=\"cv-settings-section\">\r\n <h3 className=\"cv-settings-section-title\">{title}</h3>\r\n <div className=\"cv-settings-section-body\">{children}</div>\r\n </section>\r\n );\r\n}\r\n","import { DevicePickers } from './DevicePicker.js';\r\nimport { SettingsSection } from './SettingsSection.js';\r\n\r\n/**\r\n * The Ajustes tab: choose the microphone and the speaker (SPEC §7 Phase 2 — device management).\r\n *\r\n * Always rendered — unlike Contactos/Historial, it needs no host-supplied data source. A microphone\r\n * and a speaker are not optional parts of a phone.\r\n *\r\n * Grouped into `SettingsSection`s rather than one flat list — see that component's own comment. When\r\n * the next setting arrives, it gets its own `<SettingsSection title=\"…\">`, not a third row bolted\r\n * onto \"Dispositivos\".\r\n *\r\n * The closing note is deliberate, not filler: with a single section this tab reads as unfinished\r\n * rather than minimal, and says so — a roadmap hint, not an apology — rather than leaving the rest\r\n * of the tab blank.\r\n */\r\nexport function SettingsTab() {\r\n return (\r\n <div className=\"cv-view cv-settings\">\r\n <div className=\"cv-settings-body\">\r\n <SettingsSection title=\"Dispositivos\">\r\n <DevicePickers />\r\n </SettingsSection>\r\n <p className=\"cv-settings-more\">Más ajustes se irán añadiendo próximamente.</p>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { isWebRtcSupported } from '../../core/env.js';\r\n\r\nexport type MicState = 'checking' | 'prompting' | 'warming' | 'ready' | 'denied' | 'unsupported';\r\n\r\n/**\r\n * Microphone permission, as a state machine.\r\n *\r\n * Extracted from `MicPermissionGate` so `SoftphoneWidget` can gate itself: a softphone without a\r\n * microphone is not a softphone, so asking every integrator to remember a wrapper component is\r\n * asking them to remember not to ship something broken.\r\n *\r\n * **`warming` is the part that matters, and the part the SDK had lost.**\r\n *\r\n * `navigator.permissions.query({name:'microphone'})` saying `granted` is NOT enough. Several\r\n * browsers still prompt on the first `getUserMedia` of a page session, so a gate that trusts the\r\n * query and skips straight to `ready` moves the prompt from panel-open time — where the user is\r\n * looking at a phone and expects it — to **the middle of the first call**, where a modal steals\r\n * focus from a ringing conversation.\r\n *\r\n * So `getUserMedia` runs on EVERY mount, even when already granted. It verifies the mic works in\r\n * this session and primes the track, which is why the old CRM gate did it and why dropping it during\r\n * the port was a silent regression: it only shows up on a real call, on a real machine, once.\r\n *\r\n * The tracks are stopped immediately — we wanted the grant, not the microphone. Holding them open is\r\n * the documented Twilio mic-leak (the browser tab shows a recording indicator forever).\r\n */\r\nexport function useMicPermission(): { state: MicState; request: () => Promise<void> } {\r\n const [state, setState] = useState<MicState>('checking');\r\n\r\n /** Take the mic, confirm it opens, give it straight back. */\r\n const warm = useCallback(async () => {\r\n try {\r\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\r\n for (const track of stream.getTracks()) track.stop();\r\n setState('ready');\r\n } catch {\r\n setState('denied');\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isWebRtcSupported()) {\r\n setState('unsupported');\r\n return;\r\n }\r\n\r\n let cancelled = false;\r\n let status: PermissionStatus | null = null;\r\n\r\n const apply = (permission: PermissionState): void => {\r\n if (cancelled) return;\r\n if (permission === 'denied') {\r\n setState('denied');\r\n } else if (permission === 'granted') {\r\n // Granted, and STILL warm it — see the note above.\r\n setState('warming');\r\n void warm();\r\n } else {\r\n setState('prompting');\r\n }\r\n };\r\n\r\n void (async () => {\r\n try {\r\n status = await navigator.permissions.query({ name: 'microphone' as PermissionName });\r\n if (cancelled) return;\r\n apply(status.state);\r\n // The user can revoke mid-session from the browser's own UI; without this the widget keeps\r\n // offering a dialer that cannot open a microphone.\r\n status.onchange = () => status && apply(status.state);\r\n } catch {\r\n // Firefox has historically not supported querying 'microphone'. Not knowing is fine — ask.\r\n if (!cancelled) setState('prompting');\r\n }\r\n })();\r\n\r\n return () => {\r\n cancelled = true;\r\n if (status) status.onchange = null;\r\n };\r\n }, [warm]);\r\n\r\n return { state, request: warm };\r\n}\r\n","/**\r\n * Browser-capability probes.\r\n *\r\n * SPEC §10.2: nothing under core/ or transports/ may touch `window`, `document` or `navigator` at\r\n * MODULE SCOPE. Importing the package must be safe on a server — a Next.js consumer renders on the\r\n * server first, and a bare `ReferenceError: window is not defined` at import time makes us unusable\r\n * there no matter how framework-agnostic the runtime API is.\r\n *\r\n * Every probe below is therefore a FUNCTION, evaluated lazily at call time.\r\n */\r\n\r\n/** True when running in a browser with a DOM. False under SSR, in Node, and in a worker. */\r\nexport function isBrowser(): boolean {\r\n return typeof window !== 'undefined' && typeof document !== 'undefined';\r\n}\r\n\r\n/**\r\n * True when the browser exposes the WebRTC APIs the softphone needs.\r\n *\r\n * Worth a distinct check rather than folding into isBrowser(): privacy extensions\r\n * (uBlock Origin Extra, WebRTC Leak Prevent) disable RTCPeerConnection outright, and the resulting\r\n * failure is otherwise reported as a confusing SIP error deep in a call attempt.\r\n */\r\nexport function isWebRtcSupported(): boolean {\r\n return (\r\n isBrowser() &&\r\n typeof RTCPeerConnection !== 'undefined' &&\r\n typeof navigator !== 'undefined' &&\r\n typeof navigator.mediaDevices?.getUserMedia === 'function'\r\n );\r\n}\r\n","/**\r\n * How to un-block the microphone, per browser.\r\n *\r\n * **Steps in the widget rather than a link out**, which was the first instinct and is worse:\r\n *\r\n * - A support URL is somebody else's contract. Chrome's article checks out\r\n * (\"Utilizar la cámara y el micrófono en Chrome\"), but Mozilla's site answers every request —\r\n * including a deliberately fake slug — with a bot-challenge page, so no Firefox URL can be\r\n * verified, and every Edge slug tried returned 404. Shipping a link that might 404 is a dead end\r\n * inside a dead end.\r\n * - It is three clicks away in the browser the user is already looking at. Sending them to a\r\n * support site to read the same three clicks is a context switch that solves nothing.\r\n * - Our copy is Spanish-only by design (SPEC §2.4); a support page follows its own locale rules.\r\n *\r\n * The verified Chrome article is still offered where it applies, as a last resort rather than the\r\n * first answer.\r\n */\r\n\r\nexport interface UnblockGuide {\r\n readonly steps: readonly string[];\r\n /** Only present where the URL has been verified to exist and to be about microphone permission. */\r\n readonly url?: string;\r\n}\r\n\r\ntype BrowserId = 'firefox' | 'edge' | 'chromium' | 'safari' | 'unknown';\r\n\r\n/**\r\n * Which browser is this, for help purposes only.\r\n *\r\n * UA sniffing, knowingly: it decides which three sentences to show, so being wrong costs a slightly\r\n * off instruction, not a broken feature. Order matters — Edge and most Chromium forks put \"Chrome\"\r\n * in their UA, and Chrome puts \"Safari\" in its.\r\n */\r\nfunction detectBrowser(ua: string): BrowserId {\r\n if (/firefox|fxios/i.test(ua)) return 'firefox';\r\n if (/edg\\//i.test(ua)) return 'edge';\r\n if (/chrome|chromium|crios/i.test(ua)) return 'chromium';\r\n if (/safari/i.test(ua)) return 'safari';\r\n return 'unknown';\r\n}\r\n\r\n/** Verified: returns \"Utilizar la cámara y el micrófono en Chrome\" in Spanish. */\r\nconst CHROME_HELP = 'https://support.google.com/chrome/answer/2693767?hl=es';\r\n\r\nconst GUIDES: Record<BrowserId, UnblockGuide> = {\r\n chromium: {\r\n steps: [\r\n 'Haz clic en el icono 🔒 a la izquierda de la dirección web.',\r\n 'Busca «Micrófono» y cámbialo a «Permitir».',\r\n 'Recarga la página.',\r\n ],\r\n url: CHROME_HELP,\r\n },\r\n // Edge is Chromium: same padlock, same panel. The article is Chrome's, so it is offered but not\r\n // led with — the steps above match what an Edge user actually sees.\r\n edge: {\r\n steps: [\r\n 'Haz clic en el icono 🔒 a la izquierda de la dirección web.',\r\n 'Busca «Micrófono» y cámbialo a «Permitir».',\r\n 'Recarga la página.',\r\n ],\r\n },\r\n firefox: {\r\n steps: [\r\n 'Haz clic en el icono de micrófono tachado en la barra de direcciones.',\r\n 'Pulsa la «✕» junto a «Bloqueado» para quitar el bloqueo.',\r\n 'Recarga la página.',\r\n ],\r\n },\r\n safari: {\r\n steps: [\r\n 'Abre «Safari» → «Ajustes para este sitio web».',\r\n 'En «Micrófono», elige «Permitir».',\r\n 'Recarga la página.',\r\n ],\r\n },\r\n unknown: {\r\n steps: [\r\n 'Abre los permisos de este sitio en tu navegador.',\r\n 'Cambia el micrófono a «Permitir».',\r\n 'Recarga la página.',\r\n ],\r\n },\r\n};\r\n\r\n/** The guide for the current browser. SSR-safe: no `navigator` at module scope (SPEC §10.2). */\r\nexport function unblockGuide(): UnblockGuide {\r\n const ua = typeof navigator === 'undefined' ? '' : navigator.userAgent;\r\n return GUIDES[detectBrowser(ua)];\r\n}\r\n\r\n/** @internal — tests drive the detection without stubbing a global. */\r\nexport function __guideFor(ua: string): UnblockGuide {\r\n return GUIDES[detectBrowser(ua)];\r\n}\r\n","import type { ReactNode } from 'react';\r\nimport { Mic, MicOff, HelpCircle, ExternalLink } from 'lucide-react';\r\nimport { useMicPermission, type MicState } from './useMicPermission.js';\r\nimport { unblockGuide } from './unblock-mic.js';\r\n\r\n/**\r\n * What the user sees while the mic is not available yet. Body content only — no shell — so the\r\n * widget can render it inside its own `.cv-body` instead of nesting a second `.cv-softphone`.\r\n */\r\nexport function MicPrompt({\r\n state,\r\n onRequest,\r\n}: Readonly<{ state: MicState; onRequest: () => void }>) {\r\n if (state === 'unsupported') {\r\n return (\r\n <div className=\"cv-gate\" data-state={state} data-tone=\"danger\">\r\n <span className=\"cv-gate-mark\">\r\n <MicOff size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">Llamadas no disponibles</h3>\r\n <p>Este navegador no admite llamadas. Prueba con Chrome, Edge o Firefox.</p>\r\n </div>\r\n );\r\n }\r\n\r\n if (state === 'denied') {\r\n const guide = unblockGuide();\r\n return (\r\n <div className=\"cv-gate\" data-state={state} data-tone=\"danger\">\r\n <span className=\"cv-gate-mark\">\r\n <MicOff size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">Micrófono bloqueado</h3>\r\n <p>Permítelo en tu navegador para poder llamar.</p>\r\n\r\n {/*\r\n A dead end needs a way out, and the way out is three clicks away in the browser they are\r\n already looking at — so the steps are HERE, not behind a link to a support site.\r\n `<details>` is the disclosure: native, keyboard-accessible, no JS, collapsed by default so\r\n the panel is not a wall of text for the people who already know.\r\n */}\r\n <details className=\"cv-help\">\r\n <summary>\r\n <HelpCircle size={13} aria-hidden />\r\n Cómo permitirlo\r\n </summary>\r\n <ol>\r\n {guide.steps.map((step) => (\r\n <li key={step}>{step}</li>\r\n ))}\r\n </ol>\r\n {guide.url ? (\r\n <a href={guide.url} target=\"_blank\" rel=\"noreferrer noopener\">\r\n Guía del navegador\r\n <ExternalLink size={11} aria-hidden />\r\n </a>\r\n ) : null}\r\n </details>\r\n </div>\r\n );\r\n }\r\n\r\n /*\r\n * `warming` — `getUserMedia()` is running, and the browser may be showing its OWN permission\r\n * prompt on top of us.\r\n *\r\n * We cannot know which: the API returns one promise and signals nothing either way. **Timing\r\n * separates them.** A silent grant resolves in tens of milliseconds; a prompt waits on a human.\r\n * Since the CSS holds this state back 450 ms, the rule falls out of the delay: if this is visible\r\n * at all, somebody is being asked something.\r\n *\r\n * So it points at the browser's prompt instead of narrating ours. \"Preparando el micrófono…\" was\r\n * true and useless — it described our internals while the actual question sat unanswered in the\r\n * corner of the screen.\r\n */\r\n if (state === 'warming') {\r\n return (\r\n <div className=\"cv-gate\" data-state={state}>\r\n <span className=\"cv-gate-mark\">\r\n <Mic size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">Permite el micrófono</h3>\r\n <p>Acepta el aviso que muestra el navegador para continuar.</p>\r\n </div>\r\n );\r\n }\r\n\r\n /*\r\n * `checking` — querying `permissions.query()`. No browser UI can appear during this, so there is\r\n * nothing to point at and nothing for the user to do. Also delayed 450 ms, and in practice never\r\n * painted at all.\r\n */\r\n if (state === 'checking') {\r\n return (\r\n <div className=\"cv-gate\" data-state={state}>\r\n <span className=\"cv-gate-mark\">\r\n <Mic size={22} />\r\n </span>\r\n <p>Preparando el micrófono…</p>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"cv-gate\" data-state={state}>\r\n <span className=\"cv-gate-mark\">\r\n <Mic size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">Permite el micrófono</h3>\r\n {/* Says WHY before asking. A permission request with no reason is the one people decline. */}\r\n <p>Lo necesitamos para que puedas hablar durante las llamadas.</p>\r\n <button className=\"cv-btn cv-btn--accent\" onClick={onRequest}>\r\n Permitir micrófono\r\n </button>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Gate arbitrary children on microphone permission.\r\n *\r\n * **`SoftphoneWidget` now gates itself** (`requireMic`, on by default), so most integrations need\r\n * nothing here — a softphone without a microphone is not a softphone, and making the gate opt-in\r\n * meant every integrator had to know to opt in or ship something that fails mid-call.\r\n *\r\n * This stays exported for hosts that want the prompt somewhere else: their own modal, a page-level\r\n * onboarding step, or wrapping something larger than the widget.\r\n */\r\nexport function MicPermissionGate({ children }: Readonly<{ children: ReactNode }>) {\r\n const { state, request } = useMicPermission();\r\n if (state === 'ready') return <>{children}</>;\r\n return (\r\n <div className=\"cv-softphone\">\r\n <MicPrompt state={state} onRequest={() => void request()} />\r\n </div>\r\n );\r\n}\r\n","import { TriangleAlert } from 'lucide-react';\r\nimport { ERROR_TEXT } from '../lib/error-text.js';\r\nimport type { FatalSoftphoneError } from '../../core/errors.js';\r\n\r\n/**\r\n * Why the phone cannot be used, and the one thing worth trying.\r\n *\r\n * **Deliberately the same `.cv-gate` as `MicPrompt`**, not a banner. The widget already had this\r\n * affordance for \"something is wrong, here is why, here is what to do\", and it earns its shape: it\r\n * REPLACES the body rather than sitting above it. A fatal error means calling is impossible, so\r\n * leaving a dialpad visible under a warning invites the user to try anyway and learn nothing.\r\n *\r\n * No dismissal — no close button, no timer. The condition is still true; hiding the explanation would\r\n * leave a phone that silently refuses. It goes when the softphone reaches `online`, which is the only\r\n * evidence available that whatever was wrong no longer is.\r\n */\r\nexport function ErrorGate({\r\n error,\r\n onRetry,\r\n}: Readonly<{ error: FatalSoftphoneError; onRetry: () => void }>) {\r\n const text = ERROR_TEXT[error.code];\r\n\r\n return (\r\n /*\r\n `part` on all four, because this is the most intrusive thing the SDK draws — it replaces the\r\n whole dialpad — and inside `<coventia-softphone>` a shadow root makes it otherwise unreachable\r\n from the host's CSS. Custom properties alone only let a host recolour what we chose to draw.\r\n\r\n `data-code` is NOT a substitute: it is inside the shadow root, so `[data-code=…]` selectors\r\n cannot cross the boundary either. It stays for the light-DOM `/ui` path and for debugging.\r\n */\r\n <div className=\"cv-gate\" data-tone=\"danger\" data-code={error.code} part=\"error-gate\">\r\n <span className=\"cv-gate-mark\">\r\n <TriangleAlert size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\" part=\"error-title\">\r\n {text.title}\r\n </h3>\r\n {/* Every fatal code has a body — `error-text.test.ts` fails the build otherwise. */}\r\n {text.body === undefined ? null : <p part=\"error-body\">{text.body}</p>}\r\n {/*\r\n `start()` re-provisions, and every fatal code we raise is recoverable by re-provisioning:\r\n a stale key is re-fetched, a refused token is re-minted, a dead socket is rebuilt. If it\r\n fails again the gate simply stays — which is the honest outcome, not a silent one.\r\n */}\r\n <button className=\"cv-btn cv-btn--accent\" onClick={onRetry} part=\"error-retry\">\r\n Reintentar\r\n </button>\r\n </div>\r\n );\r\n}\r\n","import { MonitorSmartphone } from 'lucide-react';\r\n\r\n/**\r\n * Shown instead of the dialpad when ANOTHER open tab holds the extension\r\n * (`multi-tab-leader-election.md`).\r\n *\r\n * **Not `ErrorGate` re-skinned.** `ErrorGate`'s whole shape is welded to `FatalSoftphoneError` — it\r\n * reads `ERROR_TEXT[error.code]` and always offers a \"Reintentar\" action wired to `stop()` + `start()`.\r\n * Neither fits: nothing is broken here, there is nothing to retry, and inventing a fake catalogue code\r\n * for a condition that was never a failure would be worse than a second small component. What IS\r\n * reused is `.cv-gate` itself — the same primitive `MicPrompt`'s non-error states already render with\r\n * no `data-tone=\"danger\"`.\r\n *\r\n * No dismissal, same reasoning as `ErrorGate`: it clears itself the instant the other tab closes,\r\n * reloads, or crashes (Web Locks' own guarantee — no polling, no user action).\r\n */\r\nexport function LeaderGate() {\r\n return (\r\n <div className=\"cv-gate\" part=\"leader-gate\">\r\n <span className=\"cv-gate-mark\">\r\n <MonitorSmartphone size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\" part=\"leader-title\">\r\n Teléfono activo en otra pestaña\r\n </h3>\r\n <p part=\"leader-body\">Solo una pestaña puede usar el teléfono a la vez. Cierra la otra para activar esta.</p>\r\n </div>\r\n );\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { SoftphoneEvent } from '../../core/events.js';\r\nimport { ERROR_TEXT } from './error-text.js';\r\nimport type { SoftphoneErrorCode } from '../../core/errors.js';\r\n\r\n/** How long an unattended outcome stays before it becomes furniture. */\r\nconst BACKSTOP_MS = 6_000;\r\n\r\n/**\r\n * The outcome of the last attempt — \"Sin respuesta\", \"Llamada rechazada\".\r\n *\r\n * **Non-fatal errors only.** A fatal one is a condition and belongs in the gate; this is an *event*,\r\n * a fact about a call that already ended, and it must not persist as though the phone were broken.\r\n *\r\n * **Cleared by the user's next intent**, which is what the previous CRM did — it called\r\n * `setError(null)` on dial, answer, reject, and on an inbound INVITE. The reasoning holds: the moment\r\n * you dial again, what happened to the last call stops being relevant. A timer alone would clear at\r\n * an arbitrary moment unrelated to what the user is doing; it is only the backstop, for when intent\r\n * never comes because the user read it and walked away.\r\n *\r\n * **Lives above the dialpad.** The outcome is raised as the call ENDS — the exact moment the widget\r\n * swaps the call screen back for the dialpad. Held inside `Dialpad` it would be born into a component\r\n * that is remounting, and lost.\r\n */\r\nexport function useCallOutcome(): {\r\n readonly outcome: { readonly code: SoftphoneErrorCode; readonly text: string } | null;\r\n readonly clear: () => void;\r\n} {\r\n const softphone = useSoftphone();\r\n const [code, setCode] = useState<SoftphoneErrorCode | null>(null);\r\n const timer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\r\n\r\n const clear = useCallback(() => {\r\n clearTimeout(timer.current);\r\n setCode(null);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const off = softphone.on(SoftphoneEvent.Error, (error) => {\r\n // Fatal errors are the gate's business. Showing them here too would say the same thing twice,\r\n // in the smaller and more dismissible of the two places.\r\n if (error.fatal) return;\r\n clearTimeout(timer.current);\r\n setCode(error.code);\r\n timer.current = setTimeout(() => setCode(null), BACKSTOP_MS);\r\n });\r\n return () => {\r\n off();\r\n clearTimeout(timer.current);\r\n };\r\n }, [softphone]);\r\n\r\n // An inbound call is intent too: the user is being asked something new, and last call's outcome is\r\n // no longer what they need to read.\r\n useEffect(() => softphone.on(SoftphoneEvent.IncomingCall, () => clear()), [softphone, clear]);\r\n\r\n return {\r\n outcome: code === null ? null : { code, text: ERROR_TEXT[code].title },\r\n clear,\r\n };\r\n}\r\n","import { useEffect, useRef } from 'react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { CallEvent, SoftphoneEvent } from '../../core/events.js';\r\nimport {\r\n createRemoteAudio,\r\n playCallEndedTone,\r\n playRingback,\r\n playRingtone,\r\n primeAudio,\r\n type RemoteAudio,\r\n type Tone,\r\n} from './audio.js';\r\nimport type { Call } from '../../core/call.js';\r\n\r\n/**\r\n * Wires the softphone's audio to call state: the remote party, the inbound ring, the outbound\r\n * ringback, and the end-of-call cue. Mounted by `SoftphoneWidget`, so a host gets all of it without\r\n * knowing it exists.\r\n *\r\n * **The remote stream is attached only on `active`, never before**, and that one rule does two jobs:\r\n *\r\n * 1. It IS the call audio. Nothing else attaches the stream, so without this a connected call is\r\n * silent in both directions.\r\n * 2. It prevents a doubled ringback. Firefox plays the carrier's early media; routing the remote\r\n * stream during outbound ringing would layer that on top of our local tone. The legacy code\r\n * carried a `suppressRemoteAudioRef` flag cleared on `accepted` — attaching on `active` is the\r\n * same rule with nothing to forget to clear.\r\n */\r\nexport function useCallAudio(enabled: boolean): void {\r\n const softphone = useSoftphone();\r\n const remote = useRef<RemoteAudio | null>(null);\r\n const tone = useRef<Tone | null>(null);\r\n\r\n useEffect(() => {\r\n if (!enabled || typeof document === 'undefined') return;\r\n\r\n /*\r\n * Unlock audio on the first interaction anywhere on the page, whatever it is — a tab, a dialpad\r\n * key, the mic-permission button.\r\n *\r\n * An inbound INVITE is not a user gesture, so a context first built when the phone rings is\r\n * created under the autoplay policy and Firefox warns about it three times. Building it during\r\n * an ordinary click costs nothing and means ringing never touches the policy at all.\r\n *\r\n * `capture` so it fires even if something calls `stopPropagation`, and it listens on the document\r\n * rather than the widget because the events that escape our shadow root are the composed ones.\r\n */\r\n const prime = (): void => primeAudio();\r\n const gestures = ['pointerdown', 'keydown'] as const;\r\n for (const type of gestures) {\r\n document.addEventListener(type, prime, { once: true, capture: true });\r\n }\r\n\r\n remote.current = createRemoteAudio();\r\n // Apply whatever output is already selected (a Settings change made before this call, or before\r\n // the widget even mounted) — `null` is a real, explicit value here (\"system default\"), not\r\n // \"nothing to do\", so this always runs rather than only when a device is chosen.\r\n void remote.current.setOutputDevice(softphone.audio.currentOutputId);\r\n // …and keep it applied if the selection changes WHILE this element is live — output routing is\r\n // meant to be instant, live call or not (see `AudioDevices.setOutput`'s own comment).\r\n const offDeviceChange = softphone.on(SoftphoneEvent.DeviceChange, () => {\r\n void remote.current?.setOutputDevice(softphone.audio.currentOutputId);\r\n });\r\n\r\n const stopTone = (): void => {\r\n tone.current?.stop();\r\n tone.current = null;\r\n };\r\n\r\n /** One tone at a time: switching states must never leave the previous one running. */\r\n const setTone = (next: 'ringtone' | 'ringback' | null): void => {\r\n stopTone();\r\n if (next === 'ringtone') tone.current = playRingtone();\r\n else if (next === 'ringback') tone.current = playRingback();\r\n };\r\n\r\n const perCall: Array<() => void> = [];\r\n // An inbound call fires BOTH `ActiveCallChanged` and `IncomingCall` for the same `Call`\r\n // (`softphone-impl.ts#adopt` emits the former, `#onIncoming` the latter, right after) — both\r\n // wired to `follow` below. That double subscription was harmless while every handler here was\r\n // idempotent (stop a tone that is already stopped, detach an already-detached stream); it stops\r\n // being harmless the moment a handler has a real one-shot side effect, like the end-of-call tone.\r\n const followedCalls = new Set<Call>();\r\n\r\n const follow = (call: Call): void => {\r\n if (followedCalls.has(call)) return;\r\n followedCalls.add(call);\r\n\r\n // Whether this call ever actually connected — the end-of-call cue is for a conversation that\r\n // was really happening, not for a ring that got cancelled or a dial that never picked up.\r\n // Tracked per-call rather than read off `call.state` at `Ended` time because by then the state\r\n // machine has already moved to 'ended' and the history is gone.\r\n let wasConnected = call.state === 'active' || call.state === 'held';\r\n\r\n const apply = (state: string): void => {\r\n if (state === 'active' || state === 'held') wasConnected = true;\r\n if (state === 'ringing') setTone('ringtone'); // inbound: they are calling us\r\n else if (state === 'dialing' || state === 'early') setTone('ringback'); // outbound\r\n else setTone(null); // answering / active / held / ended — silence\r\n };\r\n apply(call.state);\r\n\r\n perCall.push(\r\n call.on(CallEvent.StateChanged, ({ state }) => apply(state)),\r\n // Attach on `active` only — see the note above. `remoteStream` is usually already set by\r\n // then, since media arrives before the 200 OK.\r\n call.on(CallEvent.Accepted, () => {\r\n if (call.remoteStream) remote.current?.attach(call.remoteStream);\r\n }),\r\n // …but if it arrives late, take it then — as long as we are past ringing.\r\n call.on(CallEvent.RemoteStream, ({ stream }) => {\r\n if (call.state === 'active' || call.state === 'held') remote.current?.attach(stream);\r\n }),\r\n call.on(CallEvent.Ended, ({ reason }) => {\r\n followedCalls.delete(call);\r\n stopTone();\r\n remote.current?.detach();\r\n // 'local' and 'remote' are BOTH ordinary hangups — either side ending a real conversation\r\n // is the same cue. Never for 'busy' / 'rejected' / 'no-answer' / 'failed': the call never\r\n // connected, and a \"goodbye\" tone on a call nobody answered would be actively misleading.\r\n // Not for 'transferred' either — that call keeps going, just without this leg.\r\n if (wasConnected && (reason === 'local' || reason === 'remote')) playCallEndedTone();\r\n }),\r\n );\r\n };\r\n\r\n const offIncoming = softphone.on(SoftphoneEvent.IncomingCall, follow);\r\n const offActive = softphone.on(SoftphoneEvent.ActiveCallChanged, ({ call }) => {\r\n if (call) follow(call);\r\n else {\r\n stopTone();\r\n remote.current?.detach();\r\n }\r\n });\r\n if (softphone.activeCall) follow(softphone.activeCall);\r\n\r\n return () => {\r\n for (const type of gestures) document.removeEventListener(type, prime, { capture: true });\r\n offIncoming();\r\n offActive();\r\n offDeviceChange();\r\n for (const off of perCall) off();\r\n stopTone();\r\n remote.current?.destroy();\r\n remote.current = null;\r\n };\r\n }, [softphone, enabled]);\r\n}\r\n","/**\r\n * Everything the softphone plays: the remote party, the inbound ring, the outbound ringback, and the\r\n * end-of-call cue.\r\n *\r\n * Framework-free and lazy — nothing here touches `AudioContext`, `Audio` or `URL.createObjectURL`\r\n * at module scope, so importing it under SSR is safe (SPEC §10.2). The legacy code built the ringback\r\n * blob at module scope, which would have thrown on any server render.\r\n *\r\n * `core/` deliberately does not create audio elements: it hands the stream out and the UI attaches it\r\n * (see `CallEvent.RemoteStream`). This is the UI half of that contract.\r\n */\r\n\r\n/** 425 Hz — the EU/ES call-progress tone. Both the ring and the ringback are built on it. */\r\nconst TONE_HZ = 425;\r\n\r\n// ── Remote party ────────────────────────────────────────────────────────────\r\n\r\nexport interface RemoteAudio {\r\n attach(stream: MediaStream): void;\r\n detach(): void;\r\n destroy(): void;\r\n /**\r\n * Route the remote party to a specific output device, or `null` for the browser's own default\r\n * (SPEC §7 Phase 2 — device management). A no-op when the browser has no `setSinkId` (Safari, most\r\n * of Firefox — see `AudioDevices.canSelectOutput`), and swallows a rejection from an\r\n * already-unplugged device rather than throwing into a caller that has no useful recovery for it.\r\n */\r\n setOutputDevice(deviceId: string | null): Promise<void>;\r\n}\r\n\r\n/**\r\n * The `<audio>` element that plays the person on the other end.\r\n *\r\n * **Without this there is no call audio at all** — a `MediaStream` from `ontrack` is silent until it\r\n * is attached to a media element. The SDK exposed `call.remoteStream` and nothing consumed it.\r\n *\r\n * A media element rather than Web Audio, for the same reason as the ringback below: it follows the OS\r\n * default output device and survives Bluetooth A2DP↔HFP transitions.\r\n */\r\nexport function createRemoteAudio(): RemoteAudio {\r\n const el = document.createElement('audio');\r\n el.autoplay = true;\r\n // Off-screen but IN the document: some browsers will not play a detached element.\r\n el.style.display = 'none';\r\n document.body.appendChild(el);\r\n\r\n return {\r\n attach(stream) {\r\n el.srcObject = stream;\r\n // Rejects only under autoplay policy, which the dial/answer click already satisfied.\r\n void el.play().catch(() => {});\r\n },\r\n detach() {\r\n el.srcObject = null;\r\n },\r\n destroy() {\r\n el.srcObject = null;\r\n el.remove();\r\n },\r\n async setOutputDevice(deviceId) {\r\n if (typeof el.setSinkId !== 'function') return;\r\n try {\r\n // `''` is the spec's own way of saying \"the default device\" — the same meaning `null` carries\r\n // on this method's own signature, translated at this one boundary rather than asking every\r\n // caller to know the DOM's convention.\r\n await el.setSinkId(deviceId ?? '');\r\n } catch {\r\n // A device that vanished between selection and this call landing (unplugged, or a stale ID\r\n // from a previous session) — nothing useful to do beyond leaving the previous route in place.\r\n }\r\n },\r\n };\r\n}\r\n\r\n// ── Inbound ring ────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * ONE `AudioContext` for the page, created on demand and never closed.\r\n *\r\n * Ringing used to build a fresh context per call and close it on hangup. That produced three Firefox\r\n * warnings on every inbound call — *\"An AudioContext was prevented from starting automatically…\"* —\r\n * because an INVITE is not a user gesture, so the context, its oscillator and its `resume()` were all\r\n * created outside one. The ring still played (the user had clicked something earlier in the session),\r\n * but a console that cries wolf on a healthy path is how real warnings get ignored.\r\n *\r\n * Sharing it also avoids a limit worth knowing about: Chrome caps a page at ~6 live `AudioContext`s,\r\n * and `close()` is asynchronous — so a burst of short calls could reach it and leave the phone silent.\r\n *\r\n * Not closed on teardown deliberately: a suspended context costs nothing, and the next ring needs it\r\n * ready before any gesture is available.\r\n */\r\nlet shared: AudioContext | null = null;\r\n\r\nfunction sharedContext(): AudioContext | null {\r\n if (shared) return shared;\r\n const Ctor: typeof AudioContext | undefined =\r\n typeof AudioContext !== 'undefined'\r\n ? AudioContext\r\n : (globalThis as { webkitAudioContext?: typeof AudioContext }).webkitAudioContext;\r\n if (!Ctor) return null;\r\n shared = new Ctor();\r\n return shared;\r\n}\r\n\r\n/**\r\n * Build the shared context **inside a user gesture**, so it starts `running` and nothing later has to\r\n * ask for permission it cannot get.\r\n *\r\n * Call from a click/keydown handler. Idempotent and safe to call when audio is already unlocked; on a\r\n * browser with no Web Audio it is a no-op.\r\n */\r\nexport function primeAudio(): void {\r\n const ctx = sharedContext();\r\n if (ctx && ctx.state === 'suspended') void ctx.resume?.().catch(() => {});\r\n}\r\n\r\n/** @internal — tests only: forget the shared context so each case starts clean. */\r\nexport function __resetSharedAudioForTests(): void {\r\n shared = null;\r\n}\r\n\r\nexport interface Tone {\r\n stop(): void;\r\n}\r\n\r\n/**\r\n * The inbound ring: a synthesised EU double-burst, looping until answered or gone.\r\n *\r\n * Web Audio rather than a file: there is no asset to ship or license, and during INBOUND ringing the\r\n * microphone is not open — so the tone is not subject to the OS \"communications\" ducking that would\r\n * silence a locally generated tone while a mic is live. (Outbound is the opposite case; see below.)\r\n *\r\n * **The look-ahead scheduler is not premature optimisation.** Scheduling each cycle at\r\n * `ctx.currentTime` from a chained `setTimeout` lands the rising ramp at or behind the live audio\r\n * clock on Chrome, which silently drops the cycle — the symptom is \"it rings once, then nothing\"\r\n * (Firefox tolerates it, so it looks fine in one browser). Instead the audio clock is kept ~0.5 s\r\n * filled, topped up every 150 ms, always scheduling on a future-dated accumulator.\r\n *\r\n * **Loud — the loudest tone this file plays, on purpose.** This first shipped at `LEVEL = 0.18`\r\n * (\"gentle — a ring should not startle\"), the exact same wrong instinct the end-of-call cue also\r\n * shipped with (see `playCallEndedTone`'s own comment): quiet-by-default was never examined against\r\n * what a ring is actually FOR. Every platform treats it as its own, separately loud category —\r\n * iOS/CallKit gives incoming calls a higher ceiling than a normal audio session, and RingCentral\r\n * exposes ringtone loudness as its own dedicated control, distinct from in-call volume — because a\r\n * missed call is the one failure mode you cannot recover from by just looking at the screen a moment\r\n * later. `LEVEL` here sits above even `playCallEndedTone`'s own boosted level for the same reason:\r\n * ringing has to compete with a genuinely noisy room in a way a goodbye click, glanced at on screen,\r\n * does not. The attack (`RAMP`) stays soft, unlike the goodbye click's sharp one — this repeats every\r\n * 3 seconds for as long as the phone rings, and a percussive click that many times in a row reads as\r\n * harsh rather than urgent; loudness carries the urgency here, not the envelope shape.\r\n */\r\nexport function playRingtone(): Tone {\r\n const ctx = sharedContext();\r\n if (!ctx) return { stop() {} };\r\n\r\n const gain = ctx.createGain();\r\n gain.gain.value = 0;\r\n gain.connect(ctx.destination);\r\n\r\n const osc = ctx.createOscillator();\r\n osc.type = 'sine';\r\n osc.frequency.value = TONE_HZ;\r\n osc.connect(gain);\r\n osc.start();\r\n\r\n const LEVEL = 0.8; // louder than the end-of-call cue (0.55) — has to cut through a noisy room\r\n const RAMP = 0.02; // short fades, or the bursts click — soft on purpose, see this function's comment\r\n\r\n const burst = (at: number, dur: number): void => {\r\n gain.gain.setValueAtTime(0, at);\r\n gain.gain.linearRampToValueAtTime(LEVEL, at + RAMP);\r\n gain.gain.setValueAtTime(LEVEL, at + dur - RAMP);\r\n gain.gain.linearRampToValueAtTime(0, at + dur);\r\n };\r\n\r\n /** One EU cadence: two 0.4 s rings 0.2 s apart, then ~2 s of silence. 3 s total. */\r\n const scheduleCycle = (at: number): number => {\r\n burst(at, 0.4);\r\n burst(at + 0.6, 0.4);\r\n return 3.0;\r\n };\r\n\r\n const LOOKAHEAD = 0.5;\r\n const TICK_MS = 150;\r\n const LEAD = 0.08; // so the first cycle is never scheduled at exactly \"now\"\r\n\r\n let stopped = false;\r\n let timer: ReturnType<typeof setInterval> | null = null;\r\n let nextAt = 0;\r\n\r\n const pump = (): void => {\r\n while (nextAt < ctx.currentTime + LOOKAHEAD) nextAt += scheduleCycle(nextAt);\r\n };\r\n\r\n // Resume first: a fresh context may be suspended by autoplay policy. By the time a call rings the\r\n // user has interacted with the softphone, so this succeeds; if not, it degrades to silence.\r\n void Promise.resolve(ctx.resume?.())\r\n .catch(() => {})\r\n .finally(() => {\r\n if (stopped) return;\r\n nextAt = ctx.currentTime + LEAD;\r\n pump();\r\n timer = setInterval(pump, TICK_MS);\r\n });\r\n\r\n return {\r\n stop() {\r\n stopped = true;\r\n if (timer) clearInterval(timer);\r\n try {\r\n osc.stop();\r\n } catch {\r\n /* already stopped */\r\n }\r\n try {\r\n gain.disconnect();\r\n } catch {\r\n /* ignore */\r\n }\r\n // The context is SHARED and outlives the ring — see `sharedContext`. Closing it here is what\r\n // forced a new one per call, and a context built outside a user gesture is what Firefox warns\r\n // about. Only the nodes are disposable.\r\n },\r\n };\r\n}\r\n\r\n// ── Call ended ──────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * The \"call has ended\" cue: ONE short 425 Hz beep, fired once a LIVE call is hung up — by either\r\n * side. Without it the call screen just disappears, which reads as a dropped connection rather than\r\n * an ordinary goodbye; a real phone always gives you SOMETHING before it goes back to the dial tone.\r\n *\r\n * A single beep, not a repeating pattern — this is a device-level confirmation click, not one of the\r\n * network's own call-progress tones (the ring and ringback ARE those, which is why they alone match\r\n * the ETSI/Telefónica cadence: 425 Hz, 1.5 s on, 3 s off). Spain has no standardised \"call ended\"\r\n * network tone to replicate; the closest real-world precedent is each platform's own end-of-call\r\n * click — iOS plays three short 425 Hz bursts, Android a single soft one. A single beep is what\r\n * Spanish users actually expect here, so that is what this plays, kept on the same 425 Hz the rest of\r\n * this file already uses for consistency.\r\n *\r\n * **Loud and sharp, NOT gentle** — this first shipped at the ringtone's own `LEVEL`/`RAMP`, on the\r\n * unexamined assumption that \"quiet and soft\" was a safe default throughout this file. It is the\r\n * wrong instinct here: a ring is heard from across a room and must not startle, but a goodbye click\r\n * is a confirmation the user is already looking at their screen for and expects to be unmistakable —\r\n * \"you notice that sound immediately\" was the actual bar. `LEVEL` now sits above even the ringback's\r\n * own 0.5 amp, and `RAMP` is a fraction of the ringtone's — an audible, percussive click rather than\r\n * a fade-in a quiet room can still miss.\r\n *\r\n * Web Audio, like the ringtone, not a media element like the ringback: this fires as the call is\r\n * already tearing down, so — unlike the ringback — there is no still-open microphone to route around\r\n * a Bluetooth profile switch for. A fire-and-forget cue on the shared context is simpler than a WAV\r\n * blob for something this short.\r\n *\r\n * Deliberately NOT looping and NOT cancellable — one beep and it is done on its own. Nothing in\r\n * `useCallAudio` needs to stop this mid-flight the way the ring/ringback do, so it does not return a\r\n * `Tone`.\r\n */\r\nexport function playCallEndedTone(): void {\r\n const ctx = sharedContext();\r\n if (!ctx) return;\r\n\r\n const gain = ctx.createGain();\r\n gain.gain.value = 0;\r\n gain.connect(ctx.destination);\r\n\r\n const osc = ctx.createOscillator();\r\n osc.type = 'sine';\r\n osc.frequency.value = TONE_HZ;\r\n osc.connect(gain);\r\n osc.start();\r\n\r\n const LEVEL = 0.55; // louder than the ringback (0.5) — a deliberate goodbye click, not a background tone\r\n const RAMP = 0.008; // sharp, percussive attack — long enough not to click, short enough to feel instant\r\n const BEEP = 0.25; // long enough to register as a deliberate signal, short enough to stay \"a beep\"\r\n\r\n void Promise.resolve(ctx.resume?.())\r\n .catch(() => {})\r\n .finally(() => {\r\n const at = ctx.currentTime + 0.02;\r\n gain.gain.setValueAtTime(0, at);\r\n gain.gain.linearRampToValueAtTime(LEVEL, at + RAMP);\r\n gain.gain.setValueAtTime(LEVEL, at + BEEP - RAMP);\r\n gain.gain.linearRampToValueAtTime(0, at + BEEP);\r\n\r\n const totalMs = (at + BEEP - ctx.currentTime) * 1000;\r\n setTimeout(() => {\r\n try {\r\n osc.stop();\r\n } catch {\r\n /* already stopped */\r\n }\r\n try {\r\n gain.disconnect();\r\n } catch {\r\n /* ignore */\r\n }\r\n }, totalMs);\r\n });\r\n}\r\n\r\n// ── Outbound ringback ───────────────────────────────────────────────────────\r\n\r\nlet ringbackUrl: string | null = null;\r\n\r\n/**\r\n * The EU/ES ringback loop as a WAV blob: 425 Hz, 1.5 s tone, 3 s silence.\r\n *\r\n * **Stereo 48 kHz 16-bit PCM, deliberately.** A mono 8 kHz source went silent on a device configured\r\n * for a single channel — Chrome's mono-source→mono-endpoint path drops it. Stereo plays directly on\r\n * stereo devices and downmixes cleanly on mono ones.\r\n *\r\n * A Blob URL rather than a `data:` URI: Chrome treats a Blob URL as a real media resource, while\r\n * `data:` URIs stall when looped.\r\n */\r\nfunction ringbackSource(): string {\r\n if (ringbackUrl) return ringbackUrl;\r\n\r\n const sampleRate = 48_000;\r\n const channels = 2;\r\n const bytesPerSample = 2;\r\n const amp = 0.5;\r\n const toneSec = 1.5;\r\n const silenceSec = 3;\r\n const totalFrames = Math.round((toneSec + silenceSec) * sampleRate);\r\n const toneFrames = Math.round(toneSec * sampleRate);\r\n const ramp = Math.round(0.02 * sampleRate); // 20 ms fades, or it clicks\r\n\r\n const blockAlign = channels * bytesPerSample;\r\n const dataSize = totalFrames * blockAlign;\r\n const buffer = new ArrayBuffer(44 + dataSize);\r\n const view = new DataView(buffer);\r\n const str = (off: number, s: string): void => {\r\n for (let i = 0; i < s.length; i++) view.setUint8(off + i, s.charCodeAt(i));\r\n };\r\n\r\n str(0, 'RIFF');\r\n view.setUint32(4, 36 + dataSize, true);\r\n str(8, 'WAVE');\r\n str(12, 'fmt ');\r\n view.setUint32(16, 16, true); // PCM chunk size\r\n view.setUint16(20, 1, true); // PCM\r\n view.setUint16(22, channels, true);\r\n view.setUint32(24, sampleRate, true);\r\n view.setUint32(28, sampleRate * blockAlign, true); // byte rate\r\n view.setUint16(32, blockAlign, true);\r\n view.setUint16(34, bytesPerSample * 8, true);\r\n str(36, 'data');\r\n view.setUint32(40, dataSize, true);\r\n\r\n for (let i = 0; i < totalFrames; i++) {\r\n let sample = 0;\r\n if (i < toneFrames) {\r\n let env = 1;\r\n if (i < ramp) env = i / ramp;\r\n else if (i > toneFrames - ramp) env = Math.max(0, (toneFrames - i) / ramp);\r\n sample = Math.sin(2 * Math.PI * TONE_HZ * (i / sampleRate)) * amp * env;\r\n }\r\n const s16 = Math.round(sample * 32767);\r\n const off = 44 + i * blockAlign;\r\n for (let c = 0; c < channels; c++) view.setInt16(off + c * bytesPerSample, s16, true);\r\n }\r\n\r\n ringbackUrl = URL.createObjectURL(new Blob([buffer], { type: 'audio/wav' }));\r\n return ringbackUrl;\r\n}\r\n\r\n/**\r\n * Outbound ringback, played the way production softphones do it: a looping `HTMLAudioElement`, NOT\r\n * the Web Audio API.\r\n *\r\n * A media element follows the OS default output device when it changes, and Chrome re-routes it\r\n * across Bluetooth A2DP↔HFP transitions. An `AudioContext` binds to whichever endpoint existed when\r\n * it was created and gets stranded on a stale one after the headset cycles profiles — which made a\r\n * Web Audio ringback miss intermittently on back-to-back calls.\r\n *\r\n * A media element rather than Web Audio for a second reason too: JsSIP opens the real microphone when\r\n * an outbound call is placed, so on Bluetooth the headset switches to HFP as the ringback starts. An\r\n * element follows the OS default endpoint across that switch; a Web Audio graph would stay bound to\r\n * the one that existed when it was built.\r\n */\r\nexport function playRingback(): Tone {\r\n const el = document.createElement('audio');\r\n el.src = ringbackSource();\r\n el.loop = true;\r\n el.style.display = 'none';\r\n document.body.appendChild(el);\r\n void el.play().catch(() => {});\r\n\r\n return {\r\n stop() {\r\n el.pause();\r\n el.remove();\r\n },\r\n };\r\n}\r\n","import { Phone, PhoneMissed, X } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { useTicker } from '../lib/useTicker.js';\r\nimport { elapsedSeconds, formatAge } from '../lib/format.js';\r\nimport type { TransferNotice } from './useTransferNotices.js';\r\n\r\n/**\r\n * \"El traspaso a 101 no se conectó\" — spec §5.5. Persistent, dismissable, no timer.\r\n *\r\n * **Purely presentational — takes `notices`/`dismiss` as props rather than calling\r\n * `useTransferNotices()` itself.** The SUBSCRIPTION that hook owns has to stay alive for the whole time\r\n * the widget is mounted, not just while this component happens to be on screen: an outcome for an\r\n * earlier transfer can arrive while the agent is on a brand new, unrelated call, and if nobody were\r\n * listening at that moment it would be gone for good (the same class of gap `useTransferNotices`'s own\r\n * comment already accepts for a fully unmounted widget — this is what keeps it from also happening\r\n * every time a call is merely in progress). So `SoftphoneWidget` calls the hook once, unconditionally,\r\n * the same placement `useCallOutcome` already uses and for the same reason; only the RENDERING of this\r\n * component is conditional on being in a state where the widget isn't using the screen for something\r\n * higher-priority (a live call, the mic gate, a fatal error, a follower tab).\r\n *\r\n * **Always rendered when mounted, `role=\"status\"`, even with nothing to show** — the same reason\r\n * `Dialpad`'s own outcome line always exists: an aria-live region inserted at the same moment as its\r\n * first content is not reliably announced. Left visually empty (no padding of its own) when there is\r\n * nothing waiting, so this costs no layout space either.\r\n */\r\nexport function TransferNotices({\r\n notices,\r\n dismiss,\r\n}: Readonly<{ notices: readonly TransferNotice[]; dismiss: (id: number) => void }>) {\r\n const softphone = useSoftphone();\r\n // Only while there's something to age, and coarsely: `formatAge` never changes output more often\r\n // than once a minute, so a 1 s tick would just be wasted re-renders on a possibly long-lived notice.\r\n const now = useTicker(notices.length > 0, 15_000);\r\n\r\n const callBack = (notice: TransferNotice): void => {\r\n dismiss(notice.id); // clears itself on press (spec §5.5) — not conditional on the call succeeding\r\n if (notice.caller) void softphone.call(notice.caller).catch(() => {});\r\n };\r\n\r\n return (\r\n <div\r\n className=\"cv-transfer-notices\"\r\n role=\"status\"\r\n part=\"transfer-notices\"\r\n // Explicit, rather than leaning on a `:empty` CSS selector's assumptions about how React\r\n // renders `null`/an empty array — this is what CSS actually keys off to stay visually\r\n // zero-footprint while there is nothing waiting.\r\n data-has-notices={notices.length > 0}\r\n >\r\n {notices.length > 1 ? (\r\n <p className=\"cv-transfer-notices-count\">{notices.length} traspasos sin conectar</p>\r\n ) : null}\r\n {notices.map((notice) => (\r\n <div key={notice.id} className=\"cv-transfer-notice\" part=\"transfer-notice\">\r\n <span className=\"cv-transfer-notice-mark\" aria-hidden>\r\n <PhoneMissed size={16} />\r\n </span>\r\n <div className=\"cv-transfer-notice-body\">\r\n {/* Title and dismiss share only THIS row — not the whole card, and not the callback\r\n button below. Squeezing icon + title + subtitle + a full \"Llamar de vuelta\" button\r\n into one flex row left the title as little as ~80px to wrap into at the real ~340px\r\n embed width, breaking nearly every word onto its own line. */}\r\n <div className=\"cv-transfer-notice-header\">\r\n <p className=\"cv-transfer-notice-title\">El traspaso a {notice.target} no se conectó</p>\r\n <button\r\n type=\"button\"\r\n className=\"cv-transfer-notice-dismiss\"\r\n onClick={() => dismiss(notice.id)}\r\n aria-label=\"Descartar aviso\"\r\n part=\"transfer-notice-dismiss\"\r\n >\r\n <X size={14} />\r\n </button>\r\n </div>\r\n {/* Absent, not \"número desconocido\" — spec §7's outside-number case and a genuinely\r\n unresolved caller both leave this null, and there is nothing actionable to say either\r\n way beyond the title above. */}\r\n {notice.caller ? (\r\n <p className=\"cv-transfer-notice-subtitle\">{notice.caller} se ha desconectado.</p>\r\n ) : null}\r\n <div className=\"cv-transfer-notice-footer\">\r\n <p className=\"cv-transfer-notice-age\">{formatAge(elapsedSeconds(notice.at, now))}</p>\r\n {/* Absent when the caller's number is unknown (plan T6's own acceptance) — nothing to dial. */}\r\n {notice.caller ? (\r\n <button\r\n type=\"button\"\r\n className=\"cv-btn cv-btn--accent cv-transfer-notice-callback\"\r\n onClick={() => callBack(notice)}\r\n part=\"transfer-notice-callback\"\r\n >\r\n <Phone size={14} aria-hidden />\r\n Llamar de vuelta\r\n </button>\r\n ) : null}\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { SoftphoneEvent } from '../../core/events.js';\r\n\r\n/**\r\n * One transfer that didn't connect, waiting for the agent to see it. The `id` is local to this hook —\r\n * `TransferOutcomeEvent` carries no id of its own (the source's own `id`, on `TransferOutcomeEntry`, is\r\n * a polling-internal concern the watch never exposes) — so a simple incrementing counter is enough; it\r\n * only ever needs to be unique within one mounted widget.\r\n */\r\nexport interface TransferNotice {\r\n readonly id: number;\r\n readonly target: string;\r\n /** Null when the caller's number was never known — the notice still shows, with no call-back action. */\r\n readonly caller: string | null;\r\n readonly at: Date;\r\n}\r\n\r\n/**\r\n * Accumulates `SoftphoneEvent.TransferOutcome`'s `'not-connected'` outcomes into a dismissable list —\r\n * `docs/specs/transfer-outcome-relay.md` §5.5, plan T6.\r\n *\r\n * **Deliberately NOT `useCallOutcome`'s shape.** That hook holds one value, auto-clears after a\r\n * backstop timer, and clears on the next dial/incoming intent — right for \"what just happened on the\r\n * call you're looking at now.\" A transfer notice is about a DIFFERENT, now-absent customer, arrives\r\n * roughly a minute after the agent has already moved on, and must not vanish because something else\r\n * happened in between: no backstop timer (spec §5.5's UX research — a timed notice here is one the\r\n * agent never had a fair chance to read), no clearing on intent, and more than one can be true at once.\r\n *\r\n * **A real, accepted gap:** this only sees outcomes that arrive while a widget instance is mounted and\r\n * listening. The softphone itself (not the widget) owns the watch's lifecycle, so an outcome that\r\n * lands while no widget happens to be mounted is emitted to nobody and is gone — the same category of\r\n * gap the spec already accepts for a closed tab (§7), just one level narrower. Fixing it would mean the\r\n * softphone itself holding pending notices, which is a bigger change than this task's own scope.\r\n */\r\nexport function useTransferNotices(): {\r\n readonly notices: readonly TransferNotice[];\r\n readonly dismiss: (id: number) => void;\r\n} {\r\n const softphone = useSoftphone();\r\n const [notices, setNotices] = useState<readonly TransferNotice[]>([]);\r\n const nextId = useRef(0);\r\n\r\n const dismiss = useCallback((id: number) => {\r\n setNotices((prev) => prev.filter((n) => n.id !== id));\r\n }, []);\r\n\r\n useEffect(\r\n () =>\r\n softphone.on(SoftphoneEvent.TransferOutcome, (payload) => {\r\n // The event fires for BOTH outcomes (spec §4 D2) so a host can react to a success too; the\r\n // widget itself stays silent for one. An explicit equality check, not `!== 'connected'`: an\r\n // unrecognised future status should fail toward silence, not toward showing something.\r\n if (payload.status === 'not-connected') {\r\n const id = nextId.current++;\r\n setNotices((prev) => [...prev, { id, target: payload.target, caller: payload.caller, at: payload.at }]);\r\n }\r\n }),\r\n [softphone],\r\n );\r\n\r\n return { notices, dismiss };\r\n}\r\n","/**\r\n * @coventia/softphone/styles.css\r\n *\r\n * The theming contract (SPEC §2.6) + all component styles. A host restyles the softphone by\r\n * overriding the `--cv-*` custom properties — which are INHERITED, so they cross the shadow boundary\r\n * of `<coventia-softphone>` by design (the host's own CSS *selectors* do not, which is what stops a\r\n * stray `button { width:100% }` from destroying the dialpad).\r\n *\r\n * Defaults match the Coventia product: light surface, emerald accent, soft rounded key cards.\r\n *\r\n * Reseller: coventia-softphone { --cv-accent:#7c3aed; --cv-bg:#0b0b0f; }\r\n * CRM (shadcn bridge, ~15 lines, dark mode included):\r\n * .cv-softphone { --cv-bg:hsl(var(--background)); --cv-text:hsl(var(--foreground)); … }\r\n *\r\n * TYPOGRAPHY NOTE: `--cv-font` is a system stack on purpose. An embedded widget should inherit its\r\n * host's type, not force a webfont into someone else's app; hosts override the token if they want.\r\n *\r\n * Strings are Spanish-only (SPEC §2.4). No i18n.\r\n */\r\n\r\n/*\r\n * The custom element's own box.\r\n *\r\n * A custom element is `display: inline` by default and has NO size — and the widget inside now fills\r\n * its host rather than asserting 340×520, so without this the element would render to ZERO. The\r\n * drop-in promise is \"one tag and it works\", which means the TAG must carry a box.\r\n *\r\n * These are defaults, not decisions: they sit on `:host`, so any host stylesheet outranks them —\r\n *\r\n * coventia-softphone { width: 100%; height: 100%; } ← a sidebar\r\n * coventia-softphone { height: 600px; } ← taller\r\n *\r\n * React consumers never see this: they import `/ui` and their own wrapper states the box (the CRM's\r\n * PhoneDialer does exactly that).\r\n */\r\n:host {\r\n display: block;\r\n width: 340px;\r\n height: 520px;\r\n}\r\n\r\n/* React's container inside the shadow root — element path only; inert everywhere else.\r\n *\r\n * It must pass the host's height straight through. `.cv-softphone` below is `height: 100%`, and a\r\n * percentage height resolves against the PARENT: leave this div at its default `auto` and that 100%\r\n * silently becomes `auto` too, so the widget collapses to its content height and the host's `height`\r\n * is ignored. What you see is a short card stranded in a taller box — which reads as a broken widget,\r\n * not as a broken wrapper. */\r\n.cv-mount {\r\n height: 100%;\r\n}\r\n\r\n:host,\r\n.cv-softphone {\r\n /* Surface */\r\n --cv-bg: #ffffff;\r\n --cv-surface: #f9fafb;\r\n --cv-surface-2: #f3f4f6;\r\n --cv-border: #f3f4f6;\r\n --cv-border-strong: #e5e7eb;\r\n\r\n /* Text — three tiers, split by CONTRAST DUTY, not by taste:\r\n `text` informational primary 17.7:1\r\n `muted` informational secondary 4.8:1 (AA — phone numbers, timestamps, tab labels)\r\n `faint` DECORATIVE only 2.5:1 (keypad letters, placeholder — never information)\r\n The legacy used gray-400 for all secondary text, which fails AA at 2.54:1. Splitting the tier\r\n keeps the look while making the informational text legible. */\r\n --cv-text: #111827;\r\n --cv-muted: #6b7280;\r\n --cv-faint: #9ca3af;\r\n\r\n /* Intent — emerald. Split by CONTRAST DUTY, because one \"brand green\" cannot do all three jobs:\r\n `accent` FILL that carries a white glyph → emerald-600, white 3.77:1 ✓\r\n (emerald-500 is the prettier brand green but white on it is 2.54:1 — the\r\n call button's phone icon would fail WCAG non-text contrast. Measured, not guessed.)\r\n `accent-strong` emerald AS TEXT on a surface → emerald-700, 5.48:1 ✓ for the 10px tab label\r\n `accent-light` DECORATIVE only (the ring halo) — never carries text, so it stays vivid */\r\n --cv-accent: #059669;\r\n --cv-accent-strong: #047857;\r\n --cv-accent-light: #10b981;\r\n --cv-accent-soft: #a7f3d0;\r\n --cv-accent-contrast: #ffffff;\r\n --cv-danger: #ef4444;\r\n /* `--cv-danger` ITSELF fails 3:1 non-text contrast against `--cv-danger-soft` (2.6:1, measured) —\r\n the same AS-TEXT/on-a-tinted-surface split `accent` already has, `danger` was just missing until\r\n the Historial tab's status badges needed it. Darker on light (mirrors `accent-strong`), LIGHTER on\r\n dark (red-400) — same inversion `accent-strong` documents above, same reason: emphasis on a dark\r\n surface means more light, not less.\r\n red-700 (#b91c1c) was the first pick here and overshot both minimums (6.47:1 text, 4.47:1 badge)\r\n enough to read as a dark, brownish red rather than red — red-600 clears both with real margin\r\n still (4.83:1 / 3.34:1, measured) and looks like red. */\r\n --cv-danger-strong: #dc2626;\r\n --cv-danger-soft: #fecaca;\r\n /* A third status hue, sky — for the Historial row status chip specifically: an outgoing call that\r\n WAS answered gets its own colour rather than sharing `accent`, matching the legacy CRM's own\r\n three-way split (emerald/sky/rose) that this file's earlier restrained accent-only-for-\"fine\"\r\n version had collapsed away. Same strong/soft split, same inversion, as `accent`/`danger` above —\r\n 4.47:1 light / 4.42:1 dark against `-soft`, measured. */\r\n --cv-info: #0284c7;\r\n --cv-info-strong: #0369a1;\r\n --cv-info-soft: #bae6fd;\r\n --cv-hold: #6366f1;\r\n\r\n /* Shape & type */\r\n --cv-radius: 16px;\r\n /* Strong ease-out. The built-in CSS easings are too weak to read as intentional. */\r\n --cv-ease-out: cubic-bezier(0.23, 1, 0.32, 1);\r\n --cv-radius-key: 16px;\r\n --cv-font: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;\r\n --cv-font-size: 14px;\r\n --cv-shadow: 0 1px 2px rgb(0 0 0 / 0.04), 0 1px 3px rgb(0 0 0 / 0.06);\r\n\r\n color: var(--cv-text);\r\n font-family: var(--cv-font);\r\n font-size: var(--cv-font-size);\r\n}\r\n\r\n/**\r\n * Dark theme — matched to the Coventia product's own dark tokens, not invented.\r\n *\r\n * The CRM defines `--background: 240 10% 10%` (#17171c) with surfaces at 15.9% (#27272a) and borders\r\n * at 25.9% (#404044) — the zinc/240-hue family. An earlier draft here used a near-black\r\n * (#0f0f13, ~half the luminance of the product's background) with 2%-luminance borders that were\r\n * effectively invisible. That is the \"black tonality\" that read wrong: right hue, wrong lightness.\r\n *\r\n * Note the accent INVERTS: on light, `accent-strong` is darker than `accent` (emerald-700); on dark\r\n * it must be LIGHTER (emerald-400), because emphasis on a dark surface means more light, not less.\r\n * Same token, opposite direction — miss this and the timer/active tab sink into the background.\r\n *\r\n * ── HOW THE THEME IS CHOSEN ──────────────────────────────────────────────────\r\n * By default it follows the OS (`prefers-color-scheme`). But a host must be able to PIN it: the\r\n * Coventia CRM toggles dark with a class (next-themes), not the OS setting — so a user with a dark\r\n * OS but the CRM in light mode would otherwise get a dark widget inside a light app.\r\n *\r\n * <SoftphoneWidget theme=\"light\" /> → data-cv-theme=\"light\" — always light\r\n * <SoftphoneWidget theme=\"dark\" /> → data-cv-theme=\"dark\" — always dark\r\n * <SoftphoneWidget /> → follows the OS\r\n *\r\n * To follow the HOST's theme rather than the OS, pass the host's current theme through, e.g.\r\n * next-themes: `const { resolvedTheme } = useTheme(); <SoftphoneWidget theme={resolvedTheme} />`.\r\n *\r\n * The dark block is duplicated below (OS-driven vs. pinned) on purpose: plain CSS has no way to\r\n * share a declaration block across a media query and a selector, and the honest duplication beats a\r\n * clever custom-property toggle nobody can debug.\r\n */\r\n@media (prefers-color-scheme: dark) {\r\n :host(:not([data-cv-theme='light'])),\r\n .cv-softphone:not([data-cv-theme='light']) {\r\n --cv-bg: #17171c; /* CRM --background 240 10% 10% */\r\n --cv-surface: #202027; /* between bg and secondary */\r\n --cv-surface-2: #27272a; /* CRM --secondary/--muted 240 3.7% 15.9% */\r\n --cv-border: #2e2e33;\r\n --cv-border-strong: #404044; /* CRM --border 240 3.7% 25.9% */\r\n --cv-text: #fafafa; /* CRM --foreground 0 0% 98% */\r\n --cv-muted: #a1a1aa; /* CRM --muted-foreground 240 5% 64.9% → 6.97:1 AA */\r\n --cv-faint: #71717a; /* decorative only */\r\n --cv-accent-strong: #34d399; /* emerald-400 — 9.29:1 on #17171c */\r\n --cv-accent-light: #34d399; /* the halo reads brighter on dark */\r\n --cv-accent-soft: #065f46; /* glows must darken on dark, not glare */\r\n --cv-danger-strong: #f87171; /* red-400 — LIGHTER than --cv-danger, same inversion as accent-strong */\r\n --cv-danger-soft: #7f1d1d;\r\n --cv-info-strong: #38bdf8; /* sky-400 — same inversion, same reason */\r\n --cv-info-soft: #0c4a6e;\r\n --cv-shadow: 0 1px 2px rgb(0 0 0 / 0.4);\r\n }\r\n}\r\n\r\n/* Pinned dark — wins regardless of the OS setting. */\r\n:host([data-cv-theme='dark']),\r\n.cv-softphone[data-cv-theme='dark'] {\r\n --cv-bg: #17171c;\r\n --cv-surface: #202027;\r\n --cv-surface-2: #27272a;\r\n --cv-border: #2e2e33;\r\n --cv-border-strong: #404044;\r\n --cv-text: #fafafa;\r\n --cv-muted: #a1a1aa;\r\n --cv-faint: #71717a;\r\n --cv-accent-strong: #34d399;\r\n --cv-accent-light: #34d399;\r\n --cv-accent-soft: #065f46;\r\n --cv-danger-strong: #f87171;\r\n --cv-danger-soft: #7f1d1d;\r\n --cv-info-strong: #38bdf8;\r\n --cv-info-soft: #0c4a6e;\r\n --cv-shadow: 0 1px 2px rgb(0 0 0 / 0.4);\r\n}\r\n\r\n.cv-softphone,\r\n.cv-softphone *,\r\n.cv-softphone *::before,\r\n.cv-softphone *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* ── Shell ──────────────────────────────────────────────────────────────────── */\r\n.cv-softphone {\r\n display: flex;\r\n flex-direction: column;\r\n\r\n /* FILL the box the host gives us; do not assert one.\r\n This was `width: 340px; height: 520px`, which is a component telling its host how big its\r\n layout is. The CRM's panel is 310 wide, so the third keypad column was simply cut off — and no\r\n amount of theming could have fixed it, because the widget was not asking. A component in\r\n someone else's layout accepts a size. */\r\n width: 100%;\r\n height: 100%;\r\n\r\n /* …but a dialpad is not a spreadsheet. Given 900px it should not become a 900px dialpad with\r\n 300px keys; it should be itself, centred. Cap and centre rather than stretch. */\r\n max-width: var(--cv-max-width, 420px);\r\n margin-inline: auto;\r\n\r\n /* Adapt to THIS box, not to the viewport. The widget can be 310px wide inside a 1920px screen —\r\n a media query would ask the wrong question and get a confident wrong answer. Container queries\r\n are the only ones that know the truth, and a shadow root is the ideal place for them. */\r\n container-type: inline-size;\r\n container-name: cv;\r\n\r\n background: var(--cv-bg);\r\n overflow: hidden;\r\n /* The containing block for `.cv-transfer-notices` — it overlays this whole shell, top edge to top\r\n edge, not just `.cv-body`, so it reads as one seamless panel rather than a strip that starts a few\r\n pixels short of the shell's own rounded corner. */\r\n position: relative;\r\n\r\n /* The frame is the HOST's call. The CRM's panel already draws `border rounded-xl shadow-2xl`, so\r\n drawing our own put a card inside a card — nested chrome, which is always wrong. Defaulting to\r\n a frame still suits a bare drop-in on a blank page; a host that has its own sets these to\r\n `none` / `0` and the double edge disappears. */\r\n border: var(--cv-shell-border, 1px solid var(--cv-border-strong));\r\n border-radius: var(--cv-shell-radius, var(--cv-radius));\r\n box-shadow: var(--cv-shell-shadow, 0 4px 24px rgb(0 0 0 / 0.06));\r\n}\r\n\r\n/* Narrow hosts — a sidebar, a phone-width column. Reclaim the horizontal padding first: at 260px\r\n the gutters cost more than they give, and a cramped keypad is worse than a tight one. */\r\n@container cv (max-width: 300px) {\r\n .cv-keypad { padding: 0 0.6rem; gap: 6px; }\r\n .cv-dial-prefix { padding: 0.7rem 0.6rem 0; }\r\n .cv-dial-head { padding: 0.3rem 0.6rem 0.6rem; }\r\n .cv-display { font-size: 1.5rem; }\r\n .cv-controls-row { gap: 1.1rem; }\r\n\r\n}\r\n\r\n/* Short hosts. The flex chain already lets the keypad absorb what is left, but below this the keys\r\n stop being tappable — so buy the height back from the chrome instead of from the keys. */\r\n@container cv (max-height: 440px) {\r\n .cv-dial-prefix { padding-top: 0.5rem; }\r\n .cv-dial-head { padding-top: 0.2rem; padding-bottom: 0.4rem; }\r\n .cv-dial-foot { padding-bottom: 0.5rem; }\r\n .cv-controls { gap: 0.4rem; padding-bottom: 0.6rem; }\r\n}\r\n\r\n/* The flex chain that makes the layout work: body flexes, views fill it, only the\r\n keypad/list grows. Without `min-height:0` a grid child refuses to shrink and overflows. */\r\n.cv-body {\r\n flex: 1;\r\n min-height: 0;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n.cv-view {\r\n flex: 1;\r\n min-height: 0;\r\n display: flex;\r\n flex-direction: column;\r\n /* Containing block for `.cv-detail` below — an absolute overlay must cover exactly THIS tab's\r\n content, not escape to whatever the next positioned ancestor up the tree happens to be. */\r\n position: relative;\r\n}\r\n\r\n/* ── Tab bar ─────────────────────────────────────────────────────────────────── */\r\n.cv-tabs {\r\n display: flex;\r\n border-top: 1px solid var(--cv-border);\r\n background: var(--cv-bg);\r\n flex-shrink: 0;\r\n}\r\n.cv-tab {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 3px;\r\n padding: 9px 0 8px;\r\n background: none;\r\n border: none;\r\n color: var(--cv-muted);\r\n cursor: pointer;\r\n font: inherit;\r\n transition: color 0.15s ease, background 0.15s ease;\r\n}\r\n.cv-tab:hover:not(:disabled) { background: var(--cv-surface); }\r\n.cv-tab[aria-selected='true'] { color: var(--cv-accent-strong); }\r\n.cv-tab:disabled { opacity: 0.35; cursor: not-allowed; }\r\n.cv-tab span { font-size: 10px; font-weight: 600; line-height: 1; letter-spacing: 0.01em; }\r\n\r\n/* ── Transfer outcome notices (Phase A — transfer-outcome-relay.md §5.5) ──────── */\r\n/*\r\n A persistent, dismissable banner OVER `.cv-body`, never a toast and never auto-dismissed — it carries\r\n an action, and WCAG 2.2.1 requires a time limit to be removable, adjustable or extended.\r\n\r\n Overlaps rather than reserving its own height, the same reasoning `.cv-dial-outcome`'s own comment\r\n already gives for why the widget never lets a line of text resize the keypad under a moving finger —\r\n here that principle cuts the other way: appearing costs nothing but a repaint, not a reflow, so the\r\n widget's overall height stays identical whether a notice is showing or not, exactly like `.cv-detail`\r\n overlaying `.cv-body`'s own list rather than pushing it down. It sits over whatever the current tab\r\n happens to be showing (most often the dialer's country picker and number field — an acceptable loss:\r\n the agent is not expected to start a fresh manual dial before dealing with a transfer that just failed\r\n to connect), which is also why it outranks `.cv-detail` in `z-index`.\r\n\r\n `[data-has-notices='false']` collapses to zero footprint: the element stays mounted (so its\r\n `role=\"status\"` region exists before the FIRST notice ever arrives — an aria-live region inserted at\r\n the same moment as its own content is not reliably announced), but an idle widget, the common case,\r\n covers nothing and costs no paint either.\r\n*/\r\n.cv-transfer-notices {\r\n position: absolute;\r\n inset: 0 0 auto 0;\r\n z-index: 3; /* above `.cv-detail`'s 2 — this is the higher-priority thing on screen */\r\n}\r\n.cv-transfer-notices[data-has-notices='true'] {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n padding: 0.6rem 0.75rem;\r\n background: var(--cv-bg);\r\n box-shadow: var(--cv-shadow);\r\n animation: cv-transfer-notices-in 200ms var(--cv-ease-out) both;\r\n}\r\n@keyframes cv-transfer-notices-in {\r\n from { opacity: 0; transform: translateY(-6px); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-transfer-notices[data-has-notices='true'] { animation: none; }\r\n}\r\n.cv-transfer-notices-count {\r\n margin: 0;\r\n font: 600 0.72rem var(--cv-font);\r\n color: var(--cv-muted);\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n}\r\n.cv-transfer-notice {\r\n display: flex;\r\n align-items: flex-start;\r\n gap: 0.6rem;\r\n padding: 0.65rem 0.7rem;\r\n border-radius: var(--cv-radius-key);\r\n border: 1px solid var(--cv-danger-soft);\r\n background: var(--cv-surface);\r\n}\r\n/* Same shape as `.cv-gate-mark`, smaller — one visual language for \"here is a status\", not two. */\r\n.cv-transfer-notice-mark {\r\n flex-shrink: 0;\r\n display: grid;\r\n place-items: center;\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 999px;\r\n background: var(--cv-danger-soft);\r\n color: var(--cv-danger);\r\n}\r\n.cv-transfer-notice-body { flex: 1; min-width: 0; }\r\n/*\r\n Title shares its row with only the dismiss button (24px) — not the whole card's width, and not the\r\n \"Llamar de vuelta\" button, which gets its own row below (`.cv-transfer-notice-footer`). The original\r\n layout put mark + title + subtitle + a full button all in one flex row, leaving the title as little as\r\n ~80px to wrap into at the real ~340px embed width — nearly every word landed on its own line.\r\n `align-items: flex-start` keeps the dismiss pinned to the first line even when the title wraps to two.\r\n*/\r\n.cv-transfer-notice-header { display: flex; align-items: flex-start; gap: 0.4rem; }\r\n.cv-transfer-notice-title {\r\n flex: 1;\r\n min-width: 0;\r\n margin: 0;\r\n font: 600 0.82rem var(--cv-font);\r\n color: var(--cv-text);\r\n line-height: 1.35;\r\n}\r\n.cv-transfer-notice-subtitle {\r\n margin: 0.15rem 0 0;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n line-height: 1.35;\r\n}\r\n/* Age and the callback button share a row too, same reasoning as the header — a short fixed-width\r\n timestamp beside a content-sized button, neither one fighting the title for space above. */\r\n.cv-transfer-notice-footer {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 0.5rem;\r\n margin-top: 0.35rem;\r\n}\r\n.cv-transfer-notice-age { margin: 0; font-size: 0.7rem; color: var(--cv-faint); flex-shrink: 0; }\r\n/*\r\n `.cv-btn.cv-transfer-notice-callback` — TWO classes, not one. Equal-specificity selectors resolve by\r\n source order, and this rule used to lose its `padding`/`font-size` to the shared `.cv-btn` rule below\r\n simply because that one appears later in the file; the button rendered at full default CTA size\r\n instead of this smaller, secondary one, which is what actually forced the title into that ~80px\r\n column above. The extra class is what makes this override win regardless of source order.\r\n*/\r\n.cv-btn.cv-transfer-notice-callback {\r\n flex-shrink: 0;\r\n padding: 0.35rem 0.6rem;\r\n font-size: 0.75rem;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.3rem;\r\n white-space: nowrap;\r\n}\r\n/* Same round icon-only shape as `.cv-search-clear` — one dismiss affordance, not a new one. */\r\n.cv-transfer-notice-dismiss {\r\n flex-shrink: 0;\r\n width: 24px;\r\n height: 24px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: none;\r\n border-radius: 999px;\r\n background: none;\r\n color: var(--cv-muted);\r\n cursor: pointer;\r\n transition: color 0.12s ease, background 0.12s ease, transform 0.1s var(--cv-ease-out);\r\n}\r\n.cv-transfer-notice-dismiss:hover { color: var(--cv-text); background: var(--cv-surface-2); }\r\n.cv-transfer-notice-dismiss:active { transform: scale(0.88); }\r\n\r\n/* ── Buttons ─────────────────────────────────────────────────────────────────── */\r\n.cv-btn {\r\n font: 600 0.875rem var(--cv-font);\r\n cursor: pointer;\r\n padding: 0.5rem 0.9rem;\r\n border-radius: 10px;\r\n border: 1px solid var(--cv-border-strong);\r\n background: var(--cv-bg);\r\n color: var(--cv-text);\r\n transition: background 0.15s ease, transform 0.06s ease;\r\n}\r\n.cv-btn:hover:not(:disabled) { background: var(--cv-surface); }\r\n.cv-btn:active:not(:disabled) { transform: scale(0.97); }\r\n.cv-btn:disabled { opacity: 0.45; cursor: not-allowed; }\r\n.cv-btn--accent {\r\n background: var(--cv-accent);\r\n border-color: var(--cv-accent);\r\n color: var(--cv-accent-contrast);\r\n}\r\n.cv-btn--accent:hover:not(:disabled) { background: var(--cv-accent-strong); }\r\n\r\n/* Round action buttons (answer / hangup / call) */\r\n.cv-round {\r\n width: 64px;\r\n height: 64px;\r\n border-radius: 999px;\r\n border: none;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: #fff;\r\n transition: background 0.15s ease, transform 0.08s ease, box-shadow 0.15s ease;\r\n}\r\n.cv-round:active:not(:disabled) { transform: scale(0.94); }\r\n.cv-round--answer {\r\n background: var(--cv-accent);\r\n box-shadow: 0 8px 20px -4px var(--cv-accent-soft);\r\n}\r\n.cv-round--answer:hover:not(:disabled) { background: var(--cv-accent-strong); }\r\n.cv-round--answer:disabled {\r\n background: var(--cv-surface-2);\r\n color: var(--cv-faint);\r\n box-shadow: none;\r\n cursor: not-allowed;\r\n}\r\n.cv-round--hangup {\r\n background: var(--cv-danger);\r\n box-shadow: 0 8px 20px -4px var(--cv-danger-soft);\r\n}\r\n.cv-round--hangup:hover:not(:disabled) { filter: brightness(0.94); }\r\n\r\n/* ── Dialpad ─────────────────────────────────────────────────────────────────── */\r\n/* The prefix chip, on its own row above the number.\r\n Sharing a line with the number starves it: chip + erase button eat the middle, and a formatted\r\n international number needs every pixel. The number is the content; the prefix is a setting. */\r\n.cv-dial-prefix {\r\n flex-shrink: 0;\r\n display: flex;\r\n justify-content: center;\r\n padding: 1rem 1rem 0;\r\n}\r\n.cv-dial-head {\r\n flex-shrink: 0;\r\n display: flex;\r\n align-items: center;\r\n padding: 0.35rem 1rem 0.75rem;\r\n gap: 0.25rem;\r\n}\r\n/*\r\n * The outcome of the last attempt, under the number.\r\n *\r\n * ALWAYS in the layout, visible or not. The keypad is `flex: 1` and absorbs whatever height is left,\r\n * so a line that appears and disappears would resize every key and shift the whole grid under the\r\n * user's finger — mid-dial, which is exactly when this text arrives. Reserving the row costs one line\r\n * of height and buys a keypad that never moves.\r\n */\r\n.cv-dial-outcome {\r\n flex-shrink: 0;\r\n margin: 0;\r\n min-height: 1.15rem;\r\n padding: 0 1rem;\r\n text-align: center;\r\n font-size: 0.78rem;\r\n line-height: 1.15rem;\r\n color: var(--cv-muted);\r\n /*\r\n One line, always. `error-text.test.ts` caps every outcome at 48 characters so nothing should ever\r\n reach this — but a cap depends on whoever writes the next string remembering it, and the failure\r\n it prevents is not cosmetic: the keypad below is `flex: 1`, so a second line resizes all twelve\r\n keys and shifts the grid under a finger that is already moving. Truncating is visibly wrong and\r\n harmless; reflowing the dialpad mid-dial is invisibly wrong and makes the user misdial.\r\n */\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n /* Muted, not danger: the phone still works. A red line here would read as a broken phone. */\r\n opacity: 0;\r\n transition: opacity 150ms ease-out;\r\n}\r\n.cv-dial-outcome[data-shown='true'] {\r\n opacity: 1;\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-dial-outcome {\r\n transition: none;\r\n }\r\n}\r\n\r\n.cv-display {\r\n flex: 1;\r\n min-width: 0;\r\n font: 600 1.75rem var(--cv-font);\r\n font-variant-numeric: tabular-nums;\r\n letter-spacing: -0.02em;\r\n text-align: center;\r\n color: var(--cv-text);\r\n border: none;\r\n background: none;\r\n padding: 0;\r\n caret-color: var(--cv-accent);\r\n}\r\n.cv-display::placeholder { color: var(--cv-faint); font-weight: 400; }\r\n.cv-display:focus { outline: none; }\r\n\r\n/* The spacer/erase pair keeps the number optically centred. */\r\n.cv-dial-side {\r\n width: 36px;\r\n height: 36px;\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: none;\r\n background: none;\r\n color: var(--cv-muted);\r\n cursor: pointer;\r\n border-radius: 999px;\r\n transition: color 0.15s ease, opacity 0.15s ease, transform 0.06s ease;\r\n}\r\n.cv-dial-side:hover { color: var(--cv-text); }\r\n.cv-dial-side:active { transform: scale(0.9); }\r\n.cv-dial-side[data-hidden='true'] { opacity: 0; pointer-events: none; }\r\n\r\n/* THE layout fix: the keypad flexes to fill, and its rows share the space equally.\r\n Keys must NOT use aspect-ratio — that overflows the shell and shoves the call button\r\n under the tab bar. */\r\n.cv-keypad {\r\n flex: 1;\r\n min-height: 0;\r\n display: grid;\r\n grid-template-columns: repeat(3, 1fr);\r\n grid-template-rows: repeat(4, 1fr);\r\n gap: 8px;\r\n padding: 0 1rem;\r\n}\r\n.cv-key {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1px;\r\n border-radius: var(--cv-radius-key);\r\n border: 1px solid var(--cv-border);\r\n background: var(--cv-bg);\r\n box-shadow: var(--cv-shadow);\r\n color: var(--cv-text);\r\n cursor: pointer;\r\n user-select: none;\r\n transition: background 0.12s ease, transform 0.06s ease;\r\n}\r\n.cv-key:hover { background: var(--cv-surface); }\r\n.cv-key:active { transform: scale(0.95); background: var(--cv-surface-2); }\r\n.cv-key b { font: 500 1.25rem/1 var(--cv-font); }\r\n.cv-key small {\r\n font-size: 9px;\r\n font-weight: 600;\r\n letter-spacing: 0.14em;\r\n /* Decorative: the letters carry no information the digit doesn't. `faint`, not `muted`. */\r\n color: var(--cv-faint);\r\n line-height: 1;\r\n}\r\n\r\n.cv-dial-foot {\r\n flex-shrink: 0;\r\n display: flex;\r\n justify-content: center;\r\n padding: 0.75rem 0 1rem;\r\n}\r\n\r\n/* ── Active call ─────────────────────────────────────────────────────────────── */\r\n.cv-call {\r\n flex: 1;\r\n min-height: 0;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.15rem;\r\n text-align: center;\r\n padding: 1rem;\r\n /*\r\n A REAL bug, found live (plan T7): the transfer picker's agent list can make this box's content\r\n taller than the space `flex: 1` actually allocates it — the avatar/name/timer/status ABOVE the\r\n picker are still shown while transferring, unlike `.cv-call-devices-inline`'s own \"swap the\r\n content\" fix for the pre-connect devices screen. Without this, the overflow painted straight past\r\n `.cv-call`'s own shrunk box and onto `.cv-controls` below it — not scroll, actual overlap, controls\r\n rendered ON TOP of list rows. `overflow-y: auto` keeps any excess inside THIS box, scrollable,\r\n exactly like `.cv-presence-list`'s own internal scroll already does for the list itself.\r\n */\r\n overflow-y: auto;\r\n}\r\n\r\n.cv-avatar-wrap { position: relative; margin-bottom: 0.85rem; }\r\n.cv-avatar {\r\n position: relative;\r\n width: 68px;\r\n height: 68px;\r\n border-radius: 999px;\r\n /* accent → accent-strong (emerald 600→700): white initials clear 3.77:1 at EVERY stop. Starting\r\n the ramp at emerald-500 would look punchier but drop the light end to 2.54:1. */\r\n background: linear-gradient(135deg, var(--cv-accent) 0%, var(--cv-accent-strong) 100%);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: #fff;\r\n font: 700 1.3rem var(--cv-font);\r\n letter-spacing: -0.01em;\r\n box-shadow: 0 8px 20px -6px var(--cv-accent-soft);\r\n}\r\n/* A soft halo while ringing — the one moment worth animating. */\r\n.cv-avatar-ping {\r\n position: absolute;\r\n inset: 0;\r\n border-radius: 999px;\r\n /* Decorative — nothing sits on it, so it uses the vivid emerald. */\r\n background: var(--cv-accent-light);\r\n opacity: 0.16;\r\n animation: cv-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite;\r\n pointer-events: none;\r\n}\r\n@keyframes cv-ping {\r\n 0% { transform: scale(1); opacity: 0.22; }\r\n 80%, 100% { transform: scale(1.7); opacity: 0; }\r\n}\r\n.cv-avatar-dot {\r\n position: absolute;\r\n bottom: 1px;\r\n right: 1px;\r\n width: 14px;\r\n height: 14px;\r\n border-radius: 999px;\r\n background: var(--cv-accent);\r\n border: 2px solid var(--cv-bg);\r\n}\r\n\r\n.cv-call-name { font-size: 1rem; font-weight: 600; line-height: 1.2; }\r\n.cv-call-number { font-size: 0.75rem; color: var(--cv-muted); margin-top: 2px; }\r\n\r\n.cv-timer {\r\n display: flex;\r\n align-items: baseline;\r\n justify-content: center;\r\n gap: 1px;\r\n margin-top: 0.75rem;\r\n color: var(--cv-accent-strong);\r\n}\r\n.cv-timer b {\r\n font: 700 2.25rem/1 var(--cv-font);\r\n font-variant-numeric: tabular-nums;\r\n letter-spacing: -0.03em;\r\n}\r\n.cv-timer i {\r\n font: 300 1.75rem/1 var(--cv-font);\r\n font-style: normal;\r\n color: var(--cv-accent);\r\n animation: cv-blink 1.6s ease-in-out infinite;\r\n margin: 0 1px;\r\n}\r\n@keyframes cv-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }\r\n\r\n.cv-call-status {\r\n margin-top: 0.6rem;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n letter-spacing: 0.04em;\r\n}\r\n.cv-badge-hold { color: var(--cv-hold); font-weight: 600; }\r\n\r\n/* ── Pre-connect device check (ringing / dialing) ──────────────────────────────\r\n Before a call connects there is only ONE other control on screen (Colgar, or\r\n Rechazar/Contestar) — putting Dispositivos in that same neighbourhood, even\r\n spaced out, keeps it a mis-tap away from hanging up or answering. The entry\r\n chip lives beside the call status instead, removing it from that neighbourhood\r\n rather than just adding distance within it — same resting-pill SHAPE as `.cv-cp`\r\n (CountryPicker), reused rather than invented fresh.\r\n\r\n Opening it does NOT pop a panel into that same tight space, though — this\r\n SDK's real production embed (a 310×520 host panel with its own header eating\r\n further into that) leaves too little free room around a trigger sitting in\r\n vertically-centred content for a floating popover to open into without either\r\n overlapping Colgar/Rechazar/Contestar or clamping itself down to something\r\n cramped and scrolly for just two rows. `.cv-call-devices-inline` REPLACES the\r\n avatar/name/status block in `.cv-call` instead (see that JSX's own comment) —\r\n an inline swap, not an overlay, so it gets the full box, not a leftover sliver.\r\n ───────────────────────────────────────────────────────────────────────────── */\r\n.cv-call-devices-chip {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.35rem;\r\n height: 26px;\r\n padding: 0 0.65rem;\r\n border: 1px solid var(--cv-border-strong);\r\n border-radius: 999px;\r\n background: var(--cv-bg);\r\n color: var(--cv-muted);\r\n font: 600 0.7rem var(--cv-font);\r\n cursor: pointer;\r\n transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;\r\n}\r\n.cv-call-devices-chip:hover { background: var(--cv-surface); }\r\n.cv-call-devices-chip:active { transform: scale(0.95); }\r\n\r\n/*\r\n The entry-point row — ONE chip today (Dispositivos), up to two once a host configures\r\n `incomingCallAction` (that one first: who is calling outranks a phone-utility setting). `width:\r\n 100%` + `flex-wrap` on purpose: a host's action label is arbitrary text this component cannot\r\n assume is short, so two chips sit side by side when they fit and wrap onto their own centred line\r\n when they do not, rather than overflowing `.cv-call`'s fixed width.\r\n*/\r\n.cv-call-chips {\r\n width: 100%;\r\n display: flex;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n gap: 0.5rem;\r\n margin-top: 0.65rem;\r\n}\r\n\r\n.cv-call-devices-inline {\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.9rem;\r\n /* `.cv-call` centres and centre-aligns its normal (avatar) content — rows read left-aligned\r\n everywhere else in the widget (Ajustes, the in-call popover), so this opts back out of both. */\r\n text-align: left;\r\n animation: cv-call-devices-in 0.18s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n@keyframes cv-call-devices-in {\r\n from { opacity: 0; transform: translateY(6px); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-call-devices-inline { animation: none; }\r\n}\r\n.cv-call-devices-header { display: flex; align-items: center; gap: 0.5rem; }\r\n.cv-call-devices-title { font-size: 0.95rem; font-weight: 600; color: var(--cv-text); }\r\n/* `--cv-muted` on `--cv-bg` — the same already-verified pairing `.cv-settings-note` uses\r\n (4.83:1 light / 6.97:1 dark), not a new one. */\r\n.cv-call-devices-context {\r\n margin: 0;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n}\r\n\r\n/* ── Call controls ───────────────────────────────────────────────────────────\r\n TWO TIERS. Hang up is the one action that must never be hunted for, so it sits\r\n alone, centred, and largest — the anchor. The secondaries flank above it. They\r\n used to share a single row, where hang up was just the last button and carried\r\n the same weight as \"transfer\"; mid-call, that is the wrong hierarchy.\r\n ─────────────────────────────────────────────────────────────────────────── */\r\n.cv-controls {\r\n flex-shrink: 0;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 0.7rem;\r\n padding: 0.35rem 1rem 1.1rem;\r\n /* The containing block for `.cv-device-popover` — see that rule's own comment for why it is\r\n anchored here rather than to the trigger button. */\r\n position: relative;\r\n}\r\n.cv-controls-row {\r\n display: flex;\r\n justify-content: center;\r\n gap: 1.5rem;\r\n}\r\n.cv-controls-primary {\r\n display: flex;\r\n justify-content: center;\r\n gap: 2.75rem;\r\n}\r\n/* Button + its word. The column keeps the label from widening the hit target. */\r\n.cv-ctrl-item {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 0.3rem;\r\n}\r\n/* 10px, muted: present when you look for it, silent when you don't. An icon-only\r\n control is a quiz, and mid-call is the worst time to sit one. */\r\n.cv-ctrl-label {\r\n font-size: 0.625rem;\r\n line-height: 1;\r\n color: var(--cv-muted);\r\n white-space: nowrap;\r\n user-select: none;\r\n}\r\n.cv-ctrl {\r\n width: 48px;\r\n height: 48px;\r\n border-radius: 999px;\r\n border: 1px solid var(--cv-border-strong);\r\n background: var(--cv-bg);\r\n color: var(--cv-text);\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: background 0.15s ease, color 0.15s ease, transform 0.06s ease;\r\n}\r\n.cv-ctrl:hover { background: var(--cv-surface); }\r\n.cv-ctrl:active { transform: scale(0.94); }\r\n\r\n/* The ON states say what they MEAN, in the widget's own tokens: muted is danger,\r\n held is hold, transfer-open is accent. Colour is the state, not decoration. */\r\n.cv-ctrl[data-tone='danger'] {\r\n background: var(--cv-danger);\r\n border-color: var(--cv-danger);\r\n color: #fff;\r\n}\r\n.cv-ctrl[data-tone='hold'] {\r\n background: var(--cv-hold);\r\n border-color: var(--cv-hold);\r\n color: #fff;\r\n}\r\n.cv-ctrl[data-tone='accent'] {\r\n background: var(--cv-accent-soft);\r\n border-color: transparent;\r\n color: var(--cv-accent-strong);\r\n}\r\n.cv-ctrl[data-tone]:hover { filter: brightness(0.95); }\r\n\r\n/* Muted is the one state worth animating: it is invisible, it is easy to forget,\r\n and the cost of forgetting is talking to nobody. Same halo the avatar rings\r\n with — one language, not two. */\r\n.cv-ctrl[data-tone='danger'] {\r\n position: relative;\r\n}\r\n.cv-ctrl[data-tone='danger']::after {\r\n content: '';\r\n position: absolute;\r\n inset: 0;\r\n border-radius: 999px;\r\n background: var(--cv-danger);\r\n animation: cv-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite;\r\n pointer-events: none;\r\n z-index: -1;\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-ctrl[data-tone='danger']::after { animation: none; opacity: 0; }\r\n}\r\n.cv-ctrl[aria-pressed='true'] {\r\n background: var(--cv-text);\r\n color: var(--cv-bg);\r\n border-color: var(--cv-text);\r\n}\r\n\r\n/*\r\n The attended-transfer target-entry panel (`docs/specs/transfer-availability.md` §5): an optional\r\n outcome line, then a row of whatever's actionable (input+button today). Once a consult exists,\r\n `ConsultScreen` takes over the whole screen instead — this panel is ONLY ever the pre-consult /\r\n retry-after-failure state now; it used to also cover the consulting/answered phases, which is why\r\n its rule is a column container built for more than one child even though there's only ever one row\r\n here today. (History: was two near-duplicate rules — `.cv-transfer` as a bare ROW,\r\n `.cv-transfer-consult` as a column — until the row version turned out to be a real,\r\n reproduced-in-browser bug: the optional `.cv-dial-outcome` message rendered as a THIRD item in the\r\n same horizontal row as the input and button, squeezing the input to its content-minimum. Merged\r\n rather than patched.)\r\n*/\r\n.cv-transfer {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.3rem;\r\n width: 100%;\r\n padding: 0.2rem 0.25rem 0;\r\n /* `.cv-call` centres and centre-aligns its normal (avatar) content — same reasoning\r\n `.cv-call-devices-inline` already opts out of for the OTHER inline swap in this box (its own\r\n comment): rows read left-aligned everywhere else in the widget, and a centred context line\r\n sitting directly above a left-aligned input/toggle/list read as two layouts stacked on top of\r\n each other, found live (2026-09-29). */\r\n text-align: left;\r\n /* Found live (2026-09-29): `.cv-call`'s avatar/name/timer block used to sit ABOVE this,\r\n unconditionally, so this panel only ever got whatever was left over — see the JSX call site's own\r\n comment. Now that this IS the whole of `.cv-call`'s content while a transfer is in progress\r\n (a swap, not an addition), it should CLAIM `.cv-call`'s available height, not just sit in it —\r\n `flex: 1` does that; `min-height: 0` is what lets a flex child actually shrink to fit instead of\r\n forcing its parent to grow past it (the same reason `.cv-call`/`.cv-view`/`.cv-body` all set it,\r\n see their own comments). This is what lets `.cv-presence-list` below flex-grow into real room\r\n instead of needing its own hand-tuned `max-height` guess. */\r\n flex: 1;\r\n min-height: 0;\r\n /* Same entrance `.cv-call-devices-inline` already uses for the analogous inline swap (its own\r\n comment) — reused, not a second animation invented for this widget's second inline-swap view. */\r\n animation: cv-call-devices-in 0.18s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-transfer { animation: none; }\r\n}\r\n/* The compact \"who am I still on the phone with\" line while the picker is open — reuses\r\n `.cv-call-devices-inline`'s own two classes verbatim (`.cv-call-devices-title` for the name,\r\n `.cv-call-devices-context` for the number/timer line) rather than inventing a second \"quiet header\"\r\n style for the same widget; only the tiny stacking gap between them is new.\r\n\r\n Found live (2026-09-29): `.cv-transfer`'s own `gap` alone gave every section — context, input row,\r\n mode toggle, results list — the exact same spacing, so nothing read as its own group; the eye had\r\n no cue for where \"who I'm on the phone with\" ends and \"pick a transfer target\" begins. This extra\r\n `margin-bottom`, on top of the base `gap`, is that cue — the toggle stays close to the list it\r\n controls (unchanged), only the boundary above the interactive controls opened up. */\r\n.cv-transfer-context {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 2px;\r\n flex-shrink: 0;\r\n margin-bottom: 0.35rem;\r\n}\r\n/* Plan T3: the mode toggle reuses `.cv-segmented` (HistoryTab's own filter control) as-is, but its\r\n `margin-bottom` (needed THERE, where the surrounding layout has no gap of its own) is redundant\r\n here — `.cv-transfer`'s own `gap` above already spaces every child, so the two would stack. Scoped\r\n to this context only; HistoryTab's own copy is untouched. */\r\n.cv-transfer .cv-segmented { margin-bottom: 0; flex-shrink: 0; }\r\n.cv-transfer .cv-presence-legend { flex-shrink: 0; }\r\n/* Same treatment as `.cv-call-status` (the avatar's own \"Llamando…\"/\"En espera\" line) — one muted\r\n status-line vocabulary for the whole call screen, not a second one invented for this panel. */\r\n.cv-transfer-status {\r\n margin: 0;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n letter-spacing: 0.04em;\r\n}\r\n/* The target-entry/retry row: an input plus one button. */\r\n.cv-transfer-row {\r\n display: flex;\r\n gap: 0.5rem;\r\n}\r\n/*\r\n Flex items default to `min-width: auto`, which floors them at their CONTENT size rather than letting\r\n them shrink or grow to fill the row — `.cv-search`'s own `width: 100%` never actually took effect\r\n here, because `.cv-btn`'s text (\"Llamar\") set an unshrinkable floor and the input, having no\r\n `flex-grow`, never reclaimed the space left over. `flex: 1` + `min-width: 0` is what actually makes\r\n an input-plus-button row behave like one; `flex: none` keeps the button at its natural size.\r\n*/\r\n.cv-transfer-row .cv-search {\r\n flex: 1;\r\n min-width: 0;\r\n}\r\n/* `max-width` + ellipsis: the label now includes whatever was typed (\"Llamar a {typed}\", spec §4.5)\r\n and `truncateForButton` already bounds that in JS — this is the CSS backstop, so a value that\r\n slips past it (a very wide character set, a future copy change) still can't push `.cv-search` down\r\n to an unusable sliver the way the pre-truncation button did before this was noticed. */\r\n.cv-transfer-row .cv-btn {\r\n flex: none;\r\n max-width: 60%;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n/* The consult-answered row: one or two buttons, no input. */\r\n.cv-transfer-actions {\r\n display: flex;\r\n gap: 0.5rem;\r\n}\r\n.cv-transfer-actions .cv-btn {\r\n flex: 1;\r\n}\r\n/* The ringing phase has only \"Cancelar\" — a secondary, low-stakes action. Letting the row's own\r\n `flex: 1` stretch a LONE button edge to edge reads as oversized for what it is, and nothing else in\r\n this widget sizes a single button to the full row; every other `.cv-btn` sizes to its content. */\r\n.cv-transfer-actions .cv-btn:only-child {\r\n flex: none;\r\n}\r\n\r\n/*\r\n The agent picker (spec §4.5, plan T7) — an inline, always-visible filtered list under the\r\n input+button row, not a click-to-open popover like `.cv-person-filter-pop`: the whole point is that\r\n typing already filters it, so hiding it behind a second interaction would undo that.\r\n\r\n Redesigned live (2026-09-29): T7 (72px) and T3 (30px) both hand-tuned a `max-height` in PIXELS\r\n against whatever else happened to be on screen at the time, and both were broken by the very next\r\n addition above the list (T3's own toggle broke T7's number the same way this would keep breaking on\r\n the next change) — down to \"barely proves the list is scrollable\" at 30px, which is what the user\r\n was actually seeing: \"users cannot almost see any of the listed users.\" The real fix wasn't a bigger\r\n magic number, it was `.cv-transfer`'s own move to `flex: 1` (see its comment) freeing real height\r\n from the block that used to sit above this whole panel — `.cv-presence` and this list now flex-grow\r\n into whatever's ACTUALLY left after the context line, input row, toggle and legend take their own\r\n natural size, on whatever real height the host panel gives `.cv-call` (this SDK's fixed ~310×520\r\n embed today, but also whatever a different host gives it tomorrow — no more re-tuning a constant\r\n every time something above the list changes). `.cv-call`'s own `overflow-y: auto` (its own comment)\r\n is still the last-resort net if content ever genuinely doesn't fit; this just means that net should\r\n now rarely, if ever, have to catch anything for a normal agent list.\r\n*/\r\n.cv-presence {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.35rem;\r\n flex: 1;\r\n min-height: 0;\r\n}\r\n.cv-presence-list {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 2px;\r\n flex: 1;\r\n min-height: 0;\r\n overflow-y: auto;\r\n padding: 0.25rem;\r\n border: 1px solid var(--cv-border);\r\n border-radius: var(--cv-radius-key);\r\n background: var(--cv-surface);\r\n}\r\n.cv-presence-empty {\r\n margin: 0;\r\n padding: 0.5rem;\r\n text-align: center;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n}\r\n.cv-presence-item {\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n padding: 0.4rem 0.5rem;\r\n border: none;\r\n border-radius: calc(var(--cv-radius) - 4px);\r\n background: none;\r\n color: var(--cv-text);\r\n font: 400 0.8rem var(--cv-font);\r\n text-align: left;\r\n cursor: pointer;\r\n}\r\n.cv-presence-item:hover:not(:disabled) { background: var(--cv-surface-2); }\r\n/* En llamada rows are a hard block, not just a hint (CallScreen.tsx's own comment on the row has why)\r\n — same `:disabled` treatment `.cv-btn`/`.cv-tab` already use elsewhere in this file, not a new pattern. */\r\n.cv-presence-item:disabled { opacity: 0.45; cursor: not-allowed; }\r\n.cv-presence-dot {\r\n flex-shrink: 0;\r\n width: 8px;\r\n height: 8px;\r\n border-radius: 999px;\r\n}\r\n/* Reuses existing intent tokens rather than inventing new ones — `--cv-accent` already means\r\n \"good, reachable\" (the answer button), `--cv-hold` already means \"occupied elsewhere\" (the hold\r\n toggle), and `--cv-faint` is this file's own DECORATIVE-only tier (see the `--cv-*` legend near the\r\n top) — exactly what \"no signal for this person\" is, no signal being the whole point of that tier. */\r\n.cv-presence-dot[data-state='disponible'] { background: var(--cv-accent); }\r\n.cv-presence-dot[data-state='en_llamada'] { background: var(--cv-hold); }\r\n.cv-presence-dot[data-state='desconectado'] { background: var(--cv-faint); }\r\n.cv-presence-name {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n.cv-presence-meta {\r\n flex-shrink: 0;\r\n font-size: 0.72rem;\r\n color: var(--cv-muted);\r\n}\r\n/* Spec §4.6: Desconectado is a HINT, never \"can't transfer\" — this is what tells the agent so, right\r\n under the list it describes. `--cv-muted`, NOT `--cv-faint`: this text is informational (the reader\r\n needs it to not misread the state), and `--cv-faint` is reserved for decorative-only content that\r\n fails AA on purpose — using it here would repeat the exact tier mistake this file's own `--cv-*`\r\n comment block warns against. */\r\n.cv-presence-legend {\r\n margin: 0;\r\n font-size: 0.7rem;\r\n color: var(--cv-muted);\r\n line-height: 1.35;\r\n}\r\n\r\n/*\r\n `ConsultScreen`'s \"someone is still waiting\" banner (`docs/specs/transfer-availability.md` §5, the\r\n cross-talk fix) — full-width and tappable, not a passive status line, because the entire reason this\r\n screen exists is to make \"go back to the caller\" impossible to miss. Neutral surface + the same\r\n `--cv-hold` colour `.cv-badge-hold` already uses for the same fact elsewhere, not a new soft-fill\r\n token: a text/icon tint on a plain surface is already proven legible here, and inventing an\r\n unmeasured background-tint pairing risks a real contrast regression this file takes seriously\r\n elsewhere (see the `-soft`/`-strong` split's own comments).\r\n*/\r\n.cv-consult-hold-banner {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.4rem;\r\n width: 100%;\r\n padding: 0.5rem 0.75rem;\r\n border-radius: 999px;\r\n border: 1px solid var(--cv-border);\r\n background: var(--cv-surface);\r\n color: var(--cv-hold);\r\n font: 600 0.78rem var(--cv-font);\r\n cursor: pointer;\r\n transition: background 0.15s ease, border-color 0.15s ease;\r\n}\r\n.cv-consult-hold-banner:hover {\r\n background: var(--cv-surface-2);\r\n border-color: var(--cv-hold);\r\n}\r\n.cv-consult-hold-banner:active {\r\n transform: scale(0.98);\r\n}\r\n\r\n/*\r\n The in-call device quick-switch (SPEC §7 Phase 2 — device management). Same rows as the Ajustes tab\r\n (`.cv-settings-row`, via the shared `DevicePickers`), in a popover instead of a page — the call\r\n screen already takes over the whole body, so there is no tab bar to reach Ajustes from mid-call.\r\n\r\n Only the in-call state still uses a floating popover — before a call connects, Dispositivos is\r\n inline content instead (`.cv-call-devices-inline`, above), not an overlay. Opens UPWARD (`bottom:\r\n 100%`): the trigger sits at the bottom of the call screen, and there is no room to open downward.\r\n Anchored to `.cv-controls`'s own horizontal padding — a container whose width is bounded by ITS\r\n parent, never the narrow trigger itself — the same fix CountryPicker's own popover needed (see its\r\n comment).\r\n*/\r\n.cv-device-popover {\r\n position: absolute;\r\n z-index: 20;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.6rem;\r\n padding: 0.7rem;\r\n background: var(--cv-surface);\r\n border: 1px solid var(--cv-border);\r\n border-radius: var(--cv-radius);\r\n box-shadow: var(--cv-shadow);\r\n}\r\n.cv-device-popover--above {\r\n bottom: 100%;\r\n left: 1rem;\r\n right: 1rem;\r\n margin-bottom: 0.6rem;\r\n transform-origin: bottom center;\r\n animation: cv-device-pop-in-up 0.14s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n@keyframes cv-device-pop-in-up {\r\n from { opacity: 0; transform: translateY(4px) scale(0.97); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-device-popover--above { animation: none; }\r\n}\r\n/* No per-row override needed here: `.cv-settings-row`/`.cv-settings-note` carry no border,\r\n background or padding of their own (see the Settings tab block) — this popover's own `gap` and\r\n `padding` are the only spacing in play, which is what keeps it lighter than the full Ajustes\r\n page's bordered section for what is meant to be a quick, transient panel. */\r\n\r\n/* ── Lists (contacts / history) ──────────────────────────────────────────────── */\r\n.cv-list-head { flex-shrink: 0; padding: 0.85rem 1rem 0.5rem; }\r\n.cv-search {\r\n width: 100%;\r\n padding: 0.5rem 0.75rem;\r\n border-radius: 10px;\r\n border: 1px solid var(--cv-border-strong);\r\n background: var(--cv-surface);\r\n color: var(--cv-text);\r\n font: inherit;\r\n transition: border-color 0.15s ease, background 0.15s ease;\r\n /* Found live (2026-09-29): in the transfer row specifically, `.cv-btn`'s own `max-width: 60%`\r\n (needed for the dynamic \"Llamar a {typed}\" label) can leave the input narrower than its\r\n placeholder text — an `<input>` has no native ellipsis, so it hard-clipped mid-word\r\n (\"...o núm\") instead of trailing off cleanly. A real, if rare, risk for ANY `.cv-search` usage\r\n wherever it's squeezed, not just this one row — the fix belongs on the base rule. */\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n}\r\n.cv-search::placeholder { color: var(--cv-muted); }\r\n.cv-search:focus { outline: none; border-color: var(--cv-accent); background: var(--cv-bg); }\r\n\r\n/*\r\n A wrapper around `.cv-search`, not a change to it — that class is also the transfer-target input\r\n in CallScreen, which wants neither an icon nor a clear button. `.cv-search--icon` is an ADDITIVE\r\n modifier on the input itself (padding only), so the base class is byte-for-byte what it was for\r\n every other consumer.\r\n*/\r\n.cv-search-field { position: relative; display: flex; align-items: center; }\r\n.cv-search--icon { padding-left: 2.15rem; padding-right: 1.85rem; }\r\n.cv-search-icon {\r\n position: absolute;\r\n left: 0.75rem;\r\n color: var(--cv-muted);\r\n pointer-events: none;\r\n}\r\n.cv-search-clear {\r\n position: absolute;\r\n right: 0.5rem;\r\n width: 22px;\r\n height: 22px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: none;\r\n border-radius: 999px;\r\n background: none;\r\n color: var(--cv-muted);\r\n cursor: pointer;\r\n transition: color 0.12s ease, transform 0.1s var(--cv-ease-out);\r\n}\r\n.cv-search-clear:hover { color: var(--cv-text); }\r\n.cv-search-clear:active { transform: scale(0.88); }\r\n\r\n/* ── Historial filters: status (Todas/Perdidas) + person ─────────────────────── */\r\n.cv-segmented {\r\n display: flex;\r\n gap: 2px;\r\n padding: 2px;\r\n border-radius: 10px;\r\n background: var(--cv-surface-2);\r\n margin-bottom: 0.4rem;\r\n}\r\n.cv-segmented-btn {\r\n flex: 1;\r\n padding: 0.35rem 0;\r\n border: none;\r\n border-radius: 8px;\r\n background: none;\r\n color: var(--cv-muted);\r\n font: 600 0.75rem var(--cv-font);\r\n cursor: pointer;\r\n transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;\r\n}\r\n/* The active segment is stated by its own fill + shadow, not colour alone — the same reasoning\r\n `.cv-item-action[data-tone='accent']`'s own comment gives for resting-state colour: a state that\r\n only differs by hue must still read on a screen that renders neither. */\r\n.cv-segmented-btn[aria-selected='true'] {\r\n background: var(--cv-bg);\r\n color: var(--cv-text);\r\n box-shadow: var(--cv-shadow);\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-segmented-btn { transition: none; }\r\n}\r\n\r\n/* The person filter — same combobox SHAPE as `.cv-cp-*` (CountryPicker): a chip opening a positioned\r\n popover list with a checkmark on the active row. Not the same CLASSES: the two pickers have nothing\r\n to do with each other and sharing a namespace would make a future change to one silently reach the\r\n other. */\r\n.cv-person-filter { position: relative; width: 100%; }\r\n.cv-person-filter-chip {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.4rem;\r\n width: 100%;\r\n padding: 0.4rem 0.65rem;\r\n border: 1px solid var(--cv-border-strong);\r\n border-radius: 10px;\r\n background: var(--cv-surface);\r\n color: var(--cv-muted);\r\n font: 500 0.78rem var(--cv-font);\r\n cursor: pointer;\r\n transition: background 0.15s ease, border-color 0.15s ease;\r\n}\r\n.cv-person-filter-chip:hover { background: var(--cv-surface-2); }\r\n/*\r\n Border only, no fill — the popover opening and the caret rotating already say \"this is open\";\r\n painting the whole width of a wide text pill solid green on top of that was the same over-strong\r\n green the selected row had (see its own comment below). A coloured border is the same restrained\r\n signal `.cv-search:focus` already uses for \"active\" elsewhere in this file.\r\n*/\r\n.cv-person-filter-chip[aria-expanded='true'] {\r\n border-color: var(--cv-accent);\r\n}\r\n.cv-person-filter-label {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n text-align: left;\r\n color: var(--cv-text);\r\n}\r\n.cv-person-filter-caret {\r\n flex-shrink: 0;\r\n transition: transform 0.18s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n.cv-person-filter-caret[data-open='true'] { transform: rotate(180deg); }\r\n.cv-person-filter-pop {\r\n position: absolute;\r\n top: calc(100% + 6px);\r\n left: 0;\r\n right: 0;\r\n z-index: 20;\r\n max-height: 220px;\r\n overflow-y: auto;\r\n padding: 0.25rem;\r\n background: var(--cv-surface);\r\n border: 1px solid var(--cv-border);\r\n border-radius: var(--cv-radius);\r\n box-shadow: var(--cv-shadow);\r\n transform-origin: top center;\r\n animation: cv-cp-in 0.14s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-person-filter-pop { animation: none; }\r\n .cv-person-filter-caret { transition: none; }\r\n}\r\n.cv-person-filter-item {\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n padding: 0.45rem 0.5rem;\r\n border: none;\r\n border-radius: calc(var(--cv-radius) - 4px);\r\n background: none;\r\n color: var(--cv-text);\r\n font: 400 0.8rem var(--cv-font);\r\n text-align: left;\r\n cursor: pointer;\r\n}\r\n.cv-person-filter-item:hover { background: var(--cv-surface-2); }\r\n/*\r\n NOT a solid `--cv-accent-soft` fill — that read as a wall of saturated green across a wide row,\r\n much louder than the legacy CRM's own treatment for this exact list (`bg-emerald-50` — a barely-\r\n there wash — plus coloured text, never a strong fill). Coloured, bold text + the checkmark carry\r\n \"selected\" instead; `--cv-accent-strong` is already verified elsewhere in this file as AA against\r\n `--cv-surface`, which is what this popover sits on.\r\n*/\r\n.cv-person-filter-item[aria-selected='true'] .cv-person-filter-name {\r\n font-weight: 600;\r\n color: var(--cv-accent-strong);\r\n}\r\n.cv-person-filter-name {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n.cv-person-filter-check { color: var(--cv-accent-strong); flex-shrink: 0; }\r\n.cv-person-filter-check[data-on='false'] { opacity: 0; }\r\n\r\n.cv-list {\r\n flex: 1;\r\n min-height: 0;\r\n overflow-y: auto;\r\n padding: 0 0.5rem 0.5rem;\r\n}\r\n/*\r\n Historial's day group header. Sticky within `.cv-list` (its nearest scrolling ancestor — a plain\r\n wrapper div between the two does not break that), OPAQUE `--cv-bg` rather than a translucent\r\n `/85 + backdrop-blur` treatment: it still needs to fully occlude rows scrolling underneath it, and\r\n a flat match to the list's own background does that with no new CSS feature this file doesn't\r\n already use elsewhere.\r\n*/\r\n.cv-history-day {\r\n position: sticky;\r\n top: 0;\r\n z-index: 1;\r\n padding: 0.5rem 0.6rem 0.35rem;\r\n background: var(--cv-bg);\r\n color: var(--cv-muted);\r\n font-size: 0.68rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n}\r\n.cv-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.7rem;\r\n padding: 0.5rem;\r\n border-radius: 12px;\r\n /*\r\n NOT `cursor: pointer` — this div has no click handler of its own; only its children\r\n (`.cv-item-main`, `.cv-item-action`) do, and each already sets its own pointer cursor. Putting\r\n it here too used to make the WHOLE row's box promise a click — its own padding, and the flex\r\n `gap` between avatar/name/button — none of which does anything when clicked. Most noticeable\r\n right where one row's padding meets the next, which reads as \"there's something clickable\r\n between these two contacts\" when there is not.\r\n */\r\n transition: background 0.12s ease;\r\n text-align: left;\r\n width: 100%;\r\n border: none;\r\n background: none;\r\n font: inherit;\r\n color: inherit;\r\n}\r\n.cv-item:hover { background: var(--cv-surface); }\r\n.cv-item-avatar {\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 999px;\r\n /*\r\n RADIAL, not diagonal — deliberately. The initials sit centered, so a radial gradient puts them\r\n at its lightest point (pure `--cv-surface`) no matter what, while the edges still darken toward\r\n `--cv-surface-2` for the same cheap depth a diagonal gradient gave. A diagonal version measured\r\n 4.39:1 for `--cv-muted` text at its far corner — under the 4.5:1 text needs — because centered\r\n text's exact position against a DIAGONAL gradient depends on glyph width, not just circle size.\r\n Centering the gradient on the centered text removes that dependency entirely, structurally,\r\n rather than nudging a token and hoping the margin holds. Both stops stay tokens, so this is\r\n still theme-correct for free — a hardcoded gray gradient would not adapt to dark mode.\r\n */\r\n background: radial-gradient(circle, var(--cv-surface), var(--cv-surface-2));\r\n /*\r\n Without this, the circle's own boundary can vanish: `.cv-item:hover` sets the ROW background to\r\n `--cv-surface` — the exact color the gradient above STARTS at (1.00 contrast ratio, i.e.\r\n identical) in both themes. `--cv-border-strong` is the same token `.cv-search`'s border already\r\n uses against this same surface a few rules up — a pairing already proven visible, not a new one.\r\n */\r\n border: 1px solid var(--cv-border-strong);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: var(--cv-muted);\r\n font-size: 0.78rem;\r\n font-weight: 700;\r\n flex-shrink: 0;\r\n}\r\n/*\r\n The Historial row's status chip — WHY a call needs colour at all: direction is already the icon's\r\n shape (an arrow in/out), but \"did this connect\" is not shape-able, and a flat grey circle made every\r\n row look identical at a glance. Small badge, not a row-wide fill (that mistake already got made once\r\n on the person filter — see its own comment): a 40px circle reads as a status glyph, the same way a\r\n colored icon-badge does anywhere else; a wide fill reads as decoration competing with the text next\r\n to it. `--danger-strong`/`--accent-strong` (not the plain base tokens) because the base tokens\r\n measure BELOW 3:1 non-text contrast against their own `-soft` fill — `--cv-danger` on\r\n `--cv-danger-soft` is 2.6:1; `--cv-danger-strong` is 4.47:1 light / 3.62:1 dark, measured.\r\n*/\r\n.cv-item-avatar[data-tone='accent'] { background: var(--cv-accent-soft); color: var(--cv-accent-strong); }\r\n.cv-item-avatar[data-tone='info'] { background: var(--cv-info-soft); color: var(--cv-info-strong); }\r\n.cv-item-avatar[data-tone='danger'] { background: var(--cv-danger-soft); color: var(--cv-danger-strong); }\r\n/* A button, reset to look like plain content — the row is a container, not a control. */\r\n.cv-item-main {\r\n flex: 1;\r\n min-width: 0;\r\n display: block;\r\n border: none;\r\n background: none;\r\n padding: 0;\r\n font: inherit;\r\n color: inherit;\r\n text-align: left;\r\n cursor: pointer;\r\n transition: transform 0.1s var(--cv-ease-out);\r\n}\r\n.cv-item-main:disabled { cursor: default; }\r\n.cv-item-main:not(:disabled):active { transform: scale(0.985); }\r\n.cv-item-name {\r\n display: block;\r\n font-weight: 600;\r\n font-size: 0.875rem;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n}\r\n/*\r\n 14px bold does not clear WCAG's large-text bar (18.66px bold) — this text needs the full 4.5:1, not\r\n the 3:1 large-text minimum. `--cv-danger-strong`: 6.47:1 light / 6.46:1 dark against `--cv-bg`,\r\n measured; the plain `--cv-danger` this used to be was only 3.76:1 light — a real (if marginal) fail.\r\n*/\r\n.cv-item-name[data-tone='danger'] { color: var(--cv-danger-strong); }\r\n.cv-item-sub {\r\n display: block;\r\n font-size: 0.72rem;\r\n color: var(--cv-muted);\r\n margin-top: 1px;\r\n font-variant-numeric: tabular-nums;\r\n}\r\n.cv-item-sub-outcome { color: var(--cv-danger-strong); }\r\n/*\r\n Decorative reinforcement, not the sole carrier — the row's own play button is what says \"this call\r\n has a recording\" (it only renders when one exists); this is a small hint IN the metadata line that\r\n the button is worth pressing, so `--cv-faint` (2.5:1, documented above as decorative-only) is the\r\n right tier here, same reasoning `.cv-empty-icon`/`.cv-gate-mark` already use for icons next to real\r\n text rather than standing alone.\r\n\r\n `display: inline-flex` is load-bearing, not decoration — every OTHER inline icon in this file gets\r\n an explicit `display` for the same reason: `/react` + `/ui` render straight into the host's light\r\n DOM (no shadow root), so a host reset like Tailwind Preflight's `svg { display: block }` reaches\r\n this element directly. Without an explicit override here, that reset knocks the icon onto its own\r\n line instead of trailing the duration text it is meant to sit beside.\r\n*/\r\n.cv-item-sub-rec {\r\n display: inline-flex;\r\n color: var(--cv-faint);\r\n margin-left: 0.3rem;\r\n vertical-align: -1px;\r\n}\r\n.cv-item-action {\r\n width: 34px;\r\n height: 34px;\r\n border-radius: 999px;\r\n border: none;\r\n background: none;\r\n color: var(--cv-muted);\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n transition: background 0.12s ease, color 0.12s ease, transform 0.1s var(--cv-ease-out);\r\n}\r\n.cv-item-action:hover { background: var(--cv-accent); color: #fff; }\r\n.cv-item-action:active { transform: scale(0.9); }\r\n/*\r\n The call action specifically (ContactsTab) — NOT History's \"play recording\", which shares this\r\n same class and must stay neutral; a play button has no reason to be accent-colored. Scoped with\r\n `data-tone`, the same modifier convention `.cv-ctrl[data-tone]` already uses elsewhere in this file.\r\n\r\n Coloured at REST, not just on hover: a hover-only reveal never fires on a touchscreen, so the one\r\n affordance that most needs to read as \"you can tap this\" would be invisible on exactly the devices\r\n a phone widget is likeliest to run on. `accent-strong` is already verified elsewhere in this file\r\n as AA on a surface; `accent-soft` is the same hover tint `.cv-ctrl[data-tone='accent']` uses, just\r\n transparent at rest so fifty rows of solid fill never turns the list into a wall of green.\r\n*/\r\n.cv-item-action[data-tone='accent'] { color: var(--cv-accent-strong); }\r\n.cv-item-action[data-tone='accent']:hover { background: var(--cv-accent-soft); color: var(--cv-accent-strong); }\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-item-main, .cv-item-action, .cv-search-clear { transition: none; }\r\n}\r\n\r\n.cv-empty {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100%;\r\n color: var(--cv-muted);\r\n text-align: center;\r\n padding: 2.5rem 1.25rem;\r\n font-size: 0.82rem;\r\n}\r\n.cv-empty-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 48px;\r\n height: 48px;\r\n border-radius: 999px;\r\n background: var(--cv-surface);\r\n color: var(--cv-faint);\r\n margin-bottom: 0.75rem;\r\n}\r\n.cv-empty-title { margin: 0; font-size: 0.85rem; font-weight: 600; color: var(--cv-muted); }\r\n/*\r\n `--cv-muted`, NOT `--cv-faint` — this file documents faint as \"decorative only... never\r\n information\" (2.5:1, below AA), and this line IS information: it is the reason the list is\r\n empty, sometimes echoing the user's own search back to them. `--cv-faint` here measured 2.54:1\r\n light / 3.70:1 dark against a 4.5:1 bar — a real failure, not a rounding difference.\r\n*/\r\n.cv-empty-sub { margin: 0.2rem 0 0; font-size: 0.75rem; color: var(--cv-muted); }\r\n.cv-empty-spinner {\r\n margin-bottom: 0.75rem;\r\n animation: cv-spin 0.8s linear infinite;\r\n /* A loading spinner's rotation IS the information, with no static equivalent — unlike this\r\n file's other motion, it stays exempt from reduced-motion rather than freezing into a shape\r\n that would just look stuck. Colour comes from `.cv-empty`'s own `color: var(--cv-muted)` —\r\n the spinner no longer sets its own, now that it sits next to real text instead of standing\r\n alone: the icon is decorative reinforcement, same as `.cv-empty-icon`, not the sole carrier. */\r\n}\r\n@keyframes cv-spin {\r\n to { transform: rotate(360deg); }\r\n}\r\n\r\n/* The scroll-triggered \"load more\" marker — see `useInfiniteList`. Never visible itself; a small\r\n height so it has a real box for the `IntersectionObserver` to track. */\r\n.cv-list-sentinel {\r\n height: 1px;\r\n}\r\n.cv-list-loading-more {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 0.75rem 0 0.25rem;\r\n color: var(--cv-muted);\r\n}\r\n/* Exempt from reduced-motion for the same reason `.cv-empty-spinner` is — see its own comment. */\r\n.cv-list-loading-more-spinner {\r\n animation: cv-spin 0.8s linear infinite;\r\n}\r\n\r\n/* ── Contact detail (overlays the list) ──────────────────────────────────────── */\r\n.cv-detail {\r\n position: absolute;\r\n inset: 0;\r\n /* Above the list's own sticky day-group header (`.cv-history-day`, z-index: 1) — otherwise\r\n that header's z-index wins the stacking fight wherever its unscrolled flow position happens\r\n to land on top of this overlay, and it paints through despite both having an opaque bg. */\r\n z-index: 2;\r\n display: flex;\r\n flex-direction: column;\r\n background: var(--cv-bg);\r\n animation: cv-detail-in 220ms var(--cv-ease-out) both;\r\n}\r\n@keyframes cv-detail-in {\r\n from { opacity: 0; transform: translateX(10px); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-detail { animation: none; }\r\n}\r\n\r\n.cv-detail-head { flex-shrink: 0; padding: 0.6rem 0.5rem 0; }\r\n.cv-detail-back {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.3rem;\r\n padding: 0.4rem 0.5rem;\r\n border: none;\r\n border-radius: 8px;\r\n background: none;\r\n color: var(--cv-muted);\r\n font: 600 0.82rem var(--cv-font);\r\n cursor: pointer;\r\n transition: color 0.12s ease, transform 0.1s var(--cv-ease-out);\r\n}\r\n.cv-detail-back:hover { color: var(--cv-text); }\r\n.cv-detail-back:active { transform: scale(0.97); }\r\n\r\n.cv-detail-body { flex: 1; min-height: 0; overflow-y: auto; padding: 0 1.25rem; }\r\n.cv-detail-identity {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n text-align: center;\r\n padding: 0.75rem 0 1.5rem;\r\n}\r\n.cv-detail-avatar {\r\n width: 72px;\r\n height: 72px;\r\n border-radius: 999px;\r\n /* Same radial + border treatment as `.cv-item-avatar` (see its own comment), just larger. Neutral\r\n by default — a contact has no \"status\" to colour. `HistoryDetail` overrides both with `[data-tone]`\r\n below: a call DOES have one, the same one the list row already shows, so the hero avatar staying\r\n grey there would be information the list already gave up on repeating here. */\r\n background: radial-gradient(circle, var(--cv-surface), var(--cv-surface-2));\r\n border: 1px solid var(--cv-border-strong);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: var(--cv-muted);\r\n font-size: 1.35rem;\r\n font-weight: 700;\r\n margin-bottom: 0.85rem;\r\n}\r\n/* Same token pairs already verified for `.cv-item-avatar[data-tone]` — size doesn't change a contrast\r\n ratio, so no new numbers to measure here. */\r\n.cv-detail-avatar[data-tone='accent'] { background: var(--cv-accent-soft); color: var(--cv-accent-strong); border-color: transparent; }\r\n.cv-detail-avatar[data-tone='info'] { background: var(--cv-info-soft); color: var(--cv-info-strong); border-color: transparent; }\r\n.cv-detail-avatar[data-tone='danger'] { background: var(--cv-danger-soft); color: var(--cv-danger-strong); border-color: transparent; }\r\n.cv-detail-name {\r\n margin: 0;\r\n font-size: 1.1rem;\r\n font-weight: 700;\r\n color: var(--cv-text);\r\n letter-spacing: -0.01em;\r\n}\r\n.cv-detail-name[data-tone='danger'] { color: var(--cv-danger-strong); }\r\n.cv-detail-meta {\r\n margin: 0.2rem 0 0;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n}\r\n\r\n/* ── Call detail: recording ───────────────────────────────────────────────── */\r\n.cv-detail-recording { margin-bottom: 1rem; }\r\n.cv-detail-recording-label {\r\n margin: 0 0 0.4rem;\r\n padding: 0 0.15rem;\r\n font-size: 0.68rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.03em;\r\n color: var(--cv-muted);\r\n}\r\n.cv-detail-audio { width: 100%; display: block; }\r\n.cv-detail-audio + .cv-detail-audio { margin-top: 0.5rem; }\r\n.cv-detail-recording-status {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n margin: 0 0 1rem;\r\n padding: 0.65rem 0.75rem;\r\n border-radius: 12px;\r\n background: var(--cv-surface);\r\n color: var(--cv-muted);\r\n font-size: 0.78rem;\r\n}\r\n/*\r\n Text colour only, same neutral `--cv-surface` background the other states use — NOT a\r\n `--cv-danger-soft` fill. Measured first, not assumed: `--cv-danger-strong` on `--cv-danger-soft`\r\n is 3.34:1 light / 3.62:1 dark, well under the 4.5:1 this 0.78rem text needs (it only ever cleared\r\n the SEPARATE 3:1 non-text bar this token was built for — an icon on that badge, not body text on\r\n it). Same lesson the person-filter fix already paid for: a badge-strength pairing that works for an\r\n icon is not automatically safe for text.\r\n*/\r\n.cv-detail-recording-status--warn { color: var(--cv-danger-strong); }\r\n.cv-detail-recording-spinner { animation: cv-spin 0.8s linear infinite; flex-shrink: 0; }\r\n\r\n/* ── Call detail: who handled it ──────────────────────────────────────────── */\r\n.cv-detail-handlers { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; }\r\n.cv-detail-handler-hop { display: inline-flex; align-items: center; gap: 0.3rem; }\r\n.cv-detail-handler-arrow { color: var(--cv-faint); flex-shrink: 0; }\r\n.cv-detail-handler-chip {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.3rem;\r\n padding: 0.15rem 0.5rem;\r\n border-radius: 999px;\r\n background: var(--cv-surface-2);\r\n color: var(--cv-text);\r\n font-size: 0.75rem;\r\n font-weight: 600;\r\n}\r\n/* The LAST hop — the one the call actually ended with — is the one worth a glance first. */\r\n.cv-detail-handler-chip[data-tone='accent'] { background: var(--cv-accent-soft); color: var(--cv-accent-strong); }\r\n.cv-detail-handler-ext {\r\n font-weight: 400;\r\n font-variant-numeric: tabular-nums;\r\n opacity: 0.75;\r\n}\r\n\r\n.cv-detail-rows {\r\n border: 1px solid var(--cv-border);\r\n border-radius: 14px;\r\n overflow: hidden;\r\n background: var(--cv-bg);\r\n}\r\n.cv-detail-row {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.7rem;\r\n width: 100%;\r\n padding: 0.7rem 0.85rem;\r\n border: none;\r\n border-top: 1px solid var(--cv-border);\r\n background: none;\r\n font: inherit;\r\n color: inherit;\r\n text-align: left;\r\n}\r\n.cv-detail-row:first-child { border-top: none; }\r\n.cv-detail-row--action {\r\n cursor: pointer;\r\n transition: background 0.12s ease;\r\n}\r\n.cv-detail-row--action:hover { background: var(--cv-surface); }\r\n.cv-detail-row-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 32px;\r\n height: 32px;\r\n border-radius: 999px;\r\n background: var(--cv-surface-2);\r\n /*\r\n Without this the circle nearly vanishes into its own row: `--cv-surface-2` measures only ~1.1:1\r\n against the row's rest-state background and ~1.05:1 against `--cv-surface`, the color\r\n `.cv-detail-row--action:hover` sets the ROW to — both far below a readable boundary, and worse\r\n than `.cv-item-avatar`/`.cv-detail-avatar` above even manage WITH their border (1.18:1 light /\r\n 1.57:1 dark). Same token, same fix, same reason.\r\n */\r\n border: 1px solid var(--cv-border-strong);\r\n color: var(--cv-muted);\r\n flex-shrink: 0;\r\n}\r\n.cv-detail-row-text { flex: 1; min-width: 0; display: flex; flex-direction: column; }\r\n.cv-detail-row-eyebrow {\r\n font-size: 0.68rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.03em;\r\n color: var(--cv-muted);\r\n}\r\n.cv-detail-row-value {\r\n font-size: 0.85rem;\r\n font-weight: 500;\r\n color: var(--cv-text);\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n}\r\n.cv-detail-row-chevron { color: var(--cv-faint); flex-shrink: 0; }\r\n\r\n.cv-detail-foot { flex-shrink: 0; padding: 0.85rem 1.25rem 1.1rem; }\r\n.cv-detail-call { width: 100%; display: flex; align-items: center; justify-content: center; gap: 0.4rem; }\r\n\r\n/* ── Settings tab (device selection, SPEC §7 Phase 2) ──────────────────────────── */\r\n.cv-settings-body {\r\n flex: 1;\r\n min-height: 0;\r\n overflow-y: auto;\r\n padding: 1rem;\r\n display: flex;\r\n flex-direction: column;\r\n /* Generous separation BETWEEN sections, deliberately larger than any gap inside one — grouping\r\n only reads as grouping if the space between groups is clearly bigger than the space within one\r\n (see impeccable's layout guidance: \"tight grouping, generous separation\"). */\r\n gap: 1.5rem;\r\n}\r\n\r\n/*\r\n One labeled group (`SettingsSection`): a title, and a bordered body holding its rows. Ajustes\r\n started as a flat list of two rows with nothing to say they were related — fine for exactly two\r\n rows, unreadable the moment an unrelated third setting lands with nothing to tell it apart from\r\n the device rows above it.\r\n\r\n The body is ONE card, not a card per row: `.cv-settings-row`/`.cv-settings-note` below carry no\r\n border or background of their own, only a divider between siblings — the same shape\r\n `.cv-detail-rows`/`.cv-detail-row` already use elsewhere in this file, and deliberately not a\r\n stack of individually-bordered cards (nested-card territory).\r\n*/\r\n.cv-settings-section { display: flex; flex-direction: column; gap: 0.5rem; }\r\n.cv-settings-section-title {\r\n margin: 0;\r\n padding: 0 0.2rem;\r\n font-size: 0.7rem;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n color: var(--cv-muted);\r\n}\r\n.cv-settings-section-body {\r\n border: 1px solid var(--cv-border);\r\n border-radius: 14px;\r\n background: var(--cv-bg);\r\n overflow: hidden;\r\n}\r\n.cv-settings-section-body > * { padding: 0.75rem 0.85rem; }\r\n.cv-settings-section-body > *:not(:first-child) { border-top: 1px solid var(--cv-border); }\r\n\r\n.cv-settings-row { display: flex; align-items: center; gap: 0.7rem; }\r\n/* Same treatment as `.cv-detail-row-icon`, same reason — see its own comment on why the border is\r\n load-bearing: `--cv-surface-2` alone nearly vanishes into the section's own background. */\r\n.cv-settings-row-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 32px;\r\n height: 32px;\r\n border-radius: 999px;\r\n background: var(--cv-surface-2);\r\n border: 1px solid var(--cv-border-strong);\r\n color: var(--cv-muted);\r\n flex-shrink: 0;\r\n}\r\n.cv-settings-row-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.35rem; }\r\n/* Same pairing as `.cv-detail-row-eyebrow` (`--cv-muted` on `--cv-bg`), verified there already. */\r\n.cv-settings-row-label {\r\n font-size: 0.68rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.03em;\r\n color: var(--cv-muted);\r\n}\r\n.cv-settings-select {\r\n width: 100%;\r\n padding: 0.45rem 0.6rem;\r\n border-radius: 8px;\r\n border: 1px solid var(--cv-border-strong);\r\n background: var(--cv-surface);\r\n color: var(--cv-text);\r\n font: inherit;\r\n font-size: 0.85rem;\r\n transition: border-color 0.15s ease, background 0.15s ease;\r\n}\r\n.cv-settings-select:focus { outline: none; border-color: var(--cv-accent); background: var(--cv-bg); }\r\n.cv-settings-empty { font-size: 0.85rem; color: var(--cv-muted); }\r\n/* `--cv-muted` on `--cv-bg` — 4.83:1 light / 6.97:1 dark, computed fresh for THIS pairing (the note\r\n used to sit on `--cv-surface` with its own card; now it sits directly on the section's `--cv-bg`,\r\n a different background that earns its own check rather than inheriting the old one's number). */\r\n.cv-settings-note {\r\n margin: 0;\r\n color: var(--cv-muted);\r\n font-size: 0.8rem;\r\n line-height: 1.5;\r\n}\r\n/* Closing note for the tab as a whole, not any one section — sits directly on `.cv-settings-body`,\r\n which shares the same `--cv-bg` as `.cv-settings-section-body` above, so the `--cv-muted`-on-\r\n `--cv-bg` pairing already verified for `.cv-settings-note` carries over unchanged. Centred and\r\n quieter than a row: this is a footnote about the tab, not a row's worth of content. */\r\n.cv-settings-more {\r\n margin: 0;\r\n padding: 0 0.5rem;\r\n text-align: center;\r\n color: var(--cv-muted);\r\n font-size: 0.78rem;\r\n line-height: 1.5;\r\n}\r\n\r\n/* ── Centred states (mic gate) ───────────────────────────────────────────────── */\r\n.cv-center {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.85rem;\r\n padding: 1.75rem;\r\n text-align: center;\r\n}\r\n.cv-center p { color: var(--cv-muted); margin: 0; font-size: 0.85rem; line-height: 1.5; }\r\n\r\n\r\n/* \"Cómo permitirlo\" — a native <details> disclosure.\r\n Collapsed by default: the people who already know where the padlock is should not have to read\r\n past three steps to get there, and the people who don't get them without leaving the app. */\r\n.cv-help {\r\n width: 100%;\r\n margin-top: 0.15rem;\r\n text-align: left;\r\n}\r\n.cv-help summary {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.3rem;\r\n justify-content: center;\r\n width: 100%;\r\n padding: 0.3rem;\r\n border-radius: 8px;\r\n color: var(--cv-muted);\r\n font: 500 0.75rem var(--cv-font);\r\n cursor: pointer;\r\n list-style: none; /* hide the default triangle; the icon is the affordance */\r\n transition: color 0.15s ease, background 0.15s ease;\r\n}\r\n.cv-help summary::-webkit-details-marker { display: none; }\r\n.cv-help summary:hover { color: var(--cv-text); background: var(--cv-surface-2); }\r\n.cv-help[open] summary { color: var(--cv-text); margin-bottom: 0.35rem; }\r\n\r\n.cv-help ol {\r\n margin: 0;\r\n padding: 0.6rem 0.7rem 0.6rem 1.6rem;\r\n background: var(--cv-surface);\r\n border-radius: 10px;\r\n color: var(--cv-muted);\r\n font-size: 0.73rem;\r\n line-height: 1.55;\r\n}\r\n.cv-help li + li { margin-top: 0.3rem; }\r\n.cv-help li::marker { color: var(--cv-faint); font-variant-numeric: tabular-nums; }\r\n\r\n.cv-help a {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n margin-top: 0.45rem;\r\n padding-left: 0.1rem;\r\n color: var(--cv-accent-strong);\r\n font-size: 0.73rem;\r\n font-weight: 500;\r\n text-decoration: none;\r\n}\r\n.cv-help a:hover { text-decoration: underline; }\r\n\r\n/* The panel is the only thing that moves, and only when opened by hand — so it animates. */\r\n.cv-help[open] ol {\r\n animation: cv-gate-in 200ms var(--cv-ease-out) both;\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-help[open] ol { animation: none; }\r\n}\r\n\r\n/* ── The permission gate ─────────────────────────────────────────────────────\r\n Four states, and only ONE of them deserves a designed screen.\r\n\r\n `checking` resolves in ~100–400 ms. Rendering it immediately means the user\r\n sees text appear and vanish inside a blink — a flash reads as jank, not as\r\n information. So it is delayed 450 ms with `both` fill: invisible during the\r\n delay, and if the check finishes first (the usual case, and always the case\r\n when permission is already granted) it is never painted at all.\r\n\r\n `prompting` is the one the user actually reads and acts on. It gets the\r\n hierarchy: mark, title, reason, action.\r\n ─────────────────────────────────────────────────────────────────────────── */\r\n.cv-gate {\r\n flex: 1;\r\n min-height: 0;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.6rem;\r\n padding: 1.5rem 1.75rem;\r\n text-align: center;\r\n}\r\n\r\n/* The disc echoes the call avatar — one visual language, not two. */\r\n.cv-gate-mark {\r\n display: grid;\r\n place-items: center;\r\n width: 52px;\r\n height: 52px;\r\n border-radius: 999px;\r\n background: var(--cv-accent-soft);\r\n color: var(--cv-accent-strong);\r\n margin-bottom: 0.15rem;\r\n}\r\n.cv-gate[data-tone='danger'] .cv-gate-mark {\r\n background: var(--cv-danger-soft);\r\n color: var(--cv-danger);\r\n}\r\n\r\n.cv-gate-title {\r\n margin: 0;\r\n font: 600 0.95rem var(--cv-font);\r\n color: var(--cv-text);\r\n letter-spacing: -0.01em;\r\n}\r\n.cv-gate p {\r\n margin: 0;\r\n color: var(--cv-muted);\r\n font-size: 0.8rem;\r\n line-height: 1.5;\r\n max-width: 24ch; /* two comfortable lines, not one long one */\r\n}\r\n.cv-gate .cv-btn { margin-top: 0.5rem; }\r\n\r\n/* Entrance. Staggered 45 ms apart: the eye follows mark → title → reason →\r\n action, which is the order it needs to read them in anyway. */\r\n.cv-gate > * {\r\n animation: cv-gate-in 260ms var(--cv-ease-out) both;\r\n}\r\n.cv-gate > *:nth-child(2) { animation-delay: 45ms; }\r\n.cv-gate > *:nth-child(3) { animation-delay: 90ms; }\r\n.cv-gate > *:nth-child(4) { animation-delay: 135ms; }\r\n\r\n@keyframes cv-gate-in {\r\n from { opacity: 0; transform: translateY(6px); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n\r\n/* The checking state: held back, then a quiet fade. No stagger, no movement —\r\n it is a status, not a screen, and it should barely register. */\r\n.cv-gate[data-state='checking'] > *,\r\n.cv-gate[data-state='warming'] > * {\r\n animation: cv-gate-wait 200ms var(--cv-ease-out) 450ms both;\r\n}\r\n@keyframes cv-gate-wait {\r\n from { opacity: 0; }\r\n to { opacity: 1; }\r\n}\r\n/* A slow breath rather than a spinner: a spinner promises a long wait, and this\r\n is not one. */\r\n.cv-gate[data-state='checking'] .cv-gate-mark,\r\n.cv-gate[data-state='warming'] .cv-gate-mark {\r\n background: var(--cv-surface-2);\r\n color: var(--cv-muted);\r\n animation: cv-gate-wait 200ms var(--cv-ease-out) 450ms both,\r\n cv-breathe 1.8s ease-in-out 450ms infinite;\r\n}\r\n@keyframes cv-breathe {\r\n 0%, 100% { opacity: 1; }\r\n 50% { opacity: 0.45; }\r\n}\r\n\r\n/* Reduced motion: keep the fade and — critically — keep the DELAY, which is\r\n timing rather than motion and is the whole point. Drop the travel. */\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-gate > * {\r\n animation: cv-gate-wait 200ms var(--cv-ease-out) both;\r\n }\r\n .cv-gate[data-state='checking'] .cv-gate-mark,\r\n .cv-gate[data-state='warming'] .cv-gate-mark {\r\n animation: cv-gate-wait 200ms var(--cv-ease-out) 450ms both;\r\n }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-avatar-ping,\r\n .cv-timer i { animation: none; }\r\n .cv-softphone *,\r\n .cv-softphone *::before { transition-duration: 0.01ms !important; }\r\n}\r\n\r\n/* `*` and `#` stay in the grid — a keypad without them is not a keypad — but they are not part of a\r\n number (toE164 keeps digits only). Dimmed rather than `disabled` so the grid still reads as a\r\n keypad and the glyphs stay legible; they become live DTMF on the in-call screen. */\r\n.cv-key[data-dialable='false'] {\r\n cursor: default;\r\n}\r\n.cv-key[data-dialable='false'] b {\r\n color: var(--cv-faint);\r\n}\r\n.cv-key[data-dialable='false']:hover {\r\n background: none;\r\n}\r\n.cv-key[data-dialable='false']:active {\r\n transform: none;\r\n}\r\n\r\n/* ── Country picker ──────────────────────────────────────────────────────────\r\n The prefix chip + its list. Sits where the old left spacer was, so the number\r\n stays optically centred against the 36px erase button on the right.\r\n\r\n The popover is absolutely positioned inside the widget rather than portalled:\r\n there is nowhere to portal TO inside a shadow root, and the widget already owns\r\n its stacking context. That also means it cannot be clipped by a host's\r\n `overflow:hidden` — the failure SPEC §2.6 lists for the CRM's Radix version.\r\n ──────────────────────────────────────────────────────────────────────────── */\r\n/* The anchor spans the whole ROW, not just the chip.\r\n With the chip centred, anchoring to the chip put the popover's left edge at ~120px and its right\r\n edge past the widget — clipped by `.cv-softphone { overflow: hidden }`, which is the classic\r\n absolute-inside-overflow bug. Anchoring to the full row makes overflowing arithmetically\r\n impossible: `left:0; right:0` cannot be wider than the row that contains it. */\r\n.cv-cp {\r\n position: relative;\r\n display: flex;\r\n justify-content: center;\r\n width: 100%;\r\n}\r\n/* A PILL, with a resting surface and a border.\r\n This was `border: none; background: none` — invisible until hover, so it read as a label rather\r\n than a control. That was survivable when it sat inline beside the number; alone on its own row it\r\n is just floating text, and nothing says \"you can change this\". A control that changes state has to\r\n look like one at rest, not only under a cursor that may never arrive (touch has no hover at all). */\r\n.cv-cp-chip {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.3rem;\r\n height: 30px;\r\n padding: 0 0.5rem 0 0.4rem;\r\n border: 1px solid var(--cv-border-strong);\r\n border-radius: 999px;\r\n background: var(--cv-surface);\r\n color: var(--cv-text);\r\n font: 600 0.8rem var(--cv-font);\r\n cursor: pointer;\r\n transition: background 0.15s, border-color 0.15s;\r\n}\r\n.cv-cp-chip:hover { background: var(--cv-surface-2); }\r\n.cv-cp-chip:active { transform: scale(0.95); }\r\n/* Open: the chip is the thing the list belongs to, so it stays visibly engaged while the list is up. */\r\n.cv-cp-chip[aria-expanded='true'] {\r\n background: var(--cv-accent-soft);\r\n border-color: var(--cv-accent);\r\n}\r\n.cv-cp-dial {\r\n font-variant-numeric: tabular-nums;\r\n letter-spacing: -0.02em;\r\n}\r\n.cv-cp-caret {\r\n color: var(--cv-faint);\r\n flex-shrink: 0;\r\n transition: transform 0.18s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n.cv-cp-caret[data-open='true'] { transform: rotate(180deg); }\r\n\r\n/* The country mark. TWO designed states in ONE 20×14 box (a flag's own 3:2), so the chip and every\r\n row keep their rhythm whichever is showing — nothing reflows when the flags land. The plate is the\r\n LOADING state (flags are a lazy import) and the offline state, not a fallback: there is no flash of\r\n something broken, only a designed plate becoming a designed flag, once per session.\r\n `::part(country-mark)` lets a host restyle either. */\r\n.cv-mark {\r\n width: 20px;\r\n height: 14px;\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 14px;\r\n line-height: 1;\r\n font-family: 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji', var(--cv-font);\r\n}\r\n/* The SVG fills the slot exactly; 3x2 is the flag aspect, so nothing is letterboxed or cropped. */\r\n.cv-mark-svg {\r\n width: 100%;\r\n height: 100%;\r\n display: block;\r\n border-radius: 2px;\r\n object-fit: cover;\r\n}\r\n.cv-mark[data-plate='true'] {\r\n /* The ISO code set into the slot a flag will occupy. */\r\n font-family: var(--cv-font);\r\n font-size: 8.5px;\r\n font-weight: 700;\r\n letter-spacing: 0.04em;\r\n color: var(--cv-text);\r\n background: var(--cv-surface-2);\r\n border: 1px solid var(--cv-border);\r\n border-radius: 3px;\r\n /* Cap-height letters sit optically high in a 14px box; nudge them back to centre. */\r\n padding-top: 1px;\r\n}\r\n\r\n.cv-cp-pop {\r\n position: absolute;\r\n top: calc(100% + 6px);\r\n /* Pinned to BOTH row edges, so it is bounded by the container by construction — no width guess,\r\n no media query, nothing to clip. `max-width` keeps it from looking stretched on a wide host. */\r\n left: 0;\r\n right: 0;\r\n margin-inline: auto;\r\n max-width: 260px;\r\n z-index: 20;\r\n display: flex;\r\n flex-direction: column;\r\n background: var(--cv-surface);\r\n border: 1px solid var(--cv-border);\r\n border-radius: var(--cv-radius);\r\n box-shadow: var(--cv-shadow);\r\n overflow: hidden;\r\n /* Grows from the chip it belongs to, rather than appearing on top of it. */\r\n transform-origin: top center;\r\n animation: cv-cp-in 0.14s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n@keyframes cv-cp-in {\r\n from { opacity: 0; transform: translateY(-4px) scale(0.97); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-cp-pop { animation: none; }\r\n .cv-cp-caret { transition: none; }\r\n}\r\n.cv-cp-search {\r\n flex-shrink: 0;\r\n padding: 0.5rem 0.65rem;\r\n border: none;\r\n border-bottom: 1px solid var(--cv-border);\r\n background: none;\r\n color: var(--cv-text);\r\n font: 400 0.8rem var(--cv-font);\r\n outline: none;\r\n}\r\n.cv-cp-search::placeholder { color: var(--cv-faint); }\r\n/* Both states named explicitly. In the CRM the widget mounts via `/ui`, i.e. in the LIGHT DOM — none\r\n of the shadow-DOM isolation the web-component playground proves applies there, so a host's focus\r\n ring (or the browser's own) can land on our input. The accent underline IS the focus indicator. */\r\n.cv-cp-search:focus,\r\n.cv-cp-search:focus-visible {\r\n outline: none;\r\n border-bottom-color: var(--cv-accent);\r\n border-bottom-width: 2px;\r\n padding-bottom: calc(0.5rem - 1px);\r\n}\r\n.cv-cp-list {\r\n overflow-y: auto;\r\n max-height: 220px;\r\n padding: 0.25rem;\r\n}\r\n.cv-cp-item {\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n padding: 0.4rem 0.45rem;\r\n border: none;\r\n border-radius: calc(var(--cv-radius) - 4px);\r\n background: none;\r\n color: var(--cv-text);\r\n font: 400 0.8rem var(--cv-font);\r\n text-align: left;\r\n cursor: pointer;\r\n}\r\n.cv-cp-item:hover { background: var(--cv-surface-2); }\r\n/* The current country is stated by the row, not only by a tick at the far right. */\r\n.cv-cp-item[aria-selected='true'] { background: var(--cv-accent-soft); }\r\n.cv-cp-item[aria-selected='true'] .cv-cp-name { font-weight: 600; }\r\n.cv-cp-name {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n.cv-cp-item .cv-cp-dial {\r\n color: var(--cv-muted);\r\n font-weight: 400;\r\n}\r\n.cv-cp-check { color: var(--cv-accent-strong); flex-shrink: 0; }\r\n.cv-cp-check[data-on='false'] { opacity: 0; }\r\n.cv-cp-empty {\r\n margin: 0;\r\n padding: 1rem 0.5rem;\r\n text-align: center;\r\n color: var(--cv-muted);\r\n font-size: 0.78rem;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/scheduler/cjs/scheduler.production.min.js","../../../../node_modules/scheduler/index.js","../../../../node_modules/react-dom/cjs/react-dom.production.min.js","../../../../node_modules/react-dom/index.js","../../../../node_modules/react-dom/client.js","../../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../../node_modules/react/jsx-runtime.js","../../src/element/index.ts","../../src/react/context.tsx","../../src/ui/SoftphoneWidget.tsx","../../../../node_modules/shared/src/utils.ts","../../../../node_modules/lucide-react/src/defaultAttributes.ts","../../../../node_modules/lucide-react/src/Icon.ts","../../../../node_modules/lucide-react/src/createLucideIcon.ts","../../../../node_modules/lucide-react/src/icons/arrow-left-right.ts","../../../../node_modules/lucide-react/src/icons/arrow-left.ts","../../../../node_modules/lucide-react/src/icons/arrow-right.ts","../../../../node_modules/lucide-react/src/icons/calendar-clock.ts","../../../../node_modules/lucide-react/src/icons/check.ts","../../../../node_modules/lucide-react/src/icons/chevron-down.ts","../../../../node_modules/lucide-react/src/icons/chevron-right.ts","../../../../node_modules/lucide-react/src/icons/circle-help.ts","../../../../node_modules/lucide-react/src/icons/clock.ts","../../../../node_modules/lucide-react/src/icons/delete.ts","../../../../node_modules/lucide-react/src/icons/external-link.ts","../../../../node_modules/lucide-react/src/icons/grid-3x3.ts","../../../../node_modules/lucide-react/src/icons/hash.ts","../../../../node_modules/lucide-react/src/icons/headphones.ts","../../../../node_modules/lucide-react/src/icons/loader-circle.ts","../../../../node_modules/lucide-react/src/icons/mic-off.ts","../../../../node_modules/lucide-react/src/icons/mic.ts","../../../../node_modules/lucide-react/src/icons/monitor-smartphone.ts","../../../../node_modules/lucide-react/src/icons/pause.ts","../../../../node_modules/lucide-react/src/icons/phone-incoming.ts","../../../../node_modules/lucide-react/src/icons/phone-missed.ts","../../../../node_modules/lucide-react/src/icons/phone-off.ts","../../../../node_modules/lucide-react/src/icons/phone-outgoing.ts","../../../../node_modules/lucide-react/src/icons/phone.ts","../../../../node_modules/lucide-react/src/icons/play.ts","../../../../node_modules/lucide-react/src/icons/search.ts","../../../../node_modules/lucide-react/src/icons/settings.ts","../../../../node_modules/lucide-react/src/icons/timer.ts","../../../../node_modules/lucide-react/src/icons/triangle-alert.ts","../../../../node_modules/lucide-react/src/icons/user.ts","../../../../node_modules/lucide-react/src/icons/users.ts","../../../../node_modules/lucide-react/src/icons/x.ts","../../src/react/hooks.ts","../../src/ui/views/Dialpad.tsx","../../src/ui/dialing/CountryPicker.tsx","../../src/ui/dialing/countries.ts","../../src/ui/dialing/format-number.ts","../../src/ui/dialing/keys.ts","../../src/ui/audio/audio.ts","../../src/ui/views/CallScreen.tsx","../../src/ui/lib/format.ts","../../src/ui/lib/error-text.ts","../../src/ui/lib/useTicker.ts","../../src/ui/views/DevicePicker.tsx","../../src/ui/views/ContactsTab.tsx","../../src/ui/views/DetailRow.tsx","../../src/ui/views/ContactDetail.tsx","../../src/ui/lib/useInfiniteList.ts","../../src/ui/views/HistoryTab.tsx","../../src/ui/views/HistoryDetail.tsx","../../src/ui/views/history-format.tsx","../../src/ui/views/SettingsSection.tsx","../../src/ui/views/SettingsTab.tsx","../../src/ui/permission/useMicPermission.ts","../../src/core/env.ts","../../src/ui/permission/unblock-mic.ts","../../src/ui/permission/MicPermissionGate.tsx","../../src/ui/permission/ErrorGate.tsx","../../src/ui/permission/LeaderGate.tsx","../../src/ui/lib/useCallOutcome.ts","../../src/ui/audio/useCallAudio.ts","../../src/ui/notices/TransferNotices.tsx","../../src/ui/notices/useTransferNotices.ts","../../src/styles/softphone.css"],"names":["a","b","d","e","g","h","k","c","f","l","m","n","t","X","import_react","import_jsx_runtime","Icon","formatIntl","loading","PAGE"],"mappings":";;;;AAAA,IAAA,gCAAA,GAAA,UAAA,CAAA;AAAA,EAAA,8DAAA,CAAA,OAAA,EAAA;AASa,IAAA,SAAS,CAAA,CAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,MAAA;AAAO,MAAA,CAAA,CAAE,KAAK,CAAC,CAAA;AAAE,MAAA,CAAA,EAAE,OAAK,IAAE,CAAA,IAAG;AAAC,QAAA,IAAI,IAAE,CAAA,GAAE,CAAA,KAAI,CAAA,EAAE,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,QAAA,IAAG,CAAA,GAAE,CAAA,CAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,GAAE,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA;AAAA,aAAO,MAAM,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,EAAE,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,KAAI,CAAA,CAAE,MAAA,GAAO,IAAA,GAAK,EAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,KAAI,CAAA,CAAE,MAAA,EAAO,OAAO,IAAA;AAAK,MAAA,IAAI,IAAE,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,GAAE,EAAE,GAAA,EAAI;AAAE,MAAA,IAAG,MAAI,CAAA,EAAE;AAAC,QAAA,CAAA,CAAE,CAAC,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,EAAE,KAAA,IAAQ,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,QAAO,CAAA,GAAE,CAAA,KAAI,CAAA,EAAE,CAAA,GAAE,CAAA,IAAG;AAAC,UAAA,IAAI,CAAA,GAAE,CAAA,IAAG,CAAA,GAAE,CAAA,CAAA,GAAG,GAAE,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,UAAA,IAAG,CAAA,GAAE,CAAA,CAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,IAAG,CAAA,GAAE,CAAA,CAAE,CAAA,EAAE,CAAC,CAAA,IAAG,EAAE,CAAC,CAAA,GAAE,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,KAAI,CAAA,CAAE,CAAC,CAAA,GAAE,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA,CAAA;AAAA,eAAA,IAAW,CAAA,GAAE,CAAA,IAAG,CAAA,GAAE,CAAA,CAAE,GAAE,CAAC,CAAA,EAAE,CAAA,CAAE,CAAC,IAAE,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA;AAAA,eAAO,MAAM,CAAA;AAAA,QAAC;AAAA,MAAC;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AAC3c,IAAA,SAAS,CAAA,CAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,CAAE,SAAA,GAAU,CAAA,CAAE,SAAA;AAAU,MAAA,OAAO,CAAA,KAAI,CAAA,GAAE,CAAA,GAAE,CAAA,CAAE,KAAG,CAAA,CAAE,EAAA;AAAA,IAAE;AAAC,IAAA,IAAG,aAAW,OAAO,WAAA,IAAa,UAAA,KAAa,OAAO,YAAY,GAAA,EAAI;AAAK,MAAA,CAAA,GAAE,WAAA;AAAY,MAAA,OAAA,CAAQ,eAAa,WAAU;AAAC,QAAA,OAAO,EAAE,GAAA,EAAI;AAAA,MAAC,CAAA;AAAA,IAAC,CAAA,MAAK;AAAK,MAAA,CAAA,GAAE,IAAA,EAAK,CAAA,GAAE,CAAA,CAAE,GAAA,EAAI;AAAE,MAAA,OAAA,CAAQ,eAAa,WAAU;AAAC,QAAA,OAAO,CAAA,CAAE,KAAI,GAAE,CAAA;AAAA,MAAC,CAAA;AAAA,IAAC;AAAzI,IAAA,IAAA,CAAA;AAAuE,IAAA,IAAA,CAAA;AAAO,IAAA,IAAA,CAAA;AAA4D,IAAA,IAAI,IAAE,EAAC;AAAP,IAAA,IAAS,IAAE,EAAC;AAAZ,IAAA,IAAc,CAAA,GAAE,CAAA;AAAhB,IAAA,IAAkB,CAAA,GAAE,IAAA;AAApB,IAAA,IAAyB,CAAA,GAAE,CAAA;AAA3B,IAAA,IAA6B,CAAA,GAAE,KAAA;AAA/B,IAAA,IAAkC,CAAA,GAAE,KAAA;AAApC,IAAA,IAAuC,CAAA,GAAE,KAAA;AAAzC,IAAA,IAA4C,CAAA,GAAE,UAAA,KAAa,OAAO,UAAA,GAAW,UAAA,GAAW,IAAA;AAAxF,IAAA,IAA6F,CAAA,GAAE,UAAA,KAAa,OAAO,YAAA,GAAa,YAAA,GAAa,IAAA;AAA7I,IAAA,IAAkJ,CAAA,GAAE,WAAA,KAAc,OAAO,YAAA,GAAa,YAAA,GAAa,IAAA;AAC/d,IAAA,WAAA,KAAc,OAAO,SAAA,IAAW,MAAA,KAAS,SAAA,CAAU,cAAY,MAAA,KAAS,SAAA,CAAU,UAAA,CAAW,cAAA,IAAgB,SAAA,CAAU,UAAA,CAAW,cAAA,CAAe,IAAA,CAAK,UAAU,UAAU,CAAA;AAAE,IAAA,SAAS,EAAE,CAAA,EAAE;AAAC,MAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,EAAE,SAAO,CAAA,IAAG;AAAC,QAAA,IAAG,IAAA,KAAO,CAAA,CAAE,QAAA,EAAS,CAAA,CAAE,CAAC,CAAA;AAAA,aAAA,IAAU,CAAA,CAAE,SAAA,IAAW,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,CAAE,SAAA,GAAU,CAAA,CAAE,cAAA,EAAe,CAAA,CAAE,CAAA,EAAE,CAAC,CAAA;AAAA,aAAO;AAAM,QAAA,CAAA,GAAE,EAAE,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,KAAA;AAAG,MAAA,CAAA,CAAE,CAAC,CAAA;AAAE,MAAA,IAAG,CAAC,CAAA,EAAE,IAAG,IAAA,KAAO,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,GAAE,IAAA,EAAG,CAAA,CAAE,CAAC,CAAA;AAAA,WAAM;AAAC,QAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,QAAA,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,YAAU,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AACra,IAAA,SAAS,CAAA,CAAE,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,KAAA;AAAG,MAAA,CAAA,KAAI,CAAA,GAAE,KAAA,EAAG,CAAA,CAAE,CAAC,GAAE,CAAA,GAAE,EAAA,CAAA;AAAI,MAAA,CAAA,GAAE,IAAA;AAAG,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG;AAAC,QAAA,CAAA,CAAE,CAAC,CAAA;AAAE,QAAA,KAAI,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA,KAAO,CAAA,KAAI,EAAE,CAAA,CAAE,cAAA,GAAe,CAAA,CAAA,IAAI,CAAA,IAAG,CAAC,GAAE,CAAA,IAAI;AAAC,UAAA,IAAI,IAAE,CAAA,CAAE,QAAA;AAAS,UAAA,IAAG,UAAA,KAAa,OAAO,CAAA,EAAE;AAAC,YAAA,CAAA,CAAE,QAAA,GAAS,IAAA;AAAK,YAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,YAAA,IAAI,CAAA,GAAE,CAAA,CAAE,CAAA,CAAE,cAAA,IAAgB,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,QAAQ,YAAA,EAAa;AAAE,YAAA,UAAA,KAAa,OAAO,CAAA,GAAE,CAAA,CAAE,QAAA,GAAS,CAAA,GAAE,MAAI,CAAA,CAAE,CAAC,CAAA,IAAG,CAAA,CAAE,CAAC,CAAA;AAAE,YAAA,CAAA,CAAE,CAAC,CAAA;AAAA,UAAC,CAAA,QAAQ,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,EAAE,CAAC,CAAA;AAAA,QAAC;AAAC,QAAA,IAAG,IAAA,KAAO,CAAA,EAAE,IAAI,CAAA,GAAE,IAAA;AAAA,aAAO;AAAC,UAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,UAAA,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,YAAU,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,KAAA;AAAA,QAAE;AAAC,QAAA,OAAO,CAAA;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,CAAA,GAAE,IAAA,EAAK,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,KAAA;AAAA,MAAE;AAAA,IAAC;AAAC,IAAA,IAAI,CAAA,GAAE,KAAA;AAAN,IAAA,IAAS,CAAA,GAAE,IAAA;AAAX,IAAA,IAAgB,CAAA,GAAE,EAAA;AAAlB,IAAA,IAAqB,CAAA,GAAE,CAAA;AAAvB,IAAA,IAAyB,CAAA,GAAE,EAAA;AACtc,IAAA,SAAS,CAAA,GAAG;AAAC,MAAA,OAAO,OAAA,CAAQ,YAAA,EAAa,GAAE,CAAA,GAAE,IAAE,KAAA,GAAG,IAAA;AAAA,IAAE;AAAC,IAAA,SAAS,CAAA,GAAG;AAAC,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,QAAQ,YAAA,EAAa;AAAE,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,IAAI,CAAA,GAAE,IAAA;AAAG,QAAA,IAAG;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,MAAG,CAAC,CAAA;AAAA,QAAC,CAAA,SAAC;AAAQ,UAAA,CAAA,GAAE,CAAA,EAAE,IAAG,CAAA,GAAE,KAAA,EAAG,CAAA,GAAE,IAAA,CAAA;AAAA,QAAK;AAAA,MAAC,OAAM,CAAA,GAAE,KAAA;AAAA,IAAE;AAAC,IAAA,IAAI,CAAA;AAAE,IAAA,IAAG,UAAA,KAAa,OAAO,CAAA,EAAE,CAAA,GAAE,WAAU;AAAC,MAAA,CAAA,CAAE,CAAC,CAAA;AAAA,IAAC,CAAA;AAAA,SAAA,IAAU,WAAA,KAAc,OAAO,cAAA,EAAe;AAAK,MAAA,CAAA,GAAE,IAAI,cAAA,EAAA,EAAe,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,MAAA,CAAA,CAAE,MAAM,SAAA,GAAU,CAAA;AAAE,MAAA,CAAA,GAAE,WAAU;AAAC,QAAA,CAAA,CAAE,YAAY,IAAI,CAAA;AAAA,MAAC,CAAA;AAAA,IAAC,CAAA,UAAQ,WAAU;AAAC,MAAA,CAAA,CAAE,GAAE,CAAC,CAAA;AAAA,IAAC,CAAA;AAA7G,IAAA,IAAA,CAAA;AAAqB,IAAA,IAAA,CAAA;AAA0F,IAAA,SAAS,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,KAAI,CAAA,GAAE,MAAG,CAAA,EAAE,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,CAAA,CAAE,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAE,WAAU;AAAC,QAAA,CAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,MAAC,GAAE,CAAC,CAAA;AAAA,IAAC;AAC5d,IAAA,OAAA,CAAQ,qBAAA,GAAsB,CAAA;AAAE,IAAA,OAAA,CAAQ,0BAAA,GAA2B,CAAA;AAAE,IAAA,OAAA,CAAQ,oBAAA,GAAqB,CAAA;AAAE,IAAA,OAAA,CAAQ,uBAAA,GAAwB,CAAA;AAAE,IAAA,OAAA,CAAQ,kBAAA,GAAmB,IAAA;AAAK,IAAA,OAAA,CAAQ,6BAAA,GAA8B,CAAA;AAAE,IAAA,OAAA,CAAQ,uBAAA,GAAwB,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,QAAA,GAAS,IAAA;AAAA,IAAI,CAAA;AAAE,IAAA,OAAA,CAAQ,6BAA2B,WAAU;AAAC,MAAA,CAAA,IAAG,CAAA,KAAI,CAAA,GAAE,IAAA,EAAG,CAAA,CAAE,CAAC,CAAA,CAAA;AAAA,IAAE,CAAA;AAC1U,IAAA,OAAA,CAAQ,uBAAA,GAAwB,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,IAAG,GAAA,GAAI,CAAA,GAAE,OAAA,CAAQ,MAAM,iHAAiH,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,IAAA,CAAK,KAAA,CAAM,GAAA,GAAI,CAAC,CAAA,GAAE,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,OAAA,CAAQ,mCAAiC,WAAU;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,OAAA,CAAQ,gCAA8B,WAAU;AAAC,MAAA,OAAO,EAAE,CAAC,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,OAAA,CAAQ,aAAA,GAAc,SAAS,CAAA,EAAE;AAAC,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,IAAI,CAAA,GAAE,CAAA;AAAE,UAAA;AAAA,QAAM;AAAQ,UAAA,CAAA,GAAE,CAAA;AAAA;AAAE,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG;AAAC,QAAA,OAAO,CAAA,EAAE;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,CAAA,GAAE,CAAA;AAAA,MAAC;AAAA,IAAC,CAAA;AAAE,IAAA,OAAA,CAAQ,0BAAwB,WAAU;AAAA,IAAC,CAAA;AAC9f,IAAA,OAAA,CAAQ,wBAAsB,WAAU;AAAA,IAAC,CAAA;AAAE,IAAA,OAAA,CAAQ,wBAAA,GAAyB,SAAS,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA;AAAA,QAAM;AAAQ,UAAA,CAAA,GAAE,CAAA;AAAA;AAAE,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG;AAAC,QAAA,OAAO,CAAA,EAAE;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,CAAA,GAAE,CAAA;AAAA,MAAC;AAAA,IAAC,CAAA;AAChM,IAAA,OAAA,CAAQ,yBAAA,GAA0B,SAAS,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,QAAQ,YAAA,EAAa;AAAE,MAAA,QAAA,KAAW,OAAO,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,CAAA,GAAE,EAAE,KAAA,EAAM,CAAA,GAAE,QAAA,KAAW,OAAO,KAAG,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,KAAG,CAAA,GAAE,CAAA;AAAE,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,CAAA;AAAE,UAAA,IAAI,CAAA,GAAE,EAAA;AAAG,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,CAAA,GAAE,GAAA;AAAI,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,CAAA,GAAE,UAAA;AAAW,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,CAAA,GAAE,GAAA;AAAI,UAAA;AAAA,QAAM;AAAQ,UAAA,CAAA,GAAE,GAAA;AAAA;AAAI,MAAA,CAAA,GAAE,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,GAAE,EAAC,EAAA,EAAG,CAAA,EAAA,EAAI,QAAA,EAAS,CAAA,EAAE,aAAA,EAAc,CAAA,EAAE,SAAA,EAAU,CAAA,EAAE,cAAA,EAAe,CAAA,EAAE,SAAA,EAAU,EAAA,EAAE;AAAE,MAAA,CAAA,GAAE,KAAG,CAAA,CAAE,SAAA,GAAU,GAAE,CAAA,CAAE,CAAA,EAAE,CAAC,CAAA,EAAE,IAAA,KAAO,CAAA,CAAE,CAAC,KAAG,CAAA,KAAI,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA,IAAG,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,EAAA,IAAI,IAAE,IAAA,EAAG,CAAA,CAAE,GAAE,CAAA,GAAE,CAAC,OAAK,CAAA,CAAE,SAAA,GAAU,GAAE,CAAA,CAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,IAAG,MAAI,CAAA,GAAE,IAAA,EAAG,EAAE,CAAC,CAAA,CAAA,CAAA;AAAI,MAAA,OAAO,CAAA;AAAA,IAAC,CAAA;AACne,IAAA,OAAA,CAAQ,oBAAA,GAAqB,CAAA;AAAE,IAAA,OAAA,CAAQ,qBAAA,GAAsB,SAAS,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,OAAO,WAAU;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,IAAG;AAAC,UAAA,OAAO,CAAA,CAAE,KAAA,CAAM,IAAA,EAAK,SAAS,CAAA;AAAA,QAAC,CAAA,SAAC;AAAQ,UAAA,CAAA,GAAE,CAAA;AAAA,QAAC;AAAA,MAAC,CAAA;AAAA,IAAC,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;AClB/J,IAAA,iBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,uCAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAEA,IAA2C;AACzC,MAAA,MAAA,CAAO,OAAA,GAAU,gCAAA,EAAA;AAAA,IACnB;AAEA,EAAA;AAAA,CAAA,CAAA;;;ACNA,IAAA,gCAAA,GAAA,UAAA,CAAA;AAAA,EAAA,8DAAA,CAAA,OAAA,EAAA;AAYa,IAAA,IAAI,EAAA,GAAG,aAAA,EAAA;AAAP,IAAA,IAAwB,EAAA,GAAG,iBAAA,EAAA;AAAqB,IAAA,SAAS,EAAE,CAAA,EAAE;AAAC,MAAA,KAAA,IAAQ,CAAA,GAAE,wDAAA,GAAyD,CAAA,EAAE,CAAA,GAAE,GAAE,CAAA,GAAE,SAAA,CAAU,MAAA,EAAO,CAAA,EAAA,EAAI,CAAA,IAAG,UAAA,GAAW,kBAAA,CAAmB,SAAA,CAAU,CAAC,CAAC,CAAA;AAAE,MAAA,OAAM,wBAAA,GAAyB,CAAA,GAAE,UAAA,GAAW,CAAA,GAAE,gHAAA;AAAA,IAAgH;AAAC,IAAA,IAAI,qBAAG,IAAI,GAAA,EAAA;AAAX,IAAA,IAAe,KAAG,EAAC;AAAE,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,GAAE,WAAU,CAAC,CAAA;AAAA,IAAC;AACxb,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,CAAC,CAAA,GAAE,CAAA;AAAE,MAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,KAAI,EAAA,CAAG,GAAA,CAAI,CAAA,CAAE,CAAC,CAAC,CAAA;AAAA,IAAC;AAC5D,IAAA,IAAI,EAAA,GAAG,EAAE,WAAA,KAAc,OAAO,MAAA,IAAQ,WAAA,KAAc,OAAO,MAAA,CAAO,QAAA,IAAU,WAAA,KAAc,OAAO,MAAA,CAAO,QAAA,CAAS,aAAA,CAAA;AAAjH,IAAA,IAAgI,EAAA,GAAG,OAAO,SAAA,CAAU,cAAA;AAApJ,IAAA,IAAmK,EAAA,GAAG,6VAAA;AAAtK,IAAA,IAAogB,KACpgB,EAAC;AADD,IAAA,IACG,KAAG,EAAC;AAAE,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,CAAG,IAAA,CAAK,EAAA,EAAG,CAAC,GAAE,OAAM,IAAA;AAAG,MAAA,IAAG,EAAA,CAAG,IAAA,CAAK,EAAA,EAAG,CAAC,GAAE,OAAM,KAAA;AAAG,MAAA,IAAG,GAAG,IAAA,CAAK,CAAC,GAAE,OAAO,EAAA,CAAG,CAAC,CAAA,GAAE,IAAA;AAAG,MAAA,EAAA,CAAG,CAAC,CAAA,GAAE,IAAA;AAAG,MAAA,OAAM,KAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,IAAA,KAAO,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,MAAK,OAAM,KAAA;AAAG,MAAA,QAAO,OAAO,CAAA;AAAE,QAAC,KAAK,UAAA;AAAA,QAAW,KAAK,QAAA;AAAS,UAAA,OAAM,IAAA;AAAA,QAAG,KAAK,SAAA;AAAU,UAAA,IAAG,GAAE,OAAM,KAAA;AAAG,UAAA,IAAG,IAAA,KAAO,CAAA,EAAE,OAAM,CAAC,CAAA,CAAE,eAAA;AAAgB,UAAA,CAAA,GAAE,CAAA,CAAE,WAAA,EAAY,CAAE,KAAA,CAAM,GAAE,CAAC,CAAA;AAAE,UAAA,OAAM,OAAA,KAAU,KAAG,OAAA,KAAU,CAAA;AAAA,QAAE;AAAQ,UAAA,OAAM,KAAA;AAAA;AAAE,IAAC;AACzX,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,IAAA,KAAO,CAAA,IAAG,WAAA,KAAc,OAAO,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,OAAM,IAAA;AAAG,MAAA,IAAG,GAAE,OAAM,KAAA;AAAG,MAAA,IAAG,IAAA,KAAO,CAAA,EAAE,QAAO,CAAA,CAAE,IAAA;AAAK,QAAC,KAAK,CAAA;AAAE,UAAA,OAAM,CAAC,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAM,KAAA,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,MAAM,CAAC,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,KAAA,CAAM,CAAC,CAAA,IAAG,CAAA,GAAE,CAAA;AAAA;AAAE,MAAA,OAAM,KAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAA,CAAK,eAAA,GAAgB,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,KAAG,CAAA,KAAI,CAAA;AAAE,MAAA,IAAA,CAAK,aAAA,GAAc,CAAA;AAAE,MAAA,IAAA,CAAK,kBAAA,GAAmB,CAAA;AAAE,MAAA,IAAA,CAAK,eAAA,GAAgB,CAAA;AAAE,MAAA,IAAA,CAAK,YAAA,GAAa,CAAA;AAAE,MAAA,IAAA,CAAK,IAAA,GAAK,CAAA;AAAE,MAAA,IAAA,CAAK,WAAA,GAAY,CAAA;AAAE,MAAA,IAAA,CAAK,iBAAA,GAAkB,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,IAAE,EAAC;AACpb,IAAA,sIAAA,CAAuI,KAAA,CAAM,GAAG,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,GAAE,KAAA,EAAG,CAAA,EAAE,IAAA,EAAK,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAAE,IAAA,CAAC,CAAC,eAAA,EAAgB,gBAAgB,GAAE,CAAC,WAAA,EAAY,OAAO,CAAA,EAAE,CAAC,WAAU,KAAK,CAAA,EAAE,CAAC,WAAA,EAAY,YAAY,CAAC,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,CAAA,EAAE,KAAA,EAAG,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA,EAAK,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAAE,IAAA,CAAC,mBAAkB,WAAA,EAAY,YAAA,EAAa,OAAO,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,CAAA,EAAE,KAAA,EAAG,CAAA,CAAE,WAAA,EAAY,EAAE,IAAA,EAAK,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAC3e,IAAA,CAAC,eAAc,2BAAA,EAA4B,WAAA,EAAY,eAAe,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,GAAE,KAAA,EAAG,CAAA,EAAE,IAAA,EAAK,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAAE,IAAA,6OAAA,CAA8O,KAAA,CAAM,GAAG,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,CAAA,EAAE,KAAA,EAAG,CAAA,CAAE,WAAA,EAAY,EAAE,IAAA,EAAK,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AACzb,IAAA,CAAC,WAAU,UAAA,EAAW,OAAA,EAAQ,UAAU,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,GAAE,IAAA,EAAG,CAAA,EAAE,IAAA,EAAK,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAAE,IAAA,CAAC,SAAA,EAAU,UAAU,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,GAAE,KAAA,EAAG,CAAA,EAAE,IAAA,EAAK,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAAE,IAAA,CAAC,QAAO,MAAA,EAAO,MAAA,EAAO,MAAM,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,GAAE,KAAA,EAAG,CAAA,EAAE,IAAA,EAAK,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAAE,IAAA,CAAC,SAAA,EAAU,OAAO,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,CAAA,EAAE,KAAA,EAAG,CAAA,CAAE,WAAA,EAAY,EAAE,IAAA,EAAK,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAAE,IAAA,IAAI,EAAA,GAAG,eAAA;AAAgB,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,CAAC,CAAA,CAAE,WAAA,EAAY;AAAA,IAAC;AACxZ,IAAA,yjCAAA,CAA0jC,KAAA,CAAM,GAAG,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAA,QAAQ,EAAA;AAAA,QACzmC;AAAA,OAAE;AAAE,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,GAAE,KAAA,EAAG,CAAA,EAAE,IAAA,EAAK,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAAE,IAAA,0EAAA,CAA2E,KAAA,CAAM,GAAG,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,CAAE,OAAA,CAAQ,EAAA,EAAG,EAAE,CAAA;AAAE,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,GAAE,KAAA,EAAG,CAAA,EAAE,8BAAA,EAA+B,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAAE,IAAA,CAAC,YAAW,UAAA,EAAW,WAAW,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,CAAE,OAAA,CAAQ,EAAA,EAAG,EAAE,CAAA;AAAE,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,GAAE,KAAA,EAAG,CAAA,EAAE,sCAAA,EAAuC,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAAE,IAAA,CAAC,UAAA,EAAW,aAAa,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,CAAA,EAAE,KAAA,EAAG,CAAA,CAAE,WAAA,EAAY,EAAE,IAAA,EAAK,KAAA,EAAG,KAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AACnd,IAAA,CAAA,CAAE,SAAA,GAAU,IAAI,CAAA,CAAE,WAAA,EAAY,GAAE,KAAA,EAAG,YAAA,EAAa,8BAAA,EAA+B,IAAA,EAAG,KAAE,CAAA;AAAE,IAAA,CAAC,OAAM,MAAA,EAAO,QAAA,EAAS,YAAY,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,CAAA,EAAE,KAAA,EAAG,CAAA,CAAE,WAAA,EAAY,EAAE,IAAA,EAAK,IAAA,EAAG,IAAE,CAAA;AAAA,IAAC,CAAC,CAAA;AAC7L,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,cAAA,CAAe,CAAC,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,GAAE,IAAA;AAAK,MAAA,IAAG,IAAA,KAAO,IAAE,CAAA,KAAI,CAAA,CAAE,OAAK,CAAA,IAAG,EAAE,CAAA,GAAE,CAAA,CAAE,MAAA,CAAA,IAAS,GAAA,KAAM,EAAE,CAAC,CAAA,IAAG,QAAM,CAAA,CAAE,CAAC,KAAG,GAAA,KAAM,CAAA,CAAE,CAAC,CAAA,IAAG,GAAA,KAAM,CAAA,CAAE,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,KAAI,CAAA,GAAE,IAAA,CAAA,EAAM,CAAA,IAAG,IAAA,KAAO,CAAA,GAAE,GAAG,CAAC,CAAA,KAAI,SAAO,CAAA,GAAE,CAAA,CAAE,gBAAgB,CAAC,CAAA,GAAE,CAAA,CAAE,YAAA,CAAa,CAAA,EAAE,EAAA,GAAG,CAAC,CAAA,CAAA,GAAG,CAAA,CAAE,kBAAgB,CAAA,CAAE,CAAA,CAAE,YAAY,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,CAAA,KAAI,CAAA,CAAE,IAAA,GAAK,QAAG,EAAA,GAAG,CAAA,IAAG,IAAE,CAAA,CAAE,aAAA,EAAc,IAAE,CAAA,CAAE,kBAAA,EAAmB,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,eAAA,CAAgB,CAAC,CAAA,IAAG,CAAA,GAAE,EAAE,IAAA,EAAK,CAAA,GAAE,MAAI,CAAA,IAAG,CAAA,KAAI,CAAA,IAAG,IAAA,KAAK,CAAA,GAAE,EAAA,GAAG,KAAG,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,cAAA,CAAe,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,GAAE,CAAA,CAAE,YAAA,CAAa,CAAA,EAAE,CAAC,CAAA,CAAA,CAAA;AAAA,IAAG;AACjd,IAAA,IAAI,KAAG,EAAA,CAAG,kDAAA;AAAV,IAAA,IAA6D,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,eAAe,CAAA;AAA1F,IAAA,IAA4F,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,cAAc,CAAA;AAAxH,IAAA,IAA0H,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA;AAAxJ,IAAA,IAA0J,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,mBAAmB,CAAA;AAA3L,IAAA,IAA6L,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA;AAA3N,IAAA,IAA6N,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA;AAA3P,IAAA,IAA6P,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,eAAe,CAAA;AAA1R,IAAA,IAA4R,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,mBAAmB,CAAA;AAA7T,IAAA,IAA+T,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA;AAA7V,IAAA,IAA+V,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,qBAAqB,CAAA;AAAlY,IAAA,IAAoY,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,YAAY,CAAA;AAA9Z,IAAA,IAAga,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,YAAY,CAAA;AAC1b,IAAA,IAAI,EAAA,mBAAG,MAAA,CAAO,GAAA,CAAI,iBAAiB,CAAA;AAAiG,IAAA,IAAI,KAAG,MAAA,CAAO,QAAA;AAAS,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,IAAA,KAAO,CAAA,IAAG,QAAA,KAAW,OAAO,GAAE,OAAO,IAAA;AAAK,MAAA,CAAA,GAAE,EAAA,IAAI,CAAA,CAAE,EAAE,CAAA,IAAG,EAAE,YAAY,CAAA;AAAE,MAAA,OAAM,UAAA,KAAa,OAAO,CAAA,GAAE,CAAA,GAAE,IAAA;AAAA,IAAI;AAAC,IAAA,IAAI,IAAE,MAAA,CAAO,MAAA;AAAb,IAAA,IAAoB,EAAA;AAAG,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,MAAA,KAAS,IAAG,IAAG;AAAC,QAAA,MAAM,KAAA,EAAM;AAAA,MAAE,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,KAAA,CAAM,IAAA,EAAK,CAAE,MAAM,cAAc,CAAA;AAAE,QAAA,EAAA,GAAG,CAAA,IAAG,CAAA,CAAE,CAAC,CAAA,IAAG,EAAA;AAAA,MAAE;AAAC,MAAA,OAAM,OAAK,EAAA,GAAG,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,KAAA;AACzb,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAC,CAAA,IAAG,EAAA,EAAG,OAAM,EAAA;AAAG,MAAA,EAAA,GAAG,IAAA;AAAG,MAAA,IAAI,IAAE,KAAA,CAAM,iBAAA;AAAkB,MAAA,KAAA,CAAM,iBAAA,GAAkB,MAAA;AAAO,MAAA,IAAG;AAAC,QAAA,IAAG,CAAA,EAAE,IAAG,CAAA,GAAE,WAAU;AAAC,UAAA,MAAM,KAAA,EAAM;AAAA,QAAE,CAAA,EAAE,OAAO,cAAA,CAAe,CAAA,CAAE,WAAU,OAAA,EAAQ,EAAC,KAAI,WAAU;AAAC,UAAA,MAAM,KAAA,EAAM;AAAA,QAAE,GAAE,CAAA,EAAE,aAAW,OAAO,OAAA,IAAS,QAAQ,SAAA,EAAU;AAAC,UAAA,IAAG;AAAC,YAAA,OAAA,CAAQ,SAAA,CAAU,CAAA,EAAE,EAAE,CAAA;AAAA,UAAC,SAAO,CAAA,EAAE;AAAC,YAAA,IAAI,CAAA,GAAE,CAAA;AAAA,UAAC;AAAC,UAAA,OAAA,CAAQ,SAAA,CAAU,CAAA,EAAE,EAAC,EAAE,CAAC,CAAA;AAAA,QAAC,CAAA,MAAK;AAAC,UAAA,IAAG;AAAC,YAAA,CAAA,CAAE,IAAA,EAAK;AAAA,UAAC,SAAO,CAAA,EAAE;AAAC,YAAA,CAAA,GAAE,CAAA;AAAA,UAAC;AAAC,UAAA,CAAA,CAAE,IAAA,CAAK,EAAE,SAAS,CAAA;AAAA,QAAC;AAAA,aAAK;AAAC,UAAA,IAAG;AAAC,YAAA,MAAM,KAAA,EAAM;AAAA,UAAE,SAAO,CAAA,EAAE;AAAC,YAAA,CAAA,GAAE,CAAA;AAAA,UAAC;AAAC,UAAA,CAAA,EAAE;AAAA,QAAC;AAAA,MAAC,SAAO,CAAA,EAAE;AAAC,QAAA,IAAG,CAAA,IAAG,CAAA,IAAG,QAAA,KAAW,OAAO,EAAE,KAAA,EAAM;AAAC,UAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,CAAE,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA,EACvf,CAAA,GAAE,CAAA,CAAE,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,MAAA,GAAO,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,MAAA,GAAO,CAAA,EAAE,CAAA,IAAG,CAAA,IAAG,CAAA,IAAG,CAAA,IAAG,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA,CAAE,CAAC,CAAA,IAAG,CAAA,EAAA;AAAI,UAAA,OAAK,CAAA,IAAG,CAAA,IAAG,CAAA,IAAG,CAAA,EAAE,CAAA,EAAA,EAAI,CAAA,EAAA,EAAI,IAAG,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA,CAAE,CAAC,CAAA,EAAE;AAAC,YAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,EAAE;AAAC,cAAA;AAAG,gBAAA,IAAG,CAAA,EAAA,EAAI,KAAI,CAAA,GAAE,CAAA,IAAG,EAAE,CAAC,CAAA,KAAI,CAAA,CAAE,CAAC,CAAA,EAAE;AAAC,kBAAA,IAAI,IAAE,IAAA,GAAK,CAAA,CAAE,CAAC,CAAA,CAAE,OAAA,CAAQ,YAAW,MAAM,CAAA;AAAE,kBAAA,CAAA,CAAE,WAAA,IAAa,CAAA,CAAE,QAAA,CAAS,aAAa,CAAA,KAAI,IAAE,CAAA,CAAE,OAAA,CAAQ,aAAA,EAAc,CAAA,CAAE,WAAW,CAAA,CAAA;AAAG,kBAAA,OAAO,CAAA;AAAA,gBAAC;AAAA,qBAAO,CAAA,IAAG,KAAG,CAAA,IAAG,CAAA;AAAA,YAAE;AAAC,YAAA;AAAA,UAAK;AAAA,QAAC;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,EAAA,GAAG,KAAA,EAAG,MAAM,iBAAA,GAAkB,CAAA;AAAA,MAAC;AAAC,MAAA,OAAA,CAAO,CAAA,GAAE,IAAE,CAAA,CAAE,WAAA,IAAa,EAAE,IAAA,GAAK,EAAA,IAAI,EAAA,CAAG,CAAC,CAAA,GAAE,EAAA;AAAA,IAAE;AAC9Z,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,QAAO,EAAE,GAAA;AAAI,QAAC,KAAK,CAAA;AAAE,UAAA,OAAO,EAAA,CAAG,EAAE,IAAI,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,GAAG,MAAM,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,GAAG,UAAU,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,GAAG,cAAc,CAAA;AAAA,QAAE,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,GAAE,EAAA,CAAG,CAAA,CAAE,IAAA,EAAK,KAAE,CAAA,EAAE,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,IAAE,EAAA,CAAG,CAAA,CAAE,IAAA,CAAK,MAAA,EAAO,KAAE,CAAA,EAAE,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,CAAA,GAAE,EAAA,CAAG,CAAA,CAAE,IAAA,EAAK,IAAE,CAAA,EAAE,CAAA;AAAA,QAAE;AAAQ,UAAA,OAAM,EAAA;AAAA;AAAE,IAAC;AACxR,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,IAAA,IAAM,GAAE,OAAO,IAAA;AAAK,MAAA,IAAG,eAAa,OAAO,CAAA,SAAS,CAAA,CAAE,WAAA,IAAa,EAAE,IAAA,IAAM,IAAA;AAAK,MAAA,IAAG,QAAA,KAAW,OAAO,CAAA,EAAE,OAAO,CAAA;AAAE,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,EAAA;AAAG,UAAA,OAAM,UAAA;AAAA,QAAW,KAAK,EAAA;AAAG,UAAA,OAAM,QAAA;AAAA,QAAS,KAAK,EAAA;AAAG,UAAA,OAAM,UAAA;AAAA,QAAW,KAAK,EAAA;AAAG,UAAA,OAAM,YAAA;AAAA,QAAa,KAAK,EAAA;AAAG,UAAA,OAAM,UAAA;AAAA,QAAW,KAAK,EAAA;AAAG,UAAA,OAAM,cAAA;AAAA;AAAe,MAAA,IAAG,QAAA,KAAW,OAAO,CAAA,EAAE,QAAO,EAAE,QAAA;AAAS,QAAC,KAAK,EAAA;AAAG,UAAA,OAAA,CAAO,CAAA,CAAE,eAAa,SAAA,IAAW,WAAA;AAAA,QAAY,KAAK,EAAA;AAAG,UAAA,OAAA,CAAO,CAAA,CAAE,QAAA,CAAS,WAAA,IAAa,SAAA,IAAW,WAAA;AAAA,QAAY,KAAK,EAAA;AAAG,UAAA,IAAI,IAAE,CAAA,CAAE,MAAA;AAAO,UAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,UAAA,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,WAAA,IAClf,CAAA,CAAE,IAAA,IAAM,EAAA,EAAG,CAAA,GAAE,EAAA,KAAK,CAAA,GAAE,aAAA,GAAc,CAAA,GAAE,GAAA,GAAI,YAAA,CAAA;AAAc,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,GAAE,CAAA,CAAE,WAAA,IAAa,IAAA,EAAK,IAAA,KAAO,IAAE,CAAA,GAAE,EAAA,CAAG,CAAA,CAAE,IAAI,CAAA,IAAG,MAAA;AAAA,QAAO,KAAK,EAAA;AAAG,UAAA,CAAA,GAAE,CAAA,CAAE,QAAA;AAAS,UAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,UAAA,IAAG;AAAC,YAAA,OAAO,EAAA,CAAG,CAAA,CAAE,CAAC,CAAC,CAAA;AAAA,UAAC,SAAO,CAAA,EAAE;AAAA,UAAC;AAAA;AAAE,MAAA,OAAO,IAAA;AAAA,IAAI;AAC3M,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,MAAA,QAAO,EAAE,GAAA;AAAI,QAAC,KAAK,EAAA;AAAG,UAAA,OAAM,OAAA;AAAA,QAAQ,KAAK,CAAA;AAAE,UAAA,OAAA,CAAO,CAAA,CAAE,eAAa,SAAA,IAAW,WAAA;AAAA,QAAY,KAAK,EAAA;AAAG,UAAA,OAAA,CAAO,CAAA,CAAE,QAAA,CAAS,WAAA,IAAa,SAAA,IAAW,WAAA;AAAA,QAAY,KAAK,EAAA;AAAG,UAAA,OAAM,oBAAA;AAAA,QAAqB,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,CAAA,GAAE,EAAE,WAAA,IAAa,CAAA,CAAE,IAAA,IAAM,EAAA,EAAG,EAAE,WAAA,KAAc,EAAA,KAAK,CAAA,GAAE,aAAA,GAAc,IAAE,GAAA,GAAI,YAAA,CAAA;AAAA,QAAc,KAAK,CAAA;AAAE,UAAA,OAAM,UAAA;AAAA,QAAW,KAAK,CAAA;AAAE,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAM,QAAA;AAAA,QAAS,KAAK,CAAA;AAAE,UAAA,OAAM,MAAA;AAAA,QAAO,KAAK,CAAA;AAAE,UAAA,OAAM,MAAA;AAAA,QAAO,KAAK,EAAA;AAAG,UAAA,OAAO,GAAG,CAAC,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,CAAA,KAAI,KAAG,YAAA,GAAa,MAAA;AAAA,QAAO,KAAK,EAAA;AAAG,UAAA,OAAM,WAAA;AAAA,QACtf,KAAK,EAAA;AAAG,UAAA,OAAM,UAAA;AAAA,QAAW,KAAK,EAAA;AAAG,UAAA,OAAM,OAAA;AAAA,QAAQ,KAAK,EAAA;AAAG,UAAA,OAAM,UAAA;AAAA,QAAW,KAAK,EAAA;AAAG,UAAA,OAAM,cAAA;AAAA,QAAe,KAAK,EAAA;AAAG,UAAA,OAAM,eAAA;AAAA,QAAgB,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAA,QAAE,KAAK,EAAA;AAAA,QAAG,KAAK,CAAA;AAAA,QAAE,KAAK,EAAA;AAAA,QAAG,KAAK,EAAA;AAAG,UAAA,IAAG,eAAa,OAAO,CAAA,SAAS,CAAA,CAAE,WAAA,IAAa,EAAE,IAAA,IAAM,IAAA;AAAK,UAAA,IAAG,QAAA,KAAW,OAAO,CAAA,EAAE,OAAO,CAAA;AAAA;AAAE,MAAA,OAAO,IAAA;AAAA,IAAI;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,QAAO,OAAO,CAAA;AAAE,QAAC,KAAK,SAAA;AAAA,QAAU,KAAK,QAAA;AAAA,QAAS,KAAK,QAAA;AAAA,QAAS,KAAK,WAAA;AAAY,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,QAAA;AAAS,UAAA,OAAO,CAAA;AAAA,QAAE;AAAQ,UAAA,OAAM,EAAA;AAAA;AAAE,IAAC;AACra,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,MAAA,OAAA,CAAO,CAAA,GAAE,EAAE,QAAA,KAAW,OAAA,KAAU,EAAE,WAAA,EAAY,KAAI,UAAA,KAAa,CAAA,IAAG,OAAA,KAAU,CAAA,CAAA;AAAA,IAAE;AAC1G,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAA,CAAG,CAAC,CAAA,GAAE,SAAA,GAAU,SAAQ,CAAA,GAAE,MAAA,CAAO,wBAAA,CAAyB,CAAA,CAAE,YAAY,SAAA,EAAU,CAAC,GAAE,CAAA,GAAE,EAAA,GAAG,EAAE,CAAC,CAAA;AAAE,MAAA,IAAG,CAAC,CAAA,CAAE,cAAA,CAAe,CAAC,KAAG,WAAA,KAAc,OAAO,CAAA,IAAG,UAAA,KAAa,OAAO,CAAA,CAAE,GAAA,IAAK,UAAA,KAAa,OAAO,EAAE,GAAA,EAAI;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA,CAAE,GAAA,EAAI,CAAA,GAAE,CAAA,CAAE,GAAA;AAAI,QAAA,MAAA,CAAO,eAAe,CAAA,EAAE,CAAA,EAAE,EAAC,YAAA,EAAa,IAAA,EAAG,KAAI,WAAU;AAAC,UAAA,OAAO,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA,QAAC,CAAA,EAAE,GAAA,EAAI,SAASA,EAAAA,EAAE;AAAC,UAAA,CAAA,GAAE,EAAA,GAAGA,EAAAA;AAAE,UAAA,CAAA,CAAE,IAAA,CAAK,MAAKA,EAAC,CAAA;AAAA,QAAC,GAAE,CAAA;AAAE,QAAA,MAAA,CAAO,eAAe,CAAA,EAAE,CAAA,EAAE,EAAC,UAAA,EAAW,CAAA,CAAE,YAAW,CAAA;AAAE,QAAA,OAAM,EAAC,UAAS,WAAU;AAAC,UAAA,OAAO,CAAA;AAAA,QAAC,CAAA,EAAE,QAAA,EAAS,SAASA,EAAAA,EAAE;AAAC,UAAA,CAAA,GAAE,EAAA,GAAGA,EAAAA;AAAA,QAAC,CAAA,EAAE,cAAa,WAAU;AAAC,UAAA,CAAA,CAAE,aAAA,GACxf,IAAA;AAAK,UAAA,OAAO,EAAE,CAAC,CAAA;AAAA,QAAC,CAAA,EAAC;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,aAAA,KAAgB,CAAA,CAAE,aAAA,GAAc,EAAA,CAAG,CAAC,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,CAAC,GAAE,OAAM,KAAA;AAAG,MAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,MAAA,IAAG,CAAC,GAAE,OAAM,IAAA;AAAG,MAAA,IAAI,CAAA,GAAE,EAAE,QAAA,EAAS;AAAE,MAAA,IAAI,CAAA,GAAE,EAAA;AAAG,MAAA,CAAA,KAAI,CAAA,GAAE,GAAG,CAAC,CAAA,GAAE,EAAE,OAAA,GAAQ,MAAA,GAAO,UAAQ,CAAA,CAAE,KAAA,CAAA;AAAO,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,OAAO,MAAI,CAAA,IAAG,CAAA,CAAE,QAAA,CAAS,CAAC,GAAE,IAAA,IAAI,KAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,KAAI,WAAA,KAAc,OAAO,QAAA,GAAS,QAAA,GAAS,MAAA,CAAA;AAAQ,MAAA,IAAG,WAAA,KAAc,OAAO,CAAA,EAAE,OAAO,IAAA;AAAK,MAAA,IAAG;AAAC,QAAA,OAAO,CAAA,CAAE,iBAAe,CAAA,CAAE,IAAA;AAAA,MAAI,SAAO,CAAA,EAAE;AAAC,QAAA,OAAO,CAAA,CAAE,IAAA;AAAA,MAAI;AAAA,IAAC;AACpa,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,OAAO,EAAE,EAAC,EAAE,GAAE,EAAC,cAAA,EAAe,QAAO,YAAA,EAAa,MAAA,EAAO,KAAA,EAAM,MAAA,EAAO,SAAQ,IAAA,IAAM,CAAA,GAAE,IAAE,CAAA,CAAE,aAAA,CAAc,gBAAe,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,IAAA,IAAM,CAAA,CAAE,YAAA,GAAa,EAAA,GAAG,CAAA,CAAE,YAAA,EAAa,CAAA,GAAE,IAAA,IAAM,CAAA,CAAE,OAAA,GAAQ,CAAA,CAAE,UAAQ,CAAA,CAAE,cAAA;AAAe,MAAA,CAAA,GAAE,GAAG,IAAA,IAAM,CAAA,CAAE,KAAA,GAAM,CAAA,CAAE,QAAM,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,gBAAc,EAAC,cAAA,EAAe,GAAE,YAAA,EAAa,CAAA,EAAE,YAAW,UAAA,KAAa,CAAA,CAAE,IAAA,IAAM,OAAA,KAAU,EAAE,IAAA,GAAK,IAAA,IAAM,EAAE,OAAA,GAAQ,IAAA,IAAM,EAAE,KAAA,EAAK;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,IAAA,IAAM,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,SAAA,EAAU,GAAE,KAAE,CAAA;AAAA,IAAC;AAC9d,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,IAAI,IAAE,EAAA,CAAG,CAAA,CAAE,KAAK,CAAA,EAAE,IAAE,CAAA,CAAE,IAAA;AAAK,MAAA,IAAG,IAAA,IAAM,CAAA,EAAE,IAAG,QAAA,KAAW,CAAA,EAAE;AAAC,QAAA,IAAG,CAAA,KAAI,CAAA,IAAG,EAAA,KAAK,CAAA,CAAE,KAAA,IAAO,EAAE,KAAA,IAAO,CAAA,EAAE,CAAA,CAAE,KAAA,GAAM,EAAA,GAAG,CAAA;AAAA,MAAC,OAAM,CAAA,CAAE,KAAA,KAAQ,KAAG,CAAA,KAAI,CAAA,CAAE,QAAM,EAAA,GAAG,CAAA,CAAA;AAAA,WAAA,IAAW,QAAA,KAAW,CAAA,IAAG,OAAA,KAAU,CAAA,EAAE;AAAC,QAAA,CAAA,CAAE,gBAAgB,OAAO,CAAA;AAAE,QAAA;AAAA,MAAM;AAAC,MAAA,CAAA,CAAE,cAAA,CAAe,OAAO,CAAA,GAAE,EAAA,CAAG,GAAE,CAAA,CAAE,IAAA,EAAK,CAAC,CAAA,GAAE,CAAA,CAAE,eAAe,cAAc,CAAA,IAAG,GAAG,CAAA,EAAE,CAAA,CAAE,MAAK,EAAA,CAAG,CAAA,CAAE,YAAY,CAAC,CAAA;AAAE,MAAA,IAAA,IAAM,CAAA,CAAE,WAAS,IAAA,IAAM,CAAA,CAAE,mBAAiB,CAAA,CAAE,cAAA,GAAe,CAAC,CAAC,CAAA,CAAE,cAAA,CAAA;AAAA,IAAe;AACla,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,EAAE,cAAA,CAAe,OAAO,KAAG,CAAA,CAAE,cAAA,CAAe,cAAc,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,QAAA,IAAG,EAAE,QAAA,KAAW,CAAA,IAAG,OAAA,KAAU,CAAA,IAAG,WAAS,CAAA,CAAE,KAAA,IAAO,IAAA,KAAO,CAAA,CAAE,KAAA,CAAA,EAAO;AAAO,QAAA,CAAA,GAAE,EAAA,GAAG,EAAE,aAAA,CAAc,YAAA;AAAa,QAAA,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,KAAA,KAAQ,CAAA,CAAE,KAAA,GAAM,CAAA,CAAA;AAAG,QAAA,CAAA,CAAE,YAAA,GAAa,CAAA;AAAA,MAAC;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,MAAA,EAAA,KAAK,CAAA,KAAI,EAAE,IAAA,GAAK,EAAA,CAAA;AAAI,MAAA,CAAA,CAAE,cAAA,GAAe,CAAC,CAAC,CAAA,CAAE,aAAA,CAAc,cAAA;AAAe,MAAA,EAAA,KAAK,CAAA,KAAI,EAAE,IAAA,GAAK,CAAA,CAAA;AAAA,IAAE;AACzV,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,QAAA,KAAW,KAAG,EAAA,CAAG,CAAA,CAAE,aAAa,CAAA,KAAI,CAAA,UAAQ,CAAA,GAAE,CAAA,CAAE,eAAa,EAAA,GAAG,CAAA,CAAE,cAAc,YAAA,GAAa,CAAA,CAAE,iBAAe,EAAA,GAAG,CAAA,KAAI,CAAA,CAAE,YAAA,GAAa,EAAA,GAAG,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,IAAI,KAAG,KAAA,CAAM,OAAA;AAC7K,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,IAAG,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,EAAC;AAAE,QAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,CAAA,EAAA,EAAI,CAAA,CAAE,GAAA,GAAI,CAAA,CAAE,CAAC,CAAC,CAAA,GAAE,IAAA;AAAG,QAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,CAAA,EAAA,EAAI,CAAA,GAAE,CAAA,CAAE,cAAA,CAAe,GAAA,GAAI,CAAA,CAAE,CAAC,EAAE,KAAK,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,CAAE,QAAA,KAAW,CAAA,KAAI,CAAA,CAAE,CAAC,CAAA,CAAE,QAAA,GAAS,CAAA,CAAA,EAAG,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,CAAC,EAAE,eAAA,GAAgB,IAAA,CAAA;AAAA,MAAG,CAAA,MAAK;AAAC,QAAA,CAAA,GAAE,EAAA,GAAG,GAAG,CAAC,CAAA;AAAE,QAAA,CAAA,GAAE,IAAA;AAAK,QAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,QAAO,CAAA,EAAA,EAAI;AAAC,UAAA,IAAG,CAAA,CAAE,CAAC,CAAA,CAAE,KAAA,KAAQ,CAAA,EAAE;AAAC,YAAA,CAAA,CAAE,CAAC,EAAE,QAAA,GAAS,IAAA;AAAG,YAAA,CAAA,KAAI,CAAA,CAAE,CAAC,CAAA,CAAE,eAAA,GAAgB,IAAA,CAAA;AAAI,YAAA;AAAA,UAAM;AAAC,UAAA,IAAA,KAAO,KAAG,CAAA,CAAE,CAAC,EAAE,QAAA,KAAW,CAAA,GAAE,EAAE,CAAC,CAAA,CAAA;AAAA,QAAE;AAAC,QAAA,IAAA,KAAO,CAAA,KAAI,EAAE,QAAA,GAAS,IAAA,CAAA;AAAA,MAAG;AAAA,IAAC;AACxY,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,QAAM,CAAA,CAAE,uBAAA,QAA8B,KAAA,CAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA,CAAE,EAAC,EAAE,CAAA,EAAE,EAAC,KAAA,EAAM,MAAA,EAAO,YAAA,EAAa,MAAA,EAAO,QAAA,EAAS,EAAA,GAAG,CAAA,CAAE,aAAA,CAAc,cAAa,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,MAAA,IAAG,QAAM,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,QAAA;AAAS,QAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,QAAA,IAAG,QAAM,CAAA,EAAE;AAAC,UAAA,IAAG,QAAM,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAE,UAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE;AAAC,YAAA,IAAG,IAAE,CAAA,CAAE,MAAA,QAAa,KAAA,CAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAE,CAAC,CAAA;AAAA,UAAC;AAAC,UAAA,CAAA,GAAE,CAAA;AAAA,QAAC;AAAC,QAAA,IAAA,IAAM,MAAI,CAAA,GAAE,EAAA,CAAA;AAAI,QAAA,CAAA,GAAE,CAAA;AAAA,MAAC;AAAC,MAAA,CAAA,CAAE,aAAA,GAAc,EAAC,YAAA,EAAa,EAAA,CAAG,CAAC,CAAA,EAAC;AAAA,IAAC;AACnY,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,GAAG,CAAA,CAAE,KAAK,GAAE,CAAA,GAAE,EAAA,CAAG,EAAE,YAAY,CAAA;AAAE,MAAA,IAAA,IAAM,MAAI,CAAA,GAAE,EAAA,GAAG,CAAA,EAAE,CAAA,KAAI,EAAE,KAAA,KAAQ,CAAA,CAAE,KAAA,GAAM,CAAA,CAAA,EAAG,QAAM,CAAA,CAAE,YAAA,IAAc,EAAE,YAAA,KAAe,CAAA,KAAI,EAAE,YAAA,GAAa,CAAA,CAAA,CAAA;AAAI,MAAA,IAAA,IAAM,CAAA,KAAI,CAAA,CAAE,YAAA,GAAa,EAAA,GAAG,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,MAAA,CAAA,KAAI,CAAA,CAAE,cAAc,YAAA,IAAc,EAAA,KAAK,KAAG,IAAA,KAAO,CAAA,KAAI,EAAE,KAAA,GAAM,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,KAAA;AAAM,UAAA,OAAM,4BAAA;AAAA,QAA6B,KAAK,MAAA;AAAO,UAAA,OAAM,oCAAA;AAAA,QAAqC;AAAQ,UAAA,OAAM,8BAAA;AAAA;AAA8B,IAAC;AAC7c,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAO,IAAA,IAAM,CAAA,IAAG,8BAAA,KAAiC,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,GAAE,4BAAA,KAA+B,CAAA,IAAG,eAAA,KAAkB,CAAA,GAAE,8BAAA,GAA+B,CAAA;AAAA,IAAC;AAChK,IAAA,IAAI,EAAA;AAAJ,IAAA,IAAO,EAAA,GAAA,CAAG,SAAS,CAAA,EAAE;AAAC,MAAA,OAAM,WAAA,KAAc,OAAO,KAAA,IAAO,KAAA,CAAM,0BAAwB,SAAS,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,QAAA,KAAA,CAAM,wBAAwB,WAAU;AAAC,UAAA,OAAO,CAAA,CAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,QAAC,CAAC,CAAA;AAAA,MAAC,CAAA,GAAE,CAAA;AAAA,IAAC,CAAA,EAAE,SAAS,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,iCAA+B,CAAA,CAAE,YAAA,IAAc,WAAA,IAAc,CAAA,IAAI,SAAA,GAAU,CAAA;AAAA,WAAM;AAAC,QAAA,EAAA,GAAG,EAAA,IAAI,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAAE,QAAA,EAAA,CAAG,YAAU,OAAA,GAAQ,CAAA,CAAE,OAAA,EAAQ,CAAE,UAAS,GAAE,QAAA;AAAS,QAAA,KAAI,CAAA,GAAE,GAAG,UAAA,EAAW,CAAA,CAAE,cAAY,CAAA,CAAE,WAAA,CAAY,EAAE,UAAU,CAAA;AAAE,QAAA,OAAK,CAAA,CAAE,UAAA,IAAY,CAAA,CAAE,WAAA,CAAY,EAAE,UAAU,CAAA;AAAA,MAAC;AAAA,IAAC,CAAC,CAAA;AACpd,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,UAAA;AAAW,QAAA,IAAG,KAAG,CAAA,KAAI,CAAA,CAAE,SAAA,IAAW,CAAA,KAAI,EAAE,QAAA,EAAS;AAAC,UAAA,CAAA,CAAE,SAAA,GAAU,CAAA;AAAE,UAAA;AAAA,QAAM;AAAA,MAAC;AAAC,MAAA,CAAA,CAAE,WAAA,GAAY,CAAA;AAAA,IAAC;AACtH,IAAA,IAAI,EAAA,GAAG;AAAA,MAAC,uBAAA,EAAwB,IAAA;AAAA,MAAG,WAAA,EAAY,IAAA;AAAA,MAAG,iBAAA,EAAkB,IAAA;AAAA,MAAG,gBAAA,EAAiB,IAAA;AAAA,MAAG,gBAAA,EAAiB,IAAA;AAAA,MAAG,OAAA,EAAQ,IAAA;AAAA,MAAG,YAAA,EAAa,IAAA;AAAA,MAAG,eAAA,EAAgB,IAAA;AAAA,MAAG,WAAA,EAAY,IAAA;AAAA,MAAG,OAAA,EAAQ,IAAA;AAAA,MAAG,IAAA,EAAK,IAAA;AAAA,MAAG,QAAA,EAAS,IAAA;AAAA,MAAG,YAAA,EAAa,IAAA;AAAA,MAAG,UAAA,EAAW,IAAA;AAAA,MAAG,YAAA,EAAa,IAAA;AAAA,MAAG,SAAA,EAAU,IAAA;AAAA,MAAG,QAAA,EAAS,IAAA;AAAA,MAAG,OAAA,EAAQ,IAAA;AAAA,MAAG,UAAA,EAAW,IAAA;AAAA,MAAG,WAAA,EAAY,IAAA;AAAA,MAAG,YAAA,EAAa,IAAA;AAAA,MAAG,UAAA,EAAW,IAAA;AAAA,MAAG,aAAA,EAAc,IAAA;AAAA,MAAG,cAAA,EAAe,IAAA;AAAA,MAAG,eAAA,EAAgB,IAAA;AAAA,MAAG,UAAA,EAAW,IAAA;AAAA,MAAG,SAAA,EAAU,IAAA;AAAA,MAAG,UAAA,EAAW,IAAA;AAAA,MAAG,OAAA,EAAQ,IAAA;AAAA,MAAG,KAAA,EAAM,IAAA;AAAA,MAAG,OAAA,EAAQ,IAAA;AAAA,MAAG,OAAA,EAAQ,IAAA;AAAA,MAAG,MAAA,EAAO,IAAA;AAAA,MAAG,MAAA,EAAO,IAAA;AAAA,MAClf,IAAA,EAAK,IAAA;AAAA,MAAG,WAAA,EAAY,IAAA;AAAA,MAAG,YAAA,EAAa,IAAA;AAAA,MAAG,WAAA,EAAY,IAAA;AAAA,MAAG,eAAA,EAAgB,IAAA;AAAA,MAAG,gBAAA,EAAiB,IAAA;AAAA,MAAG,gBAAA,EAAiB,IAAA;AAAA,MAAG,aAAA,EAAc,IAAA;AAAA,MAAG,WAAA,EAAY;AAAA,KAAE;AADhJ,IAAA,IACkJ,EAAA,GAAG,CAAC,QAAA,EAAS,IAAA,EAAK,OAAM,GAAG,CAAA;AAAE,IAAA,MAAA,CAAO,IAAA,CAAK,EAAE,CAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,OAAA,CAAQ,SAAS,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,CAAA,GAAE,EAAE,MAAA,CAAO,CAAC,EAAE,WAAA,EAAY,GAAE,CAAA,CAAE,SAAA,CAAU,CAAC,CAAA;AAAE,QAAA,EAAA,CAAG,CAAC,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA;AAAA,MAAC,CAAC,CAAA;AAAA,IAAC,CAAC,CAAA;AAAE,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,OAAO,IAAA,IAAM,CAAA,IAAG,SAAA,KAAY,OAAO,CAAA,IAAG,OAAK,CAAA,GAAE,EAAA,GAAG,CAAA,IAAG,QAAA,KAAW,OAAO,CAAA,IAAG,MAAI,CAAA,IAAG,EAAA,CAAG,cAAA,CAAe,CAAC,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA,GAAA,CAAG,EAAA,GAAG,CAAA,EAAG,IAAA,EAAK,GAAE,CAAA,GAAE,IAAA;AAAA,IAAI;AACzb,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,MAAA,KAAA,IAAQ,KAAK,CAAA,EAAE,IAAG,CAAA,CAAE,cAAA,CAAe,CAAC,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA,KAAI,CAAA,CAAE,OAAA,CAAQ,IAAI,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,EAAE,CAAC,CAAA;AAAE,QAAA,OAAA,KAAU,MAAI,CAAA,GAAE,UAAA,CAAA;AAAY,QAAA,CAAA,GAAE,EAAE,WAAA,CAAY,CAAA,EAAE,CAAC,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,GAAE,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,IAAI,KAAG,CAAA,CAAE,EAAC,QAAA,EAAS,IAAA,IAAI,EAAC,IAAA,EAAK,IAAA,EAAG,IAAA,EAAK,MAAG,EAAA,EAAG,IAAA,EAAG,GAAA,EAAI,IAAA,EAAG,OAAM,IAAA,EAAG,EAAA,EAAG,IAAA,EAAG,GAAA,EAAI,MAAG,KAAA,EAAM,IAAA,EAAG,MAAA,EAAO,IAAA,EAAG,MAAK,IAAA,EAAG,IAAA,EAAK,IAAA,EAAG,KAAA,EAAM,MAAG,MAAA,EAAO,IAAA,EAAG,OAAM,IAAA,EAAG,GAAA,EAAI,MAAG,CAAA;AACrT,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,EAAE;AAAC,QAAA,IAAG,EAAA,CAAG,CAAC,CAAA,KAAI,IAAA,IAAM,EAAE,QAAA,IAAU,IAAA,IAAM,CAAA,CAAE,uBAAA,CAAA,EAAyB,MAAM,KAAA,CAAM,CAAA,CAAE,GAAA,EAAI,CAAC,CAAC,CAAA;AAAE,QAAA,IAAG,IAAA,IAAM,EAAE,uBAAA,EAAwB;AAAC,UAAA,IAAG,QAAM,CAAA,CAAE,QAAA,QAAe,KAAA,CAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAE,UAAA,IAAG,QAAA,KAAW,OAAO,CAAA,CAAE,uBAAA,IAAyB,EAAE,QAAA,IAAW,CAAA,CAAE,uBAAA,CAAA,EAAyB,MAAM,KAAA,CAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAA,QAAE;AAAC,QAAA,IAAG,IAAA,IAAM,CAAA,CAAE,KAAA,IAAO,QAAA,KAAW,OAAO,CAAA,CAAE,KAAA,EAAM,MAAM,KAAA,CAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAA,MAAE;AAAA,IAAC;AAClW,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,KAAK,EAAE,OAAA,CAAQ,GAAG,GAAE,OAAM,QAAA,KAAW,OAAO,CAAA,CAAE,EAAA;AAAG,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,gBAAA;AAAA,QAAiB,KAAK,eAAA;AAAA,QAAgB,KAAK,WAAA;AAAA,QAAY,KAAK,eAAA;AAAA,QAAgB,KAAK,eAAA;AAAA,QAAgB,KAAK,kBAAA;AAAA,QAAmB,KAAK,gBAAA;AAAA,QAAiB,KAAK,eAAA;AAAgB,UAAA,OAAM,KAAA;AAAA,QAAG;AAAQ,UAAA,OAAM,IAAA;AAAA;AAAE,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,IAAA;AAAK,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,MAAA,IAAQ,CAAA,CAAE,UAAA,IAAY,MAAA;AAAO,MAAA,CAAA,CAAE,uBAAA,KAA0B,IAAE,CAAA,CAAE,uBAAA,CAAA;AAAyB,MAAA,OAAO,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,CAAA,CAAE,UAAA,GAAW,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,IAAA;AAAP,IAAA,IAAY,EAAA,GAAG,IAAA;AAAf,IAAA,IAAoB,EAAA,GAAG,IAAA;AACpc,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE;AAAC,QAAA,IAAG,eAAa,OAAO,EAAA,QAAS,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,CAAA,KAAI,CAAA,GAAE,GAAG,CAAC,CAAA,EAAE,GAAG,CAAA,CAAE,SAAA,EAAU,CAAA,CAAE,IAAA,EAAK,CAAC,CAAA,CAAA;AAAA,MAAE;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,EAAA,GAAG,EAAA,GAAG,GAAG,IAAA,CAAK,CAAC,IAAE,EAAA,GAAG,CAAC,CAAC,CAAA,GAAE,EAAA,GAAG,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,IAAG,EAAA,EAAG;AAAC,QAAA,IAAI,CAAA,GAAE,IAAG,CAAA,GAAE,EAAA;AAAG,QAAA,EAAA,GAAG,EAAA,GAAG,IAAA;AAAK,QAAA,EAAA,CAAG,CAAC,CAAA;AAAE,QAAA,IAAG,CAAA,EAAE,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,CAAA,EAAA,EAAI,EAAA,CAAG,CAAA,CAAE,CAAC,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAO,EAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,KAAA;AAAG,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,EAAG,OAAO,CAAA,CAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,EAAA,GAAG,IAAA;AAAG,MAAA,IAAG;AAAC,QAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,IAAG,EAAA,GAAG,OAAG,IAAA,KAAO,EAAA,IAAI,SAAO,EAAA,EAAG,EAAA,IAAK,EAAA,EAAG;AAAA,MAAC;AAAA,IAAC;AAChb,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAG,IAAA,KAAO,GAAE,OAAO,IAAA;AAAK,MAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,IAAG,IAAA,KAAO,GAAE,OAAO,IAAA;AAAK,MAAA,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,UAAS,CAAA;AAAE,QAAC,KAAK,SAAA;AAAA,QAAU,KAAK,gBAAA;AAAA,QAAiB,KAAK,eAAA;AAAA,QAAgB,KAAK,sBAAA;AAAA,QAAuB,KAAK,aAAA;AAAA,QAAc,KAAK,oBAAA;AAAA,QAAqB,KAAK,aAAA;AAAA,QAAc,KAAK,oBAAA;AAAA,QAAqB,KAAK,WAAA;AAAA,QAAY,KAAK,kBAAA;AAAA,QAAmB,KAAK,cAAA;AAAe,UAAA,CAAC,CAAA,GAAE,CAAC,CAAA,CAAE,QAAA,MAAY,IAAE,CAAA,CAAE,IAAA,EAAK,CAAA,GAAE,EAAE,aAAW,CAAA,IAAG,OAAA,KAAU,CAAA,IAAG,QAAA,KAAW,KAAG,UAAA,KAAa,CAAA,CAAA,CAAA;AAAI,UAAA,CAAA,GAAE,CAAC,CAAA;AAAE,UAAA,MAAM,CAAA;AAAA,QAAE;AAAQ,UAAA,CAAA,GAAE,KAAA;AAAA;AAAG,MAAA,IAAG,GAAE,OAAO,IAAA;AAAK,MAAA,IAAG,CAAA,IAAG,UAAA,KACze,OAAO,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAA,EAAI,CAAA,EAAE,OAAO,CAAC,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,KAAA;AAAG,IAAA,IAAG,IAAG,IAAG;AAAK,MAAA,EAAA,GAAG,EAAC;AAAE,MAAA,MAAA,CAAO,cAAA,CAAe,EAAA,EAAG,SAAA,EAAU,EAAC,KAAI,WAAU;AAAC,QAAA,EAAA,GAAG,IAAA;AAAA,MAAE,GAAE,CAAA;AAAE,MAAA,MAAA,CAAO,gBAAA,CAAiB,MAAA,EAAO,EAAA,EAAG,EAAE,CAAA;AAAE,MAAA,MAAA,CAAO,mBAAA,CAAoB,MAAA,EAAO,EAAA,EAAG,EAAE,CAAA;AAAA,IAAC,SAAO,CAAA,EAAE;AAAC,MAAA,EAAA,GAAG,KAAA;AAAA,IAAE;AAA/J,IAAA,IAAA,EAAA;AAAgK,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,KAAA,CAAM,SAAA,CAAU,KAAA,CAAM,IAAA,CAAK,WAAU,CAAC,CAAA;AAAE,MAAA,IAAG;AAAC,QAAA,CAAA,CAAE,KAAA,CAAM,GAAE,CAAC,CAAA;AAAA,MAAC,SAAO,CAAA,EAAE;AAAC,QAAA,IAAA,CAAK,QAAQ,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,KAAA;AAAP,IAAA,IAAU,EAAA,GAAG,IAAA;AAAb,IAAA,IAAkB,EAAA,GAAG,KAAA;AAArB,IAAA,IAAwB,EAAA,GAAG,IAAA;AAA3B,IAAA,IAAgC,EAAA,GAAG,EAAC,OAAA,EAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,EAAA,GAAG,IAAA;AAAG,MAAA,EAAA,GAAG,CAAA;AAAA,IAAC,CAAA,EAAC;AAAE,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,EAAA,GAAG,KAAA;AAAG,MAAA,EAAA,GAAG,IAAA;AAAK,MAAA,EAAA,CAAG,KAAA,CAAM,IAAG,SAAS,CAAA;AAAA,IAAC;AACze,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,KAAA,CAAM,MAAK,SAAS,CAAA;AAAE,MAAA,IAAG,EAAA,EAAG;AAAC,QAAA,IAAG,EAAA,EAAG;AAAC,UAAA,IAAI,CAAA,GAAE,EAAA;AAAG,UAAA,EAAA,GAAG,KAAA;AAAG,UAAA,EAAA,GAAG,IAAA;AAAA,QAAI,CAAA,MAAM,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,EAAA,KAAK,EAAA,GAAG,MAAG,EAAA,GAAG,CAAA,CAAA;AAAA,MAAE;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG,EAAE,SAAA,EAAU,OAAK,CAAA,CAAE,MAAA,QAAU,CAAA,CAAE,MAAA;AAAA,WAAW;AAAC,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA;AAAG,UAAA,CAAA,GAAE,CAAA,EAAE,OAAK,CAAA,CAAE,KAAA,GAAM,UAAQ,CAAA,GAAE,CAAA,CAAE,MAAA,CAAA,EAAQ,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,eAAa,CAAA;AAAA,MAAE;AAAC,MAAA,OAAO,CAAA,KAAI,CAAA,CAAE,GAAA,GAAI,CAAA,GAAE,IAAA;AAAA,IAAI;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,KAAK,EAAE,GAAA,EAAI;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,QAAA,IAAA,KAAO,MAAI,CAAA,GAAE,CAAA,CAAE,WAAU,IAAA,KAAO,CAAA,KAAI,IAAE,CAAA,CAAE,aAAA,CAAA,CAAA;AAAgB,QAAA,IAAG,IAAA,KAAO,CAAA,EAAE,OAAO,CAAA,CAAE,UAAA;AAAA,MAAU;AAAC,MAAA,OAAO,IAAA;AAAA,IAAI;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,CAAG,CAAC,CAAA,KAAI,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,IAAE;AACjf,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAG,CAAC,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,QAAA,IAAG,SAAO,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,OAAO,CAAA,KAAI,IAAE,IAAA,GAAK,CAAA;AAAA,MAAC;AAAC,MAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,MAAI;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,MAAA;AAAO,QAAA,IAAG,SAAO,CAAA,EAAE;AAAM,QAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAO,UAAA,IAAG,SAAO,CAAA,EAAE;AAAC,YAAA,CAAA,GAAE,CAAA;AAAE,YAAA;AAAA,UAAQ;AAAC,UAAA;AAAA,QAAK;AAAC,QAAA,IAAG,CAAA,CAAE,KAAA,KAAQ,CAAA,CAAE,KAAA,EAAM;AAAC,UAAA,KAAI,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,CAAA,IAAG;AAAC,YAAA,IAAG,CAAA,KAAI,CAAA,EAAE,OAAO,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA;AAAE,YAAA,IAAG,CAAA,KAAI,CAAA,EAAE,OAAO,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,UAAO;AAAC,UAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,QAAE;AAAC,QAAA,IAAG,EAAE,MAAA,KAAS,CAAA,CAAE,MAAA,EAAO,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA;AAAA,aAAM;AAAC,UAAA,KAAA,IAAQ,CAAA,GAAE,KAAA,EAAG,CAAA,GAAE,CAAA,CAAE,OAAM,CAAA,IAAG;AAAC,YAAA,IAAG,MAAI,CAAA,EAAE;AAAC,cAAA,CAAA,GAAE,IAAA;AAAG,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA;AAAA,YAAK;AAAC,YAAA,IAAG,MAAI,CAAA,EAAE;AAAC,cAAA,CAAA,GAAE,IAAA;AAAG,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA;AAAA,YAAK;AAAC,YAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,UAAO;AAAC,UAAA,IAAG,CAAC,CAAA,EAAE;AAAC,YAAA,KAAI,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,CAAA,IAAG;AAAC,cAAA,IAAG,MAC5f,CAAA,EAAE;AAAC,gBAAA,CAAA,GAAE,IAAA;AAAG,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA;AAAA,cAAK;AAAC,cAAA,IAAG,MAAI,CAAA,EAAE;AAAC,gBAAA,CAAA,GAAE,IAAA;AAAG,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA;AAAA,cAAK;AAAC,cAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,YAAO;AAAC,YAAA,IAAG,CAAC,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,UAAE;AAAA,QAAC;AAAC,QAAA,IAAG,EAAE,SAAA,KAAY,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,MAAE;AAAC,MAAA,IAAG,MAAI,CAAA,CAAE,GAAA,QAAU,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA,CAAE,SAAA,CAAU,OAAA,KAAU,CAAA,GAAE,CAAA,GAAE,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,OAAO,IAAA,KAAO,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,GAAE,IAAA;AAAA,IAAI;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,MAAI,CAAA,CAAE,GAAA,IAAK,CAAA,KAAI,CAAA,CAAE,KAAI,OAAO,CAAA;AAAE,MAAA,KAAI,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,IAAA,KAAO,CAAA,IAAG;AAAC,QAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,QAAA,IAAG,IAAA,KAAO,GAAE,OAAO,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,MAAO;AAAC,MAAA,OAAO,IAAA;AAAA,IAAI;AAC1X,IAAA,IAAI,KAAG,EAAA,CAAG,yBAAA;AAAV,IAAA,IAAoC,KAAG,EAAA,CAAG,uBAAA;AAA1C,IAAA,IAAkE,KAAG,EAAA,CAAG,oBAAA;AAAxE,IAAA,IAA6F,KAAG,EAAA,CAAG,qBAAA;AAAnG,IAAA,IAAyH,IAAE,EAAA,CAAG,YAAA;AAA9H,IAAA,IAA2I,KAAG,EAAA,CAAG,gCAAA;AAAjJ,IAAA,IAAkL,KAAG,EAAA,CAAG,0BAAA;AAAxL,IAAA,IAAmN,KAAG,EAAA,CAAG,6BAAA;AAAzN,IAAA,IAAuP,KAAG,EAAA,CAAG,uBAAA;AAA7P,IAAA,IAAqR,KAAG,EAAA,CAAG,oBAAA;AAA3R,IAAA,IAAgT,KAAG,EAAA,CAAG,qBAAA;AAAtT,IAAA,IAA4U,EAAA,GAAG,IAAA;AAA/U,IAAA,IAAoV,EAAA,GAAG,IAAA;AAAK,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,IAAI,UAAA,KAAa,OAAO,EAAA,CAAG,mBAAkB,IAAG;AAAC,QAAA,EAAA,CAAG,iBAAA,CAAkB,IAAG,CAAA,EAAE,KAAA,CAAA,EAAO,SAAO,CAAA,CAAE,OAAA,CAAQ,QAAM,GAAA,CAAI,CAAA;AAAA,MAAC,SAAO,CAAA,EAAE;AAAA,MAAC;AAAA,IAAC;AACve,IAAA,IAAI,EAAA,GAAG,IAAA,CAAK,KAAA,GAAM,IAAA,CAAK,KAAA,GAAM,EAAA;AAA7B,IAAA,IAAgC,KAAG,IAAA,CAAK,GAAA;AAAxC,IAAA,IAA4C,KAAG,IAAA,CAAK,GAAA;AAAI,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,MAAK,CAAA;AAAE,MAAA,OAAO,CAAA,KAAI,IAAE,EAAA,GAAG,EAAA,IAAI,GAAG,CAAC,CAAA,GAAE,KAAG,CAAA,CAAA,GAAG,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,EAAA;AAAP,IAAA,IAAU,EAAA,GAAG,OAAA;AAC7H,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,QAAO,CAAA,GAAE,CAAC,CAAA;AAAE,QAAC,KAAK,CAAA;AAAE,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,EAAA;AAAA,QAAG,KAAK,EAAA;AAAG,UAAA,OAAO,EAAA;AAAA,QAAG,KAAK,EAAA;AAAA,QAAG,KAAK,GAAA;AAAA,QAAI,KAAK,GAAA;AAAA,QAAI,KAAK,GAAA;AAAA,QAAI,KAAK,IAAA;AAAA,QAAK,KAAK,IAAA;AAAA,QAAK,KAAK,IAAA;AAAA,QAAK,KAAK,IAAA;AAAA,QAAK,KAAK,KAAA;AAAA,QAAM,KAAK,KAAA;AAAA,QAAM,KAAK,KAAA;AAAA,QAAM,KAAK,MAAA;AAAA,QAAO,KAAK,MAAA;AAAA,QAAO,KAAK,MAAA;AAAA,QAAO,KAAK,OAAA;AAAA,QAAQ,KAAK,OAAA;AAAQ,UAAA,OAAO,CAAA,GAAE,OAAA;AAAA,QAAQ,KAAK,OAAA;AAAA,QAAQ,KAAK,OAAA;AAAA,QAAQ,KAAK,QAAA;AAAA,QAAS,KAAK,QAAA;AAAA,QAAS,KAAK,QAAA;AAAS,UAAA,OAAO,CAAA,GAAE,SAAA;AAAA,QAAU,KAAK,SAAA;AAAU,UAAA,OAAO,SAAA;AAAA,QAAU,KAAK,SAAA;AAAU,UAAA,OAAO,SAAA;AAAA,QAAU,KAAK,SAAA;AAAU,UAAA,OAAO,SAAA;AAAA,QAAU,KAAK,UAAA;AAAW,UAAA,OAAO,UAAA;AAAA,QACzgB;AAAQ,UAAA,OAAO,CAAA;AAAA;AAAC,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,YAAA;AAAa,MAAA,IAAG,CAAA,KAAI,GAAE,OAAO,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA,CAAE,gBAAe,CAAA,GAAE,CAAA,CAAE,WAAA,EAAY,CAAA,GAAE,CAAA,GAAE,SAAA;AAAU,MAAA,IAAG,MAAI,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,IAAE,CAAC,CAAA;AAAE,QAAA,CAAA,KAAI,CAAA,GAAE,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,IAAG,CAAA,IAAG,CAAA,EAAE,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,CAAA,CAAA;AAAA,MAAG,CAAA,MAAM,CAAA,GAAE,CAAA,GAAE,CAAC,GAAE,CAAA,KAAI,CAAA,GAAE,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,GAAE,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,GAAG,CAAC,CAAA,CAAA;AAAG,MAAA,IAAG,CAAA,KAAI,GAAE,OAAO,CAAA;AAAE,MAAA,IAAG,CAAA,KAAI,KAAG,CAAA,KAAI,CAAA,IAAG,OAAK,CAAA,GAAE,CAAA,CAAA,KAAK,CAAA,GAAE,CAAA,GAAE,CAAC,CAAA,EAAE,IAAE,CAAA,GAAE,CAAC,GAAE,CAAA,IAAG,CAAA,IAAG,OAAK,CAAA,IAAG,CAAA,MAAK,CAAA,GAAE,OAAA,CAAA,CAAA,EAAU,OAAO,CAAA;AAAE,MAAA,CAAA,MAAK,CAAA,GAAE,CAAA,CAAA,KAAK,CAAA,IAAG,CAAA,GAAE,EAAA,CAAA;AAAI,MAAA,CAAA,GAAE,CAAA,CAAE,cAAA;AAAe,MAAA,IAAG,CAAA,KAAI,GAAE,KAAI,CAAA,GAAE,EAAE,aAAA,EAAc,CAAA,IAAG,CAAA,EAAE,CAAA,GAAE,CAAA,IAAG,CAAA,GAAE,KAAG,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,IAAG,CAAA,EAAE,KAAG,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,IAAG,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AACvc,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,CAAA,GAAE,GAAA;AAAA,QAAI,KAAK,CAAA;AAAA,QAAE,KAAK,EAAA;AAAA,QAAG,KAAK,EAAA;AAAA,QAAG,KAAK,EAAA;AAAA,QAAG,KAAK,GAAA;AAAA,QAAI,KAAK,GAAA;AAAA,QAAI,KAAK,GAAA;AAAA,QAAI,KAAK,IAAA;AAAA,QAAK,KAAK,IAAA;AAAA,QAAK,KAAK,IAAA;AAAA,QAAK,KAAK,IAAA;AAAA,QAAK,KAAK,KAAA;AAAA,QAAM,KAAK,KAAA;AAAA,QAAM,KAAK,KAAA;AAAA,QAAM,KAAK,MAAA;AAAA,QAAO,KAAK,MAAA;AAAA,QAAO,KAAK,MAAA;AAAA,QAAO,KAAK,OAAA;AAAA,QAAQ,KAAK,OAAA;AAAQ,UAAA,OAAO,CAAA,GAAE,GAAA;AAAA,QAAI,KAAK,OAAA;AAAA,QAAQ,KAAK,OAAA;AAAA,QAAQ,KAAK,QAAA;AAAA,QAAS,KAAK,QAAA;AAAA,QAAS,KAAK,QAAA;AAAS,UAAA,OAAM,EAAA;AAAA,QAAG,KAAK,SAAA;AAAA,QAAU,KAAK,SAAA;AAAA,QAAU,KAAK,SAAA;AAAA,QAAU,KAAK,UAAA;AAAW,UAAA,OAAM,EAAA;AAAA,QAAG;AAAQ,UAAA,OAAM,EAAA;AAAA;AAAE,IAAC;AAC/a,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,CAAE,cAAA,EAAe,CAAA,GAAE,CAAA,CAAE,WAAA,EAAY,CAAA,GAAE,CAAA,CAAE,eAAA,EAAgB,CAAA,GAAE,CAAA,CAAE,YAAA,EAAa,IAAE,CAAA,IAAG;AAAC,QAAA,IAAI,CAAA,GAAE,EAAA,GAAG,EAAA,CAAG,CAAC,CAAA,EAAE,IAAE,CAAA,IAAG,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA;AAAE,QAAA,IAAG,OAAK,CAAA,EAAE;AAAC,UAAA,IAAG,CAAA,MAAK,CAAA,GAAE,CAAA,CAAA,IAAI,CAAA,MAAK,CAAA,GAAE,CAAA,CAAA,EAAG,CAAA,CAAE,CAAC,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAA,QAAC,CAAA,MAAM,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,YAAA,IAAc,CAAA,CAAA;AAAG,QAAA,CAAA,IAAG,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAE,YAAA,GAAa,WAAA;AAAY,MAAA,OAAO,CAAA,KAAI,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,aAAW,UAAA,GAAW,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA;AAAG,MAAA,EAAA,KAAK,CAAA;AAAE,MAAA,CAAA,MAAK,EAAA,GAAG,aAAW,EAAA,GAAG,EAAA,CAAA;AAAI,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,KAAA,IAAQ,CAAA,GAAE,EAAC,EAAE,CAAA,GAAE,CAAA,EAAE,KAAG,CAAA,EAAE,CAAA,EAAA,EAAI,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAC3a,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,YAAA,IAAc,CAAA;AAAE,MAAA,SAAA,KAAY,CAAA,KAAI,CAAA,CAAE,cAAA,GAAe,CAAA,EAAE,EAAE,WAAA,GAAY,CAAA,CAAA;AAAG,MAAA,CAAA,GAAE,CAAA,CAAE,UAAA;AAAW,MAAA,CAAA,GAAE,EAAA,GAAG,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,CAAC,CAAA,GAAE,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,CAAE,YAAA,GAAa,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,YAAA,GAAa,CAAA;AAAE,MAAA,CAAA,CAAE,cAAA,GAAe,CAAA;AAAE,MAAA,CAAA,CAAE,WAAA,GAAY,CAAA;AAAE,MAAA,CAAA,CAAE,YAAA,IAAc,CAAA;AAAE,MAAA,CAAA,CAAE,gBAAA,IAAkB,CAAA;AAAE,MAAA,CAAA,CAAE,cAAA,IAAgB,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,MAAA,IAAI,IAAE,CAAA,CAAE,UAAA;AAAW,MAAA,KAAI,CAAA,GAAE,CAAA,CAAE,eAAA,EAAgB,CAAA,GAAE,CAAA,IAAG;AAAC,QAAA,IAAI,IAAE,EAAA,GAAG,EAAA,CAAG,CAAC,CAAA,EAAE,IAAE,CAAA,IAAG,CAAA;AAAE,QAAA,CAAA,CAAE,CAAC,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,CAAE,CAAC,CAAA,GAAE,EAAA;AAAG,QAAA,CAAA,CAAE,CAAC,CAAA,GAAE,EAAA;AAAG,QAAA,CAAA,IAAG,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AACzY,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAE,cAAA,IAAgB,CAAA;AAAE,MAAA,KAAI,CAAA,GAAE,CAAA,CAAE,aAAA,EAAc,CAAA,IAAG;AAAC,QAAA,IAAI,IAAE,EAAA,GAAG,EAAA,CAAG,CAAC,CAAA,EAAE,IAAE,CAAA,IAAG,CAAA;AAAE,QAAA,CAAA,GAAE,IAAE,CAAA,CAAE,CAAC,IAAE,CAAA,KAAI,CAAA,CAAE,CAAC,CAAA,IAAG,CAAA,CAAA;AAAG,QAAA,CAAA,IAAG,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,IAAI,CAAA,GAAE,CAAA;AAAE,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,IAAG,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA,GAAE,IAAE,CAAA,GAAE,CAAA,GAAE,OAAK,CAAA,GAAE,SAAA,CAAA,GAAW,EAAA,GAAG,SAAA,GAAU,CAAA,GAAE,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA;AAAJ,IAAA,IAAO,EAAA;AAAP,IAAA,IAAU,EAAA;AAAV,IAAA,IAAa,EAAA;AAAb,IAAA,IAAgB,EAAA;AAAhB,IAAA,IAAmB,EAAA,GAAG,KAAA;AAAtB,IAAA,IAAyB,KAAG,EAAC;AAA7B,IAAA,IAA+B,EAAA,GAAG,IAAA;AAAlC,IAAA,IAAuC,EAAA,GAAG,IAAA;AAA1C,IAAA,IAA+C,EAAA,GAAG,IAAA;AAAlD,IAAA,IAAuD,qBAAG,IAAI,GAAA,EAAA;AAA9D,IAAA,IAAkE,qBAAG,IAAI,GAAA,EAAA;AAAzE,IAAA,IAA6E,KAAG,EAAC;AAAjF,IAAA,IAAmF,EAAA,GAAG,4PAAA,CAA6P,KAAA,CAAM,GAAG,CAAA;AACniB,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,SAAA;AAAA,QAAU,KAAK,UAAA;AAAW,UAAA,EAAA,GAAG,IAAA;AAAK,UAAA;AAAA,QAAM,KAAK,WAAA;AAAA,QAAY,KAAK,WAAA;AAAY,UAAA,EAAA,GAAG,IAAA;AAAK,UAAA;AAAA,QAAM,KAAK,WAAA;AAAA,QAAY,KAAK,UAAA;AAAW,UAAA,EAAA,GAAG,IAAA;AAAK,UAAA;AAAA,QAAM,KAAK,aAAA;AAAA,QAAc,KAAK,YAAA;AAAa,UAAA,EAAA,CAAG,MAAA,CAAO,EAAE,SAAS,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,mBAAA;AAAA,QAAoB,KAAK,oBAAA;AAAqB,UAAA,EAAA,CAAG,MAAA,CAAO,EAAE,SAAS,CAAA;AAAA;AAAC,IAAC;AACnT,IAAA,SAAS,GAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,WAAA,KAAc,CAAA,EAAE,OAAO,CAAA,GAAE,EAAC,SAAA,EAAU,CAAA,EAAE,YAAA,EAAa,CAAA,EAAE,kBAAiB,CAAA,EAAE,WAAA,EAAY,CAAA,EAAE,gBAAA,EAAiB,CAAC,CAAC,CAAA,EAAC,EAAE,SAAO,CAAA,KAAI,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA,CAAA,EAAG,CAAA;AAAE,MAAA,CAAA,CAAE,gBAAA,IAAkB,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,CAAE,gBAAA;AAAiB,MAAA,IAAA,KAAO,CAAA,IAAG,OAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAA,IAAG,CAAA,CAAE,KAAK,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AACpR,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,SAAA;AAAU,UAAA,OAAO,EAAA,GAAG,GAAG,EAAA,EAAG,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,IAAA;AAAA,QAAG,KAAK,WAAA;AAAY,UAAA,OAAO,EAAA,GAAG,GAAG,EAAA,EAAG,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,IAAA;AAAA,QAAG,KAAK,WAAA;AAAY,UAAA,OAAO,EAAA,GAAG,GAAG,EAAA,EAAG,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,IAAA;AAAA,QAAG,KAAK,aAAA;AAAc,UAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,UAAA,EAAA,CAAG,GAAA,CAAI,CAAA,EAAE,EAAA,CAAG,EAAA,CAAG,GAAA,CAAI,CAAC,CAAA,IAAG,IAAA,EAAK,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAC,CAAA;AAAE,UAAA,OAAM,IAAA;AAAA,QAAG,KAAK,mBAAA;AAAoB,UAAA,OAAO,IAAE,CAAA,CAAE,SAAA,EAAU,GAAG,GAAA,CAAI,CAAA,EAAE,GAAG,EAAA,CAAG,GAAA,CAAI,CAAC,CAAA,IAAG,MAAK,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAC,CAAC,CAAA,EAAE,IAAA;AAAA;AAAG,MAAA,OAAM,KAAA;AAAA,IAAE;AACnW,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,CAAE,MAAM,CAAA;AAAE,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,QAAA,IAAG,IAAA,KAAO,CAAA,EAAA;AAAE,UAAA,IAAG,CAAA,GAAE,CAAA,CAAE,GAAA,EAAI,EAAA,KAAK,CAAA,EAAE;AAAC,YAAA,IAAG,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,SAAO,CAAA,EAAE;AAAC,cAAA,CAAA,CAAE,SAAA,GAAU,CAAA;AAAE,cAAA,EAAA,CAAG,CAAA,CAAE,UAAS,WAAU;AAAC,gBAAA,EAAA,CAAG,CAAC,CAAA;AAAA,cAAC,CAAC,CAAA;AAAE,cAAA;AAAA,YAAM;AAAA,UAAC,WAAS,CAAA,KAAI,CAAA,IAAG,EAAE,SAAA,CAAU,OAAA,CAAQ,cAAc,YAAA,EAAa;AAAC,YAAA,CAAA,CAAE,YAAU,CAAA,KAAI,CAAA,CAAE,GAAA,GAAI,CAAA,CAAE,UAAU,aAAA,GAAc,IAAA;AAAK,YAAA;AAAA,UAAM;AAAA,QAAA;AAAA,MAAC;AAAC,MAAA,CAAA,CAAE,SAAA,GAAU,IAAA;AAAA,IAAI;AAClT,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,IAAA,KAAO,CAAA,CAAE,SAAA,EAAU,OAAM,KAAA;AAAG,MAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,CAAE,gBAAA,EAAiB,CAAA,GAAE,EAAE,MAAA,IAAQ;AAAC,QAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,CAAE,YAAA,EAAa,CAAA,CAAE,kBAAiB,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,CAAE,WAAW,CAAA;AAAE,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,UAAA,IAAI,IAAE,IAAI,CAAA,CAAE,WAAA,CAAY,CAAA,CAAE,MAAK,CAAC,CAAA;AAAE,UAAA,EAAA,GAAG,CAAA;AAAE,UAAA,CAAA,CAAE,MAAA,CAAO,cAAc,CAAC,CAAA;AAAE,UAAA,EAAA,GAAG,IAAA;AAAA,QAAI,CAAA,MAAM,OAAO,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,CAAE,YAAU,CAAA,EAAE,KAAA;AAAG,QAAA,CAAA,CAAE,KAAA,EAAM;AAAA,MAAC;AAAC,MAAA,OAAM,IAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,CAAC,CAAA,IAAG,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,EAAA,GAAG,KAAA;AAAG,MAAA,IAAA,KAAO,EAAA,IAAI,EAAA,CAAG,EAAE,CAAA,KAAI,EAAA,GAAG,IAAA,CAAA;AAAM,MAAA,IAAA,KAAO,EAAA,IAAI,EAAA,CAAG,EAAE,CAAA,KAAI,EAAA,GAAG,IAAA,CAAA;AAAM,MAAA,IAAA,KAAO,EAAA,IAAI,EAAA,CAAG,EAAE,CAAA,KAAI,EAAA,GAAG,IAAA,CAAA;AAAM,MAAA,EAAA,CAAG,QAAQ,EAAE,CAAA;AAAE,MAAA,EAAA,CAAG,QAAQ,EAAE,CAAA;AAAA,IAAC;AACnf,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,SAAA,KAAY,CAAA,KAAI,CAAA,CAAE,SAAA,GAAU,IAAA,EAAK,EAAA,KAAK,EAAA,GAAG,IAAA,EAAG,EAAA,CAAG,yBAAA,CAA0B,EAAA,CAAG,uBAAA,EAAwB,EAAE,CAAA,CAAA,CAAA;AAAA,IAAG;AAC5H,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,SAAS,EAAEC,EAAAA,EAAE;AAAC,QAAA,OAAO,EAAA,CAAGA,IAAE,CAAC,CAAA;AAAA,MAAC;AAAC,MAAA,IAAG,CAAA,GAAE,GAAG,MAAA,EAAO;AAAC,QAAA,EAAA,CAAG,EAAA,CAAG,CAAC,CAAA,EAAE,CAAC,CAAA;AAAE,QAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,QAAO,CAAA,EAAA,EAAI;AAAC,UAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,UAAA,CAAA,CAAE,SAAA,KAAY,CAAA,KAAI,CAAA,CAAE,SAAA,GAAU,IAAA,CAAA;AAAA,QAAK;AAAA,MAAC;AAAC,MAAA,IAAA,KAAO,EAAA,IAAI,EAAA,CAAG,EAAA,EAAG,CAAC,CAAA;AAAE,MAAA,IAAA,KAAO,EAAA,IAAI,EAAA,CAAG,EAAA,EAAG,CAAC,CAAA;AAAE,MAAA,IAAA,KAAO,EAAA,IAAI,EAAA,CAAG,EAAA,EAAG,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,QAAQ,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,QAAQ,CAAC,CAAA;AAAE,MAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,QAAO,CAAA,EAAA,EAAI,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,CAAE,SAAA,KAAY,CAAA,KAAI,EAAE,SAAA,GAAU,IAAA,CAAA;AAAM,MAAA,OAAK,IAAE,EAAA,CAAG,MAAA,KAAS,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,IAAA,KAAO,CAAA,CAAE,SAAA,CAAA,OAAe,CAAC,CAAA,EAAE,SAAO,CAAA,CAAE,SAAA,IAAW,GAAG,KAAA,EAAM;AAAA,IAAC;AAAC,IAAA,IAAI,KAAG,EAAA,CAAG,uBAAA;AAAV,IAAA,IAAkC,EAAA,GAAG,IAAA;AAC5a,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,UAAA;AAAW,MAAA,EAAA,CAAG,UAAA,GAAW,IAAA;AAAK,MAAA,IAAG;AAAC,QAAA,CAAA,GAAE,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,CAAA,GAAE,CAAA,EAAE,GAAG,UAAA,GAAW,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,UAAA;AAAW,MAAA,EAAA,CAAG,UAAA,GAAW,IAAA;AAAK,MAAA,IAAG;AAAC,QAAA,CAAA,GAAE,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,CAAA,GAAE,CAAA,EAAE,GAAG,UAAA,GAAW,CAAA;AAAA,MAAC;AAAA,IAAC;AACjO,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,EAAG;AAAC,QAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,QAAA,IAAG,IAAA,KAAO,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,EAAA,EAAG,CAAC,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAA,aAAA,IAAU,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA,IAAI,eAAA,EAAgB;AAAA,aAAA,IAAU,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,KAAG,EAAA,GAAG,EAAA,CAAG,OAAA,CAAQ,CAAC,CAAA,EAAE;AAAC,UAAA,OAAK,SAAO,CAAA,IAAG;AAAC,YAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,YAAA,IAAA,KAAO,CAAA,IAAG,GAAG,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,YAAA,IAAA,KAAO,KAAG,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,IAAG,CAAC,CAAA;AAAE,YAAA,IAAG,MAAI,CAAA,EAAE;AAAM,YAAA,CAAA,GAAE,CAAA;AAAA,UAAC;AAAC,UAAA,IAAA,KAAO,CAAA,IAAG,EAAE,eAAA,EAAgB;AAAA,QAAC,OAAM,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,MAAK,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,IAAA;AACpU,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,EAAA,GAAG,IAAA;AAAK,MAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,IAAG,IAAA,KAAO,GAAE,IAAG,CAAA,GAAE,GAAG,CAAC,CAAA,EAAE,IAAA,KAAO,CAAA,EAAE,CAAA,GAAE,IAAA;AAAA,WAAA,IAAa,CAAA,GAAE,CAAA,CAAE,GAAA,EAAI,EAAA,KAAK,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,QAAA,IAAG,IAAA,KAAO,GAAE,OAAO,CAAA;AAAE,QAAA,CAAA,GAAE,IAAA;AAAA,MAAI,CAAA,MAAA,IAAS,MAAI,CAAA,EAAE;AAAC,QAAA,IAAG,CAAA,CAAE,SAAA,CAAU,OAAA,CAAQ,aAAA,CAAc,YAAA,EAAa,OAAO,CAAA,KAAI,CAAA,CAAE,GAAA,GAAI,CAAA,CAAE,SAAA,CAAU,aAAA,GAAc,IAAA;AAAK,QAAA,CAAA,GAAE,IAAA;AAAA,MAAI,CAAA,MAAM,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,IAAA,CAAA;AAAM,MAAA,EAAA,GAAG,CAAA;AAAE,MAAA,OAAO,IAAA;AAAA,IAAI;AAC7S,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,QAAA;AAAA,QAAS,KAAK,OAAA;AAAA,QAAQ,KAAK,OAAA;AAAA,QAAQ,KAAK,aAAA;AAAA,QAAc,KAAK,MAAA;AAAA,QAAO,KAAK,KAAA;AAAA,QAAM,KAAK,UAAA;AAAA,QAAW,KAAK,UAAA;AAAA,QAAW,KAAK,SAAA;AAAA,QAAU,KAAK,WAAA;AAAA,QAAY,KAAK,MAAA;AAAA,QAAO,KAAK,SAAA;AAAA,QAAU,KAAK,UAAA;AAAA,QAAW,KAAK,OAAA;AAAA,QAAQ,KAAK,SAAA;AAAA,QAAU,KAAK,SAAA;AAAA,QAAU,KAAK,UAAA;AAAA,QAAW,KAAK,OAAA;AAAA,QAAQ,KAAK,WAAA;AAAA,QAAY,KAAK,SAAA;AAAA,QAAU,KAAK,OAAA;AAAA,QAAQ,KAAK,OAAA;AAAA,QAAQ,KAAK,MAAA;AAAA,QAAO,KAAK,eAAA;AAAA,QAAgB,KAAK,aAAA;AAAA,QAAc,KAAK,WAAA;AAAA,QAAY,KAAK,YAAA;AAAA,QAAa,KAAK,OAAA;AAAA,QAAQ,KAAK,QAAA;AAAA,QAAS,KAAK,QAAA;AAAA,QAAS,KAAK,QAAA;AAAA,QAAS,KAAK,aAAA;AAAA,QAAc,KAAK,UAAA;AAAA,QAAW,KAAK,YAAA;AAAA,QAAa,KAAK,cAAA;AAAA,QAAe,KAAK,QAAA;AAAA,QAAS,KAAK,iBAAA;AAAA,QAAkB,KAAK,WAAA;AAAA,QAAY,KAAK,kBAAA;AAAA,QAAmB,KAAK,gBAAA;AAAA,QAAiB,KAAK,mBAAA;AAAA,QAAoB,KAAK,YAAA;AAAA,QAAa,KAAK,WAAA;AAAA,QAAY,KAAK,aAAA;AAAA,QAAc,KAAK,MAAA;AAAA,QAAO,KAAK,kBAAA;AAAA,QAAmB,KAAK,OAAA;AAAA,QAAQ,KAAK,YAAA;AAAA,QAAa,KAAK,UAAA;AAAA,QAAW,KAAK,QAAA;AAAA,QAAS,KAAK,aAAA;AAAc,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,MAAA;AAAA,QAAO,KAAK,WAAA;AAAA,QAAY,KAAK,UAAA;AAAA,QAAW,KAAK,WAAA;AAAA,QAAY,KAAK,UAAA;AAAA,QAAW,KAAK,WAAA;AAAA,QAAY,KAAK,UAAA;AAAA,QAAW,KAAK,WAAA;AAAA,QAAY,KAAK,aAAA;AAAA,QAAc,KAAK,YAAA;AAAA,QAAa,KAAK,aAAA;AAAA,QAAc,KAAK,QAAA;AAAA,QAAS,KAAK,QAAA;AAAA,QAAS,KAAK,WAAA;AAAA,QAAY,KAAK,OAAA;AAAA,QAAQ,KAAK,YAAA;AAAA,QAAa,KAAK,YAAA;AAAA,QAAa,KAAK,cAAA;AAAA,QAAe,KAAK,cAAA;AAAe,UAAA,OAAO,CAAA;AAAA,QACpqC,KAAK,SAAA;AAAU,UAAA,QAAO,IAAG;AAAE,YAAC,KAAK,EAAA;AAAG,cAAA,OAAO,CAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA,OAAO,CAAA;AAAA,YAAE,KAAK,EAAA;AAAA,YAAG,KAAK,EAAA;AAAG,cAAA,OAAO,EAAA;AAAA,YAAG,KAAK,EAAA;AAAG,cAAA,OAAO,SAAA;AAAA,YAAU;AAAQ,cAAA,OAAO,EAAA;AAAA;AAAE,QAAC;AAAQ,UAAA,OAAO,EAAA;AAAA;AAAE,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,IAAA;AAAP,IAAA,IAAY,EAAA,GAAG,IAAA;AAAf,IAAA,IAAoB,EAAA,GAAG,IAAA;AAAK,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,IAAG,IAAG,OAAO,EAAA;AAAG,MAAA,IAAI,CAAA,EAAE,CAAA,GAAE,EAAA,EAAG,CAAA,GAAE,EAAE,MAAA,EAAO,CAAA,EAAE,CAAA,GAAE,OAAA,IAAU,KAAG,EAAA,CAAG,KAAA,GAAM,EAAA,CAAG,WAAA,EAAY,IAAE,CAAA,CAAE,MAAA;AAAO,MAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,IAAG,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,EAAA,EAAI;AAAC,MAAA,IAAI,IAAE,CAAA,GAAE,CAAA;AAAE,MAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,IAAG,CAAA,IAAG,CAAA,CAAE,CAAA,GAAE,CAAC,CAAA,KAAI,CAAA,CAAE,CAAA,GAAE,CAAC,CAAA,EAAE,CAAA,EAAA,EAAI;AAAC,MAAA,OAAO,EAAA,GAAG,EAAE,KAAA,CAAM,CAAA,EAAE,IAAE,CAAA,GAAE,CAAA,GAAE,IAAE,MAAM,CAAA;AAAA,IAAC;AACxY,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,UAAA,IAAa,CAAA,IAAG,CAAA,GAAE,CAAA,CAAE,QAAA,EAAS,CAAA,KAAI,KAAG,EAAA,KAAK,CAAA,KAAI,CAAA,GAAE,EAAA,CAAA,IAAK,CAAA,GAAE,CAAA;AAAE,MAAA,EAAA,KAAK,MAAI,CAAA,GAAE,EAAA,CAAA;AAAI,MAAA,OAAO,EAAA,IAAI,CAAA,IAAG,EAAA,KAAK,CAAA,GAAE,CAAA,GAAE,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,OAAM,IAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,OAAM,KAAA;AAAA,IAAE;AAC5K,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,SAAS,CAAA,CAAEA,EAAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,QAAA,IAAA,CAAK,UAAA,GAAWA,EAAAA;AAAE,QAAA,IAAA,CAAK,WAAA,GAAY,CAAA;AAAE,QAAA,IAAA,CAAK,IAAA,GAAK,CAAA;AAAE,QAAA,IAAA,CAAK,WAAA,GAAY,CAAA;AAAE,QAAA,IAAA,CAAK,MAAA,GAAO,CAAA;AAAE,QAAA,IAAA,CAAK,aAAA,GAAc,IAAA;AAAK,QAAA,KAAA,IAAQ,KAAK,CAAA,EAAE,CAAA,CAAE,eAAe,CAAC,CAAA,KAAIA,KAAE,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA,CAAK,CAAC,CAAA,GAAEA,EAAAA,GAAEA,GAAE,CAAC,CAAA,GAAE,EAAE,CAAC,CAAA,CAAA;AAAG,QAAA,IAAA,CAAK,kBAAA,GAAA,CAAoB,QAAM,CAAA,CAAE,gBAAA,GAAiB,EAAE,gBAAA,GAAiB,KAAA,KAAK,CAAA,CAAE,WAAA,IAAa,EAAA,GAAG,EAAA;AAAG,QAAA,IAAA,CAAK,oBAAA,GAAqB,EAAA;AAAG,QAAA,OAAO,IAAA;AAAA,MAAI;AAAC,MAAA,CAAA,CAAE,CAAA,CAAE,SAAA,EAAU,EAAC,cAAA,EAAe,WAAU;AAAC,QAAA,IAAA,CAAK,gBAAA,GAAiB,IAAA;AAAG,QAAA,IAAID,KAAE,IAAA,CAAK,WAAA;AAAY,QAAAA,EAAAA,KAAIA,EAAAA,CAAE,cAAA,GAAeA,EAAAA,CAAE,gBAAe,GAAE,SAAA,KAAY,OAAOA,EAAAA,CAAE,WAAA,KAC7eA,EAAAA,CAAE,WAAA,GAAY,KAAA,CAAA,EAAI,KAAK,kBAAA,GAAmB,EAAA,CAAA;AAAA,MAAG,CAAA,EAAE,iBAAgB,WAAU;AAAC,QAAA,IAAIA,KAAE,IAAA,CAAK,WAAA;AAAY,QAAAA,EAAAA,KAAIA,EAAAA,CAAE,eAAA,GAAgBA,EAAAA,CAAE,iBAAgB,GAAE,SAAA,KAAY,OAAOA,EAAAA,CAAE,YAAA,KAAeA,EAAAA,CAAE,YAAA,GAAa,IAAA,CAAA,EAAI,KAAK,oBAAA,GAAqB,EAAA,CAAA;AAAA,MAAG,CAAA,EAAE,SAAQ,WAAU;AAAA,MAAC,CAAA,EAAE,YAAA,EAAa,EAAA,EAAG,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AACjR,IAAA,IAAI,EAAA,GAAG,EAAC,UAAA,EAAW,CAAA,EAAE,OAAA,EAAQ,GAAE,UAAA,EAAW,CAAA,EAAE,SAAA,EAAU,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,SAAA,IAAW,IAAA,CAAK,GAAA,EAAI;AAAA,IAAC,CAAA,EAAE,gBAAA,EAAiB,CAAA,EAAE,SAAA,EAAU,CAAA,EAAC;AAAhI,IAAA,IAAkI,EAAA,GAAG,GAAG,EAAE,CAAA;AAA1I,IAAA,IAA4I,EAAA,GAAG,CAAA,CAAE,EAAC,EAAE,EAAA,EAAG,EAAC,IAAA,EAAK,CAAA,EAAE,MAAA,EAAO,CAAA,EAAE,CAAA;AAAxK,IAAA,IAA0K,EAAA,GAAG,GAAG,EAAE,CAAA;AAAlL,IAAA,IAAoL,EAAA;AAApL,IAAA,IAAuL,EAAA;AAAvL,IAAA,IAA0L,EAAA;AAA1L,IAAA,IAA6L,EAAA,GAAG,CAAA,CAAE,EAAC,EAAE,IAAG,EAAC,OAAA,EAAQ,CAAA,EAAE,OAAA,EAAQ,GAAE,OAAA,EAAQ,CAAA,EAAE,OAAA,EAAQ,CAAA,EAAE,OAAM,CAAA,EAAE,KAAA,EAAM,CAAA,EAAE,OAAA,EAAQ,CAAA,EAAE,QAAA,EAAS,CAAA,EAAE,MAAA,EAAO,GAAE,OAAA,EAAQ,CAAA,EAAE,gBAAA,EAAiB,EAAA,EAAG,QAAO,CAAA,EAAE,OAAA,EAAQ,CAAA,EAAE,aAAA,EAAc,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,MAAA,KAAS,CAAA,CAAE,aAAA,GAAc,CAAA,CAAE,WAAA,KAAc,CAAA,CAAE,UAAA,GAAW,CAAA,CAAE,SAAA,GAAU,CAAA,CAAE,WAAA,GAAY,CAAA,CAAE,aAAA;AAAA,IAAa,CAAA,EAAE,SAAA,EAAU,SAAS,CAAA,EAAE;AAAC,MAAA,IAAG,WAAA,IAC3e,CAAA,EAAE,OAAO,CAAA,CAAE,SAAA;AAAU,MAAA,CAAA,KAAI,OAAK,EAAA,IAAI,WAAA,KAAc,EAAE,IAAA,IAAM,EAAA,GAAG,EAAE,OAAA,GAAQ,EAAA,CAAG,OAAA,EAAQ,EAAA,GAAG,EAAE,OAAA,GAAQ,EAAA,CAAG,WAAS,EAAA,GAAG,EAAA,GAAG,GAAE,EAAA,GAAG,CAAA,CAAA;AAAG,MAAA,OAAO,EAAA;AAAA,IAAE,CAAA,EAAE,SAAA,EAAU,SAAS,CAAA,EAAE;AAAC,MAAA,OAAM,WAAA,IAAc,CAAA,GAAE,CAAA,CAAE,SAAA,GAAU,EAAA;AAAA,IAAE,GAAE,CAAA;AAD9L,IAAA,IACgM,EAAA,GAAG,GAAG,EAAE,CAAA;AADxM,IAAA,IAC0M,EAAA,GAAG,EAAE,EAAC,EAAE,IAAG,EAAC,YAAA,EAAa,GAAE,CAAA;AADrO,IAAA,IACuO,EAAA,GAAG,GAAG,EAAE,CAAA;AAD/O,IAAA,IACiP,EAAA,GAAG,EAAE,EAAC,EAAE,IAAG,EAAC,aAAA,EAAc,GAAE,CAAA;AAD7Q,IAAA,IAC+Q,EAAA,GAAG,GAAG,EAAE,CAAA;AADvR,IAAA,IACyR,EAAA,GAAG,CAAA,CAAE,EAAC,EAAE,EAAA,EAAG,EAAC,aAAA,EAAc,CAAA,EAAE,WAAA,EAAY,CAAA,EAAE,aAAA,EAAc,CAAA,EAAE,CAAA;AADnV,IAAA,IACqV,EAAA,GAAG,GAAG,EAAE,CAAA;AAD7V,IAAA,IAC+V,EAAA,GAAG,EAAE,EAAC,EAAE,IAAG,EAAC,aAAA,EAAc,SAAS,CAAA,EAAE;AAAC,MAAA,OAAM,eAAA,IAAkB,CAAA,GAAE,CAAA,CAAE,aAAA,GAAc,MAAA,CAAO,aAAA;AAAA,IAAa,GAAE,CAAA;AADrc,IAAA,IACuc,EAAA,GAAG,GAAG,EAAE,CAAA;AAD/c,IAAA,IACid,EAAA,GAAG,EAAE,EAAC,EAAE,IAAG,EAAC,IAAA,EAAK,GAAE,CAAA;AADpe,IAAA,IACse,EAAA,GAAG,GAAG,EAAE,CAAA;AAD9e,IAAA,IACgf,EAAA,GAAG;AAAA,MAAC,GAAA,EAAI,QAAA;AAAA,MACxf,QAAA,EAAS,GAAA;AAAA,MAAI,IAAA,EAAK,WAAA;AAAA,MAAY,EAAA,EAAG,SAAA;AAAA,MAAU,KAAA,EAAM,YAAA;AAAA,MAAa,IAAA,EAAK,WAAA;AAAA,MAAY,GAAA,EAAI,QAAA;AAAA,MAAS,GAAA,EAAI,IAAA;AAAA,MAAK,IAAA,EAAK,aAAA;AAAA,MAAc,IAAA,EAAK,aAAA;AAAA,MAAc,MAAA,EAAO,YAAA;AAAA,MAAa,eAAA,EAAgB;AAAA,KAAc;AAF7L,IAAA,IAE+L,EAAA,GAAG;AAAA,MAAC,CAAA,EAAE,WAAA;AAAA,MAAY,CAAA,EAAE,KAAA;AAAA,MAAM,EAAA,EAAG,OAAA;AAAA,MAAQ,EAAA,EAAG,OAAA;AAAA,MAAQ,EAAA,EAAG,OAAA;AAAA,MAAQ,EAAA,EAAG,SAAA;AAAA,MAAU,EAAA,EAAG,KAAA;AAAA,MAAM,EAAA,EAAG,OAAA;AAAA,MAAQ,EAAA,EAAG,UAAA;AAAA,MAAW,EAAA,EAAG,QAAA;AAAA,MAAS,EAAA,EAAG,GAAA;AAAA,MAAI,EAAA,EAAG,QAAA;AAAA,MAAS,EAAA,EAAG,UAAA;AAAA,MAAW,EAAA,EAAG,KAAA;AAAA,MAAM,EAAA,EAAG,MAAA;AAAA,MAAO,EAAA,EAAG,WAAA;AAAA,MAAY,EAAA,EAAG,SAAA;AAAA,MAAU,EAAA,EAAG,YAAA;AAAA,MAAa,EAAA,EAAG,WAAA;AAAA,MAAY,EAAA,EAAG,QAAA;AAAA,MAAS,EAAA,EAAG,QAAA;AAAA,MAAS,GAAA,EAAI,IAAA;AAAA,MAAK,GAAA,EAAI,IAAA;AAAA,MAAK,GAAA,EAAI,IAAA;AAAA,MAAK,GAAA,EAAI,IAAA;AAAA,MAAK,GAAA,EAAI,IAAA;AAAA,MAAK,GAAA,EAAI,IAAA;AAAA,MAAK,GAAA,EAAI,IAAA;AAAA,MACtf,GAAA,EAAI,IAAA;AAAA,MAAK,GAAA,EAAI,IAAA;AAAA,MAAK,GAAA,EAAI,KAAA;AAAA,MAAM,GAAA,EAAI,KAAA;AAAA,MAAM,GAAA,EAAI,KAAA;AAAA,MAAM,GAAA,EAAI,SAAA;AAAA,MAAU,GAAA,EAAI,YAAA;AAAA,MAAa,GAAA,EAAI;AAAA,KAAM;AAHzF,IAAA,IAG2F,EAAA,GAAG,EAAC,GAAA,EAAI,QAAA,EAAS,SAAQ,SAAA,EAAU,IAAA,EAAK,SAAA,EAAU,KAAA,EAAM,UAAA,EAAU;AAAE,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,IAAA,CAAK,WAAA;AAAY,MAAA,OAAO,CAAA,CAAE,gBAAA,GAAiB,CAAA,CAAE,gBAAA,CAAiB,CAAC,CAAA,GAAA,CAAG,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,IAAG,CAAC,CAAC,CAAA,CAAE,CAAC,CAAA,GAAE,KAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,OAAO,EAAA;AAAA,IAAE;AAChS,IAAA,IAAI,EAAA,GAAG,EAAE,EAAC,EAAE,IAAG,EAAC,GAAA,EAAI,SAAS,CAAA,EAAE;AAAC,MAAA,IAAG,EAAE,GAAA,EAAI;AAAC,QAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,CAAE,GAAG,KAAG,CAAA,CAAE,GAAA;AAAI,QAAA,IAAG,cAAA,KAAiB,GAAE,OAAO,CAAA;AAAA,MAAC;AAAC,MAAA,OAAM,UAAA,KAAa,CAAA,CAAE,IAAA,IAAM,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,EAAA,KAAK,CAAA,GAAE,OAAA,GAAQ,MAAA,CAAO,YAAA,CAAa,CAAC,CAAA,IAAG,SAAA,KAAY,CAAA,CAAE,IAAA,IAAM,OAAA,KAAU,CAAA,CAAE,OAAK,EAAA,CAAG,CAAA,CAAE,OAAO,CAAA,IAAG,cAAA,GAAe,EAAA;AAAA,IAAE,CAAA,EAAE,MAAK,CAAA,EAAE,QAAA,EAAS,GAAE,OAAA,EAAQ,CAAA,EAAE,UAAS,CAAA,EAAE,MAAA,EAAO,GAAE,OAAA,EAAQ,CAAA,EAAE,QAAO,CAAA,EAAE,MAAA,EAAO,GAAE,gBAAA,EAAiB,EAAA,EAAG,QAAA,EAAS,SAAS,CAAA,EAAE;AAAC,MAAA,OAAM,UAAA,KAAa,CAAA,CAAE,IAAA,GAAK,EAAA,CAAG,CAAC,CAAA,GAAE,CAAA;AAAA,IAAC,CAAA,EAAE,OAAA,EAAQ,SAAS,CAAA,EAAE;AAAC,MAAA,OAAM,cAAY,CAAA,CAAE,IAAA,IAAM,YAAU,CAAA,CAAE,IAAA,GAAK,EAAE,OAAA,GAAQ,CAAA;AAAA,IAAC,CAAA,EAAE,KAAA,EAAM,SAAS,CAAA,EAAE;AAAC,MAAA,OAAM,UAAA,KAC7e,CAAA,CAAE,IAAA,GAAK,EAAA,CAAG,CAAC,CAAA,GAAE,SAAA,KAAY,CAAA,CAAE,IAAA,IAAM,OAAA,KAAU,CAAA,CAAE,IAAA,GAAK,EAAE,OAAA,GAAQ,CAAA;AAAA,IAAC,GAAE,CAAA;AAD/D,IAAA,IACiE,EAAA,GAAG,GAAG,EAAE,CAAA;AADzE,IAAA,IAC2E,EAAA,GAAG,CAAA,CAAE,EAAC,EAAE,EAAA,EAAG,EAAC,SAAA,EAAU,CAAA,EAAE,KAAA,EAAM,CAAA,EAAE,MAAA,EAAO,CAAA,EAAE,QAAA,EAAS,GAAE,kBAAA,EAAmB,CAAA,EAAE,KAAA,EAAM,CAAA,EAAE,KAAA,EAAM,CAAA,EAAE,KAAA,EAAM,CAAA,EAAE,WAAA,EAAY,CAAA,EAAE,SAAA,EAAU,CAAA,EAAE,CAAA;AADtM,IAAA,IACwM,EAAA,GAAG,GAAG,EAAE,CAAA;AADhN,IAAA,IACkN,EAAA,GAAG,EAAE,EAAC,EAAE,IAAG,EAAC,OAAA,EAAQ,CAAA,EAAE,aAAA,EAAc,CAAA,EAAE,cAAA,EAAe,GAAE,MAAA,EAAO,CAAA,EAAE,SAAQ,CAAA,EAAE,OAAA,EAAQ,GAAE,QAAA,EAAS,CAAA,EAAE,gBAAA,EAAiB,EAAA,EAAG,CAAA;AADrU,IAAA,IACuU,EAAA,GAAG,GAAG,EAAE,CAAA;AAD/U,IAAA,IACiV,EAAA,GAAG,CAAA,CAAE,EAAC,EAAE,EAAA,EAAG,EAAC,YAAA,EAAa,CAAA,EAAE,WAAA,EAAY,CAAA,EAAE,aAAA,EAAc,CAAA,EAAE,CAAA;AAD1Y,IAAA,IAC4Y,EAAA,GAAG,GAAG,EAAE,CAAA;AADpZ,IAAA,IACsZ,EAAA,GAAG,CAAA,CAAE,EAAC,EAAE,EAAA,EAAG;AAAA,MAAC,MAAA,EAAO,SAAS,CAAA,EAAE;AAAC,QAAA,OAAM,QAAA,IAAW,IAAE,CAAA,CAAE,MAAA,GAAO,iBAAgB,CAAA,GAAE,CAAC,EAAE,WAAA,GAAY,CAAA;AAAA,MAAC,CAAA;AAAA,MACnf,MAAA,EAAO,SAAS,CAAA,EAAE;AAAC,QAAA,OAAM,QAAA,IAAW,CAAA,GAAE,CAAA,CAAE,MAAA,GAAO,aAAA,IAAgB,CAAA,GAAE,CAAC,CAAA,CAAE,WAAA,GAAY,YAAA,IAAe,CAAA,GAAE,CAAC,EAAE,UAAA,GAAW,CAAA;AAAA,MAAC,CAAA;AAAA,MAAE,MAAA,EAAO,CAAA;AAAA,MAAE,SAAA,EAAU;AAAA,KAAE,CAAA;AAFvI,IAAA,IAEyI,EAAA,GAAG,GAAG,EAAE,CAAA;AAFjJ,IAAA,IAEmJ,EAAA,GAAG,CAAC,CAAA,EAAE,EAAA,EAAG,IAAG,EAAE,CAAA;AAFjK,IAAA,IAEmK,EAAA,GAAG,MAAI,kBAAA,IAAqB,MAAA;AAF/L,IAAA,IAEsM,EAAA,GAAG,IAAA;AAAK,IAAA,EAAA,IAAI,cAAA,IAAiB,QAAA,KAAW,EAAA,GAAG,QAAA,CAAS,YAAA,CAAA;AAAc,IAAA,IAAI,EAAA,GAAG,EAAA,IAAI,WAAA,IAAc,MAAA,IAAQ,CAAC,EAAA;AAAlC,IAAA,IAAqC,KAAG,EAAA,KAAK,CAAC,MAAI,EAAA,IAAI,CAAA,GAAE,MAAI,EAAA,IAAI,EAAA,CAAA;AAAhE,IAAA,IAAoE,EAAA,GAAG,MAAA,CAAO,YAAA,CAAa,EAAE,CAAA;AAA7F,IAAA,IAA+F,EAAA,GAAG,KAAA;AAC1W,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,OAAA;AAAQ,UAAA,OAAM,EAAA,KAAK,EAAA,CAAG,OAAA,CAAQ,CAAA,CAAE,OAAO,CAAA;AAAA,QAAE,KAAK,SAAA;AAAU,UAAA,OAAO,QAAM,CAAA,CAAE,OAAA;AAAA,QAAQ,KAAK,UAAA;AAAA,QAAW,KAAK,WAAA;AAAA,QAAY,KAAK,UAAA;AAAW,UAAA,OAAM,IAAA;AAAA,QAAG;AAAQ,UAAA,OAAM,KAAA;AAAA;AAAE,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAO,MAAA,OAAM,aAAW,OAAO,CAAA,IAAG,MAAA,IAAS,CAAA,GAAE,EAAE,IAAA,GAAK,IAAA;AAAA,IAAI;AAAC,IAAA,IAAI,EAAA,GAAG,KAAA;AAAG,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,gBAAA;AAAiB,UAAA,OAAO,GAAG,CAAC,CAAA;AAAA,QAAE,KAAK,UAAA;AAAW,UAAA,IAAG,EAAA,KAAK,CAAA,CAAE,KAAA,EAAM,OAAO,IAAA;AAAK,UAAA,EAAA,GAAG,IAAA;AAAG,UAAA,OAAO,EAAA;AAAA,QAAG,KAAK,WAAA;AAAY,UAAA,OAAO,IAAE,CAAA,CAAE,IAAA,EAAK,CAAA,KAAI,EAAA,IAAI,KAAG,IAAA,GAAK,CAAA;AAAA,QAAE;AAAQ,UAAA,OAAO,IAAA;AAAA;AAAI,IAAC;AACld,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,IAAG,OAAM,gBAAA,KAAmB,KAAG,CAAC,EAAA,IAAI,GAAG,CAAA,EAAE,CAAC,KAAG,CAAA,GAAE,EAAA,IAAK,EAAA,GAAG,EAAA,GAAG,KAAG,IAAA,EAAK,EAAA,GAAG,OAAG,CAAA,IAAG,IAAA;AAAK,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,OAAA;AAAQ,UAAA,OAAO,IAAA;AAAA,QAAK,KAAK,UAAA;AAAW,UAAA,IAAG,EAAE,CAAA,CAAE,OAAA,IAAS,CAAA,CAAE,MAAA,IAAQ,EAAE,OAAA,CAAA,IAAU,CAAA,CAAE,OAAA,IAAS,CAAA,CAAE,MAAA,EAAO;AAAC,YAAA,IAAG,EAAE,IAAA,IAAM,CAAA,GAAE,EAAE,IAAA,CAAK,MAAA,SAAc,CAAA,CAAE,IAAA;AAAK,YAAA,IAAG,EAAE,KAAA,EAAM,OAAO,MAAA,CAAO,YAAA,CAAa,EAAE,KAAK,CAAA;AAAA,UAAC;AAAC,UAAA,OAAO,IAAA;AAAA,QAAK,KAAK,gBAAA;AAAiB,UAAA,OAAO,EAAA,IAAI,IAAA,KAAO,CAAA,CAAE,MAAA,GAAO,OAAK,CAAA,CAAE,IAAA;AAAA,QAAK;AAAQ,UAAA,OAAO,IAAA;AAAA;AAAI,IAAC;AACvY,IAAA,IAAI,EAAA,GAAG,EAAC,KAAA,EAAM,IAAA,EAAG,IAAA,EAAK,IAAA,EAAG,QAAA,EAAS,IAAA,EAAG,gBAAA,EAAiB,IAAA,EAAG,KAAA,EAAM,IAAA,EAAG,OAAM,IAAA,EAAG,MAAA,EAAO,IAAA,EAAG,QAAA,EAAS,IAAA,EAAG,KAAA,EAAM,IAAA,EAAG,MAAA,EAAO,MAAG,GAAA,EAAI,IAAA,EAAG,IAAA,EAAK,IAAA,EAAG,IAAA,EAAK,IAAA,EAAG,GAAA,EAAI,IAAA,EAAG,MAAK,IAAA,EAAE;AAAE,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,IAAG,CAAA,CAAE,QAAA,IAAU,CAAA,CAAE,SAAS,WAAA,EAAY;AAAE,MAAA,OAAM,OAAA,KAAU,CAAA,GAAE,CAAC,CAAC,EAAA,CAAG,EAAE,IAAI,CAAA,GAAE,UAAA,KAAa,CAAA,GAAE,IAAA,GAAG,KAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,CAAG,GAAE,UAAU,CAAA;AAAE,MAAA,CAAA,GAAE,EAAE,MAAA,KAAS,CAAA,GAAE,IAAI,EAAA,CAAG,UAAA,EAAW,UAAS,IAAA,EAAK,CAAA,EAAE,CAAC,CAAA,EAAE,EAAE,IAAA,CAAK,EAAC,OAAM,CAAA,EAAE,SAAA,EAAU,GAAE,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,IAAI,EAAA,GAAG,IAAA;AAAP,IAAA,IAAY,EAAA,GAAG,IAAA;AAAK,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE,OAAO,CAAA;AAAA,IAAC;AACpe,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,QAAA,KAAW,GAAE,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,KAAA;AAAG,IAAA,IAAG,EAAA,EAAG;AAAQ,MAAA,IAAG,EAAA,EAAG;AAAK,QAAA,EAAA,GAAG,SAAA,IAAY,QAAA;AAAS,QAAA,IAAG,CAAC,EAAA,EAAG;AAAK,UAAA,EAAA,GAAG,QAAA,CAAS,cAAc,KAAK,CAAA;AAAE,UAAA,EAAA,CAAG,YAAA,CAAa,WAAU,SAAS,CAAA;AAAE,UAAA,EAAA,GAAG,UAAA,KAAa,OAAO,EAAA,CAAG,OAAA;AAAA,QAAO;AAAC,QAAA,EAAA,GAAG,EAAA;AAAA,MAAE,OAAM,EAAA,GAAG,KAAA;AAAG,MAAA,EAAA,GAAG,EAAA,KAAK,CAAC,QAAA,CAAS,YAAA,IAAc,IAAE,QAAA,CAAS,YAAA,CAAA;AAAA,IAAa;AAAnO,IAAA,IAAA,EAAA;AAAc,IAAA,IAAA,EAAA;AAAoC,IAAA,IAAA,EAAA;AAAkL,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,EAAA,KAAK,GAAG,WAAA,CAAY,kBAAA,EAAmB,EAAE,CAAA,EAAE,KAAG,EAAA,GAAG,IAAA,CAAA;AAAA,IAAK;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,OAAA,KAAU,CAAA,CAAE,YAAA,IAAc,EAAA,CAAG,EAAE,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,EAAC;AAAE,QAAA,EAAA,CAAG,CAAA,EAAE,EAAA,EAAG,CAAA,EAAE,EAAA,CAAG,CAAC,CAAC,CAAA;AAAE,QAAA,EAAA,CAAG,IAAG,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAC/b,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,SAAA,KAAY,CAAA,IAAG,EAAA,EAAG,EAAE,EAAA,GAAG,GAAE,EAAA,GAAG,CAAA,EAAE,EAAA,CAAG,WAAA,CAAY,kBAAA,EAAmB,EAAE,CAAA,IAAG,UAAA,KAAa,KAAG,EAAA,EAAG;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,iBAAA,KAAoB,KAAG,OAAA,KAAU,CAAA,IAAG,cAAY,CAAA,EAAE,OAAO,GAAG,EAAE,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,OAAA,KAAU,CAAA,EAAE,OAAO,EAAA,CAAG,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,YAAU,CAAA,IAAG,QAAA,KAAW,CAAA,EAAE,OAAO,GAAG,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,KAAI,CAAA,KAAI,CAAA,KAAI,CAAA,IAAG,CAAA,GAAE,MAAI,CAAA,GAAE,CAAA,CAAA,IAAI,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,KAAG,UAAA,KAAa,OAAO,MAAA,CAAO,EAAA,GAAG,OAAO,EAAA,GAAG,EAAA;AACtZ,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,OAAM,IAAA;AAAG,MAAA,IAAG,QAAA,KAAW,OAAO,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,aAAW,OAAO,CAAA,IAAG,IAAA,KAAO,CAAA,EAAE,OAAM,KAAA;AAAG,MAAA,IAAI,CAAA,GAAE,OAAO,IAAA,CAAK,CAAC,GAAE,CAAA,GAAE,MAAA,CAAO,KAAK,CAAC,CAAA;AAAE,MAAA,IAAG,CAAA,CAAE,MAAA,KAAS,CAAA,CAAE,MAAA,EAAO,OAAM,KAAA;AAAG,MAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,QAAO,CAAA,EAAA,EAAI;AAAC,QAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,QAAA,IAAG,CAAC,EAAA,CAAG,IAAA,CAAK,CAAA,EAAE,CAAC,CAAA,IAAG,CAAC,EAAA,CAAG,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,CAAE,CAAC,CAAC,GAAE,OAAM,KAAA;AAAA,MAAE;AAAC,MAAA,OAAM,IAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAK,CAAA,IAAG,CAAA,CAAE,UAAA,IAAY,CAAA,GAAE,CAAA,CAAE,UAAA;AAAW,MAAA,OAAO,CAAA;AAAA,IAAC;AACtU,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,KAAA,IAAQ,GAAE,CAAA,IAAG;AAAC,QAAA,IAAG,CAAA,KAAI,EAAE,QAAA,EAAS;AAAC,UAAA,CAAA,GAAE,CAAA,GAAE,EAAE,WAAA,CAAY,MAAA;AAAO,UAAA,IAAG,CAAA,IAAG,CAAA,IAAG,CAAA,IAAG,CAAA,EAAE,OAAM,EAAC,IAAA,EAAK,CAAA,EAAE,MAAA,EAAO,CAAA,GAAE,CAAA,EAAC;AAAE,UAAA,CAAA,GAAE,CAAA;AAAA,QAAC;AAAC,QAAA,CAAA,EAAE;AAAC,UAAA,OAAK,CAAA,IAAG;AAAC,YAAA,IAAG,EAAE,WAAA,EAAY;AAAC,cAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,cAAA,MAAM,CAAA;AAAA,YAAC;AAAC,YAAA,CAAA,GAAE,CAAA,CAAE,UAAA;AAAA,UAAU;AAAC,UAAA,CAAA,GAAE,MAAA;AAAA,QAAM;AAAC,QAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,IAAG,CAAA,GAAE,CAAA,KAAI,CAAA,GAAE,OAAG,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,QAAG,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,GAAG,CAAA,EAAE,CAAA,CAAE,UAAU,CAAA,GAAE,UAAA,IAAa,CAAA,GAAE,CAAA,CAAE,QAAA,CAAS,CAAC,CAAA,GAAE,CAAA,CAAE,uBAAA,GAAwB,CAAC,EAAE,CAAA,CAAE,uBAAA,CAAwB,CAAC,CAAA,GAAE,MAAI,KAAA,GAAG,KAAA;AAAA,IAAE;AAC9Z,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,KAAA,IAAQ,IAAE,MAAA,EAAO,CAAA,GAAE,IAAG,EAAE,CAAA,YAAa,EAAE,iBAAA,IAAmB;AAAC,QAAA,IAAG;AAAC,UAAA,IAAI,CAAA,GAAE,QAAA,KAAW,OAAO,CAAA,CAAE,cAAc,QAAA,CAAS,IAAA;AAAA,QAAI,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,GAAE,KAAA;AAAA,QAAE;AAAC,QAAA,IAAG,CAAA,MAAI,CAAA,CAAE,aAAA;AAAA,aAAmB;AAAM,QAAA,CAAA,GAAE,EAAA,CAAG,EAAE,QAAQ,CAAA;AAAA,MAAC;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,IAAG,CAAA,CAAE,QAAA,IAAU,CAAA,CAAE,SAAS,WAAA,EAAY;AAAE,MAAA,OAAO,CAAA,KAAI,YAAU,CAAA,KAAI,MAAA,KAAS,EAAE,IAAA,IAAM,QAAA,KAAW,EAAE,IAAA,IAAM,KAAA,KAAQ,EAAE,IAAA,IAAM,KAAA,KAAQ,EAAE,IAAA,IAAM,UAAA,KAAa,EAAE,IAAA,CAAA,IAAO,UAAA,KAAa,CAAA,IAAG,MAAA,KAAS,CAAA,CAAE,eAAA,CAAA;AAAA,IAAgB;AACxa,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAA,EAAG,EAAE,IAAE,CAAA,CAAE,WAAA,EAAY,IAAE,CAAA,CAAE,cAAA;AAAe,MAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,IAAG,CAAA,CAAE,aAAA,IAAe,GAAG,CAAA,CAAE,aAAA,CAAc,eAAA,EAAgB,CAAC,CAAA,EAAE;AAAC,QAAA,IAAG,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAA;AAAE,UAAA,IAAG,CAAA,GAAE,EAAE,KAAA,EAAM,CAAA,GAAE,EAAE,GAAA,EAAI,MAAA,KAAS,CAAA,KAAI,CAAA,GAAE,CAAA,CAAA,EAAG,gBAAA,IAAmB,GAAE,CAAA,CAAE,cAAA,GAAe,GAAE,CAAA,CAAE,YAAA,GAAa,KAAK,GAAA,CAAI,CAAA,EAAE,CAAA,CAAE,KAAA,CAAM,MAAM,CAAA;AAAA,eAAA,IAAU,CAAA,GAAA,CAAG,IAAE,CAAA,CAAE,aAAA,IAAe,aAAW,CAAA,CAAE,WAAA,IAAa,MAAA,EAAO,CAAA,CAAE,YAAA,EAAa;AAAC,YAAA,CAAA,GAAE,EAAE,YAAA,EAAa;AAAE,YAAA,IAAI,CAAA,GAAE,EAAE,WAAA,CAAY,MAAA,EAAO,IAAE,IAAA,CAAK,GAAA,CAAI,CAAA,CAAE,KAAA,EAAM,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,MAAA,KAAS,EAAE,GAAA,GAAI,CAAA,GAAE,KAAK,GAAA,CAAI,CAAA,CAAE,KAAI,CAAC,CAAA;AAAE,YAAA,CAAC,CAAA,CAAE,UAAQ,CAAA,GAAE,CAAA,KAAI,IAAE,CAAA,EAAE,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA,CAAA;AAAG,YAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,YAAA,IAAI,CAAA,GAAE,EAAA;AAAA,cAAG,CAAA;AAAA,cACvf;AAAA,aAAC;AAAE,YAAA,CAAA,IAAG,CAAA,KAAI,CAAA,KAAI,CAAA,CAAE,UAAA,IAAY,CAAA,CAAE,UAAA,KAAa,CAAA,CAAE,IAAA,IAAM,CAAA,CAAE,YAAA,KAAe,CAAA,CAAE,MAAA,IAAQ,CAAA,CAAE,cAAY,CAAA,CAAE,IAAA,IAAM,CAAA,CAAE,WAAA,KAAc,CAAA,CAAE,MAAA,CAAA,KAAU,CAAA,GAAE,CAAA,CAAE,WAAA,EAAY,EAAE,CAAA,CAAE,QAAA,CAAS,CAAA,CAAE,IAAA,EAAK,EAAE,MAAM,CAAA,EAAE,CAAA,CAAE,eAAA,EAAgB,EAAE,CAAA,GAAE,CAAA,IAAG,CAAA,CAAE,QAAA,CAAS,CAAC,CAAA,EAAE,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAK,CAAA,CAAE,MAAM,CAAA,KAAI,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,MAAM,CAAA,EAAE,CAAA,CAAE,QAAA,CAAS,CAAC,CAAA,CAAA,CAAA;AAAA,UAAG;AAAA,QAAA;AAAC,QAAA,CAAA,GAAE,EAAC;AAAE,QAAA,KAAI,IAAE,CAAA,EAAE,CAAA,GAAE,EAAE,UAAA,IAAY,CAAA,KAAI,EAAE,QAAA,IAAU,CAAA,CAAE,KAAK,EAAC,OAAA,EAAQ,GAAE,IAAA,EAAK,CAAA,CAAE,YAAW,GAAA,EAAI,CAAA,CAAE,WAAU,CAAA;AAAE,QAAA,UAAA,KAAa,OAAO,CAAA,CAAE,KAAA,IAAO,CAAA,CAAE,KAAA,EAAM;AAAE,QAAA,KAAI,IAAE,CAAA,EAAE,CAAA,GAAE,EAAE,MAAA,EAAO,CAAA,EAAA,MAAM,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,CAAE,QAAQ,UAAA,GAAW,CAAA,CAAE,MAAK,CAAA,CAAE,OAAA,CAAQ,YAAU,CAAA,CAAE,GAAA;AAAA,MAAG;AAAA,IAAC;AACzf,IAAA,IAAI,EAAA,GAAG,EAAA,IAAI,cAAA,IAAiB,QAAA,IAAU,MAAI,QAAA,CAAS,YAAA;AAAnD,IAAA,IAAgE,EAAA,GAAG,IAAA;AAAnE,IAAA,IAAwE,EAAA,GAAG,IAAA;AAA3E,IAAA,IAAgF,EAAA,GAAG,IAAA;AAAnF,IAAA,IAAwF,EAAA,GAAG,KAAA;AAC3F,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,CAAE,MAAA,KAAS,CAAA,GAAE,CAAA,CAAE,WAAS,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,MAAA,EAAA,IAAI,QAAM,EAAA,IAAI,EAAA,KAAK,EAAA,CAAG,CAAC,MAAI,CAAA,GAAE,EAAA,EAAG,gBAAA,IAAmB,CAAA,IAAG,GAAG,CAAC,CAAA,GAAE,IAAE,EAAC,KAAA,EAAM,EAAE,cAAA,EAAe,GAAA,EAAI,CAAA,CAAE,YAAA,MAAe,CAAA,GAAA,CAAG,CAAA,CAAE,aAAA,IAAe,CAAA,CAAE,cAAc,WAAA,IAAa,MAAA,EAAQ,YAAA,EAAa,EAAE,IAAE,EAAC,UAAA,EAAW,EAAE,UAAA,EAAW,YAAA,EAAa,EAAE,YAAA,EAAa,SAAA,EAAU,CAAA,CAAE,SAAA,EAAU,aAAY,CAAA,CAAE,WAAA,EAAW,CAAA,EAAG,EAAA,IAAI,GAAG,EAAA,EAAG,CAAC,CAAA,KAAI,EAAA,GAAG,GAAE,CAAA,GAAE,EAAA,CAAG,IAAG,UAAU,CAAA,EAAE,IAAE,CAAA,CAAE,MAAA,KAAS,CAAA,GAAE,IAAI,GAAG,UAAA,EAAW,QAAA,EAAS,IAAA,EAAK,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,CAAE,IAAA,CAAK,EAAC,OAAM,CAAA,EAAE,SAAA,EAAU,GAAE,CAAA,EAAE,EAAE,MAAA,GAAO,EAAA,CAAA,CAAA,CAAA;AAAA,IAAK;AACtf,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAC;AAAE,MAAA,CAAA,CAAE,CAAA,CAAE,WAAA,EAAa,CAAA,GAAE,EAAE,WAAA,EAAY;AAAE,MAAA,CAAA,CAAE,QAAA,GAAS,CAAC,CAAA,GAAE,QAAA,GAAS,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,GAAM,CAAC,CAAA,GAAE,KAAA,GAAM,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,EAAC,YAAA,EAAa,EAAA,CAAG,aAAY,cAAc,CAAA,EAAE,oBAAmB,EAAA,CAAG,WAAA,EAAY,oBAAoB,CAAA,EAAE,cAAA,EAAe,GAAG,WAAA,EAAY,gBAAgB,GAAE,aAAA,EAAc,EAAA,CAAG,YAAA,EAAa,eAAe,CAAA,EAAC;AAA1M,IAAA,IAA4M,KAAG,EAAC;AAAhN,IAAA,IAAkN,KAAG,EAAC;AACxU,IAAA,EAAA,KAAK,EAAA,GAAG,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA,CAAE,OAAM,gBAAA,IAAmB,MAAA,KAAS,OAAO,EAAA,CAAG,YAAA,CAAa,SAAA,EAAU,OAAO,EAAA,CAAG,kBAAA,CAAmB,SAAA,EAAU,OAAO,EAAA,CAAG,cAAA,CAAe,YAAW,iBAAA,IAAoB,MAAA,IAAQ,OAAO,EAAA,CAAG,aAAA,CAAc,UAAA,CAAA;AAAY,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE,OAAO,GAAG,CAAC,CAAA;AAAE,MAAA,IAAG,CAAC,EAAA,CAAG,CAAC,CAAA,EAAE,OAAO,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA;AAAE,MAAA,KAAI,CAAA,IAAK,CAAA,EAAE,IAAG,CAAA,CAAE,eAAe,CAAC,CAAA,IAAG,CAAA,IAAK,EAAA,EAAG,OAAO,EAAA,CAAG,CAAC,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,GAAG,cAAc,CAAA;AAAxB,IAAA,IAA0B,EAAA,GAAG,GAAG,oBAAoB,CAAA;AAApD,IAAA,IAAsD,EAAA,GAAG,GAAG,gBAAgB,CAAA;AAA5E,IAAA,IAA8E,EAAA,GAAG,GAAG,eAAe,CAAA;AAAnG,IAAA,IAAqG,qBAAG,IAAI,GAAA,EAAA;AAA5G,IAAA,IAAgH,EAAA,GAAG,qmBAAA,CAAsmB,KAAA,CAAM,GAAG,CAAA;AAClmC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,GAAA,CAAI,GAAE,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,CAAC,CAAC,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,KAAQ,EAAA,GAAG,CAAA,EAAE,EAAA,GAAG,EAAA,CAAG,QAAO,EAAA,EAAA,EAAK;AAAK,MAAA,EAAA,GAAG,EAAA,CAAG,EAAE,CAAA,EAAE,EAAA,GAAG,GAAG,WAAA,EAAY,EAAE,EAAA,GAAG,EAAA,CAAG,CAAC,CAAA,CAAE,WAAA,EAAY,GAAE,EAAA,CAAG,MAAM,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,EAAA,EAAG,OAAK,EAAE,CAAA;AAAA,IAAC;AAA/E,IAAA,IAAA,EAAA;AAAU,IAAA,IAAA,EAAA;AAAoB,IAAA,IAAA,EAAA;AAA1D,IAAA,IAAA,EAAA;AAA4G,IAAA,EAAA,CAAG,IAAG,gBAAgB,CAAA;AAAE,IAAA,EAAA,CAAG,IAAG,sBAAsB,CAAA;AAAE,IAAA,EAAA,CAAG,IAAG,kBAAkB,CAAA;AAAE,IAAA,EAAA,CAAG,YAAW,eAAe,CAAA;AAAE,IAAA,EAAA,CAAG,WAAU,SAAS,CAAA;AAAE,IAAA,EAAA,CAAG,YAAW,QAAQ,CAAA;AAAE,IAAA,EAAA,CAAG,IAAG,iBAAiB,CAAA;AAAE,IAAA,EAAA,CAAG,cAAA,EAAe,CAAC,UAAA,EAAW,WAAW,CAAC,CAAA;AAAE,IAAA,EAAA,CAAG,cAAA,EAAe,CAAC,UAAA,EAAW,WAAW,CAAC,CAAA;AAAE,IAAA,EAAA,CAAG,gBAAA,EAAiB,CAAC,YAAA,EAAa,aAAa,CAAC,CAAA;AAC3d,IAAA,EAAA,CAAG,gBAAA,EAAiB,CAAC,YAAA,EAAa,aAAa,CAAC,CAAA;AAAE,IAAA,EAAA,CAAG,UAAA,EAAW,mEAAA,CAAoE,KAAA,CAAM,GAAG,CAAC,CAAA;AAAE,IAAA,EAAA,CAAG,UAAA,EAAW,sFAAA,CAAuF,KAAA,CAAM,GAAG,CAAC,CAAA;AAAE,IAAA,EAAA,CAAG,iBAAgB,CAAC,gBAAA,EAAiB,UAAA,EAAW,WAAA,EAAY,OAAO,CAAC,CAAA;AAAE,IAAA,EAAA,CAAG,kBAAA,EAAmB,0DAAA,CAA2D,KAAA,CAAM,GAAG,CAAC,CAAA;AAAE,IAAA,EAAA,CAAG,oBAAA,EAAqB,4DAAA,CAA6D,KAAA,CAAM,GAAG,CAAC,CAAA;AACngB,IAAA,EAAA,CAAG,qBAAA,EAAsB,6DAAA,CAA8D,KAAA,CAAM,GAAG,CAAC,CAAA;AAAE,IAAA,IAAI,EAAA,GAAG,4NAAA,CAA6N,KAAA,CAAM,GAAG,CAAA;AAA7O,IAAA,IAA+O,EAAA,GAAG,IAAI,GAAA,CAAI,yCAAA,CAA0C,MAAM,GAAG,CAAA,CAAE,MAAA,CAAO,EAAE,CAAC,CAAA;AAC5Z,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAE,IAAA,IAAM,eAAA;AAAgB,MAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,MAAA,EAAO,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,IAAA;AAAA,IAAI;AACxG,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,OAAK,CAAA,GAAE,CAAA,CAAA;AAAG,MAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,QAAO,CAAA,EAAA,EAAI;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,EAAE,IAAE,CAAA,CAAE,KAAA;AAAM,QAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,QAAA,CAAA,EAAE;AAAC,UAAA,IAAI,CAAA,GAAE,MAAA;AAAO,UAAA,IAAG,CAAA,WAAU,CAAA,GAAE,CAAA,CAAE,SAAO,CAAA,EAAE,CAAA,IAAG,GAAE,CAAA,EAAA,EAAI;AAAC,YAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA,EAAE,IAAE,CAAA,CAAE,QAAA,EAAS,IAAE,CAAA,CAAE,aAAA;AAAc,YAAA,CAAA,GAAE,CAAA,CAAE,QAAA;AAAS,YAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,CAAE,oBAAA,IAAuB,MAAM,CAAA;AAAE,YAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA;AAAA,UAAC;AAAA,oBAAU,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,QAAO,CAAA,EAAA,EAAI;AAAC,YAAA,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA,CAAE,QAAA;AAAS,YAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,YAAA,CAAA,GAAE,CAAA,CAAE,QAAA;AAAS,YAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,CAAE,oBAAA,IAAuB,MAAM,CAAA;AAAE,YAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC;AAAC,MAAA,IAAG,IAAG,MAAM,CAAA,GAAE,IAAG,EAAA,GAAG,KAAA,EAAG,KAAG,IAAA,EAAK,CAAA;AAAA,IAAE;AAC5a,IAAA,SAAS,CAAA,CAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAE,EAAE,CAAA;AAAE,MAAA,MAAA,KAAS,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,EAAE,oBAAE,IAAI,GAAA,EAAA,CAAA;AAAK,MAAA,IAAI,IAAE,CAAA,GAAE,UAAA;AAAW,MAAA,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,KAAE,CAAA,EAAE,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,KAAI,CAAA,IAAG,CAAA,CAAA;AAAG,MAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,oBAAkB,IAAA,CAAK,MAAA,GAAS,QAAA,CAAS,EAAE,CAAA,CAAE,KAAA,CAAM,CAAC,CAAA;AAAE,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,CAAC,CAAA,CAAE,EAAE,CAAA,EAAE;AAAC,QAAA,CAAA,CAAE,EAAE,CAAA,GAAE,IAAA;AAAG,QAAA,EAAA,CAAG,OAAA,CAAQ,SAASC,EAAAA,EAAE;AAAC,UAAA,iBAAA,KAAoBA,EAAAA,KAAI,EAAA,CAAG,GAAA,CAAIA,EAAC,CAAA,IAAG,EAAA,CAAGA,EAAAA,EAAE,KAAA,EAAG,CAAC,CAAA,EAAE,EAAA,CAAGA,EAAAA,EAAE,MAAG,CAAC,CAAA,CAAA;AAAA,QAAE,CAAC,CAAA;AAAE,QAAA,IAAI,CAAA,GAAE,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,IAAE,CAAA,CAAE,aAAA;AAAc,QAAA,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,EAAE,CAAA,KAAI,CAAA,CAAE,EAAE,CAAA,GAAE,IAAA,EAAG,EAAA,CAAG,iBAAA,EAAkB,KAAA,EAAG,CAAC,CAAA,CAAA;AAAA,MAAE;AAAA,IAAC;AACjb,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,QAAO,EAAA,CAAG,CAAC,CAAA;AAAE,QAAC,KAAK,CAAA;AAAE,UAAA,IAAI,CAAA,GAAE,EAAA;AAAG,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,CAAA,GAAE,EAAA;AAAG,UAAA;AAAA,QAAM;AAAQ,UAAA,CAAA,GAAE,EAAA;AAAA;AAAG,MAAA,CAAA,GAAE,CAAA,CAAE,IAAA,CAAK,IAAA,EAAK,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,MAAA;AAAO,MAAA,CAAC,MAAI,YAAA,KAAe,CAAA,IAAG,gBAAc,CAAA,IAAG,OAAA,KAAU,MAAI,CAAA,GAAE,IAAA,CAAA;AAAI,MAAA,CAAA,GAAE,MAAA,KAAS,CAAA,GAAE,CAAA,CAAE,gBAAA,CAAiB,GAAE,CAAA,EAAE,EAAC,OAAA,EAAQ,IAAA,EAAG,SAAQ,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,iBAAiB,CAAA,EAAE,CAAA,EAAE,IAAE,CAAA,GAAE,MAAA,KAAS,CAAA,GAAE,CAAA,CAAE,gBAAA,CAAiB,GAAE,CAAA,EAAE,EAAC,OAAA,EAAQ,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,gBAAA,CAAiB,CAAA,EAAE,GAAE,KAAE,CAAA;AAAA,IAAC;AAClV,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG,CAAA,MAAK,IAAE,CAAA,CAAA,IAAI,CAAA,MAAK,IAAE,CAAA,CAAA,IAAI,IAAA,KAAO,CAAA,EAAE,CAAA,EAAE,WAAO;AAAC,QAAA,IAAG,SAAO,CAAA,EAAE;AAAO,QAAA,IAAI,IAAE,CAAA,CAAE,GAAA;AAAI,QAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,EAAE;AAAC,UAAA,IAAI,CAAA,GAAE,EAAE,SAAA,CAAU,aAAA;AAAc,UAAA,IAAG,MAAI,CAAA,IAAG,CAAA,KAAI,EAAE,QAAA,IAAU,CAAA,CAAE,eAAa,CAAA,EAAE;AAAM,UAAA,IAAG,MAAI,CAAA,EAAE,KAAI,IAAE,CAAA,CAAE,MAAA,EAAO,SAAO,CAAA,IAAG;AAAC,YAAA,IAAI,IAAE,CAAA,CAAE,GAAA;AAAI,YAAA,IAAG,CAAA,KAAI,KAAG,CAAA,KAAI,CAAA,EAAA;AAAE,cAAA,IAAG,CAAA,GAAE,CAAA,CAAE,SAAA,CAAU,aAAA,EAAc,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,QAAA,IAAU,CAAA,CAAE,UAAA,KAAa,CAAA,EAAE;AAAA,YAAA;AAAO,YAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,UAAM;AAAC,UAAA,OAAK,SAAO,CAAA,IAAG;AAAC,YAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,YAAA,IAAG,SAAO,CAAA,EAAE;AAAO,YAAA,CAAA,GAAE,CAAA,CAAE,GAAA;AAAI,YAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,EAAE;AAAC,cAAA,CAAA,GAAE,CAAA,GAAE,CAAA;AAAE,cAAA,SAAS,CAAA;AAAA,YAAC;AAAC,YAAA,CAAA,GAAE,CAAA,CAAE,UAAA;AAAA,UAAU;AAAA,QAAC;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,MAAM;AAAC,MAAA,EAAA,CAAG,WAAU;AAAC,QAAA,IAAIC,KAAE,CAAA,EAAEC,EAAAA,GAAE,GAAG,CAAC,CAAA,EAAEC,KAAE,EAAC;AACrf,QAAA,CAAA,EAAE;AAAC,UAAA,IAAIC,EAAAA,GAAE,EAAA,CAAG,GAAA,CAAI,CAAC,CAAA;AAAE,UAAA,IAAG,WAASA,EAAAA,EAAE;AAAC,YAAA,IAAIC,EAAAA,GAAE,IAAG,CAAA,GAAE,CAAA;AAAE,YAAA,QAAO,CAAA;AAAE,cAAC,KAAK,UAAA;AAAW,gBAAA,IAAG,CAAA,KAAI,EAAA,CAAG,CAAC,CAAA,EAAE,MAAM,CAAA;AAAA,cAAE,KAAK,SAAA;AAAA,cAAU,KAAK,OAAA;AAAQ,gBAAAA,EAAAA,GAAE,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,SAAA;AAAU,gBAAA,CAAA,GAAE,OAAA;AAAQ,gBAAAA,EAAAA,GAAE,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,UAAA;AAAW,gBAAA,CAAA,GAAE,MAAA;AAAO,gBAAAA,EAAAA,GAAE,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,YAAA;AAAA,cAAa,KAAK,WAAA;AAAY,gBAAAA,EAAAA,GAAE,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,OAAA;AAAQ,gBAAA,IAAG,CAAA,KAAI,CAAA,CAAE,MAAA,EAAO,MAAM,CAAA;AAAA,cAAE,KAAK,UAAA;AAAA,cAAW,KAAK,UAAA;AAAA,cAAW,KAAK,WAAA;AAAA,cAAY,KAAK,WAAA;AAAA,cAAY,KAAK,SAAA;AAAA,cAAU,KAAK,UAAA;AAAA,cAAW,KAAK,WAAA;AAAA,cAAY,KAAK,aAAA;AAAc,gBAAAA,EAAAA,GAAE,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,MAAA;AAAA,cAAO,KAAK,SAAA;AAAA,cAAU,KAAK,WAAA;AAAA,cAAY,KAAK,UAAA;AAAA,cAAW,KAAK,WAAA;AAAA,cAAY,KAAK,UAAA;AAAA,cAAW,KAAK,WAAA;AAAA,cAAY,KAAK,MAAA;AAAO,gBAAAA,EAAAA,GAC1iB,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,aAAA;AAAA,cAAc,KAAK,UAAA;AAAA,cAAW,KAAK,WAAA;AAAA,cAAY,KAAK,YAAA;AAAa,gBAAAA,EAAAA,GAAE,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,EAAA;AAAA,cAAG,KAAK,EAAA;AAAA,cAAG,KAAK,EAAA;AAAG,gBAAAA,EAAAA,GAAE,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,EAAA;AAAG,gBAAAA,EAAAA,GAAE,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,QAAA;AAAS,gBAAAA,EAAAA,GAAE,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,OAAA;AAAQ,gBAAAA,EAAAA,GAAE,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,MAAA;AAAA,cAAO,KAAK,KAAA;AAAA,cAAM,KAAK,OAAA;AAAQ,gBAAAA,EAAAA,GAAE,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,mBAAA;AAAA,cAAoB,KAAK,oBAAA;AAAA,cAAqB,KAAK,eAAA;AAAA,cAAgB,KAAK,aAAA;AAAA,cAAc,KAAK,aAAA;AAAA,cAAc,KAAK,YAAA;AAAA,cAAa,KAAK,aAAA;AAAA,cAAc,KAAK,WAAA;AAAY,gBAAAA,EAAAA,GAAE,EAAA;AAAA;AAAG,YAAA,IAAI,CAAA,GAAE,CAAA,MAAK,CAAA,GAAE,CAAA,CAAA,EAAG,IAAE,CAAC,CAAA,IAAG,QAAA,KAAW,CAAA,EAAE,IAAE,CAAA,GAAE,IAAA,KAAOD,EAAAA,GAAEA,EAAAA,GAAE,YAAU,IAAA,GAAKA,EAAAA;AAAE,YAAA,CAAA,GAAE,EAAC;AAAE,YAAA,KAAA,IAAQ,CAAA,GAAEH,EAAAA,EAAE,CAAA,EAAE,IAAA,KAC/e,CAAA,IAAG;AAAC,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,cAAA,CAAA,KAAI,CAAA,CAAE,OAAK,IAAA,KAAO,CAAA,KAAI,IAAE,CAAA,EAAE,IAAA,KAAO,MAAI,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA,EAAE,QAAM,CAAA,IAAG,CAAA,CAAE,KAAK,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAC,CAAA,CAAA,CAAA;AAAI,cAAA,IAAG,CAAA,EAAE;AAAM,cAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,YAAM;AAAC,YAAA,CAAA,GAAE,EAAE,MAAA,KAASG,EAAAA,GAAE,IAAIC,EAAAA,CAAED,EAAAA,EAAE,GAAE,IAAA,EAAK,CAAA,EAAEF,EAAC,CAAA,EAAEC,GAAE,IAAA,CAAK,EAAC,OAAMC,EAAAA,EAAE,SAAA,EAAU,GAAE,CAAA,CAAA;AAAA,UAAE;AAAA,QAAC;AAAC,QAAA,IAAG,CAAA,MAAK,IAAE,CAAA,CAAA,EAAG;AAAC,UAAA,CAAA,EAAE;AAAC,YAAAA,EAAAA,GAAE,WAAA,KAAc,CAAA,IAAG,aAAA,KAAgB,CAAA;AAAE,YAAAC,EAAAA,GAAE,UAAA,KAAa,CAAA,IAAG,YAAA,KAAe,CAAA;AAAE,YAAA,IAAGD,EAAAA,IAAG,CAAA,KAAI,EAAA,KAAK,CAAA,GAAE,EAAE,aAAA,IAAe,CAAA,CAAE,WAAA,CAAA,KAAe,EAAA,CAAG,CAAC,CAAA,IAAG,CAAA,CAAE,EAAE,IAAG,MAAM,CAAA;AAAE,YAAA,IAAGC,MAAGD,EAAAA,EAAE;AAAC,cAAAA,EAAAA,GAAEF,EAAAA,CAAE,MAAA,KAASA,EAAAA,GAAEA,EAAAA,GAAAA,CAAGE,EAAAA,GAAEF,EAAAA,CAAE,aAAA,IAAeE,EAAAA,CAAE,WAAA,IAAaA,EAAAA,CAAE,YAAA,GAAa,MAAA;AAAO,cAAA,IAAGC,EAAAA,EAAE;AAAC,gBAAA,IAAG,CAAA,GAAE,CAAA,CAAE,aAAA,IAAe,CAAA,CAAE,SAAA,EAAUA,EAAAA,GAAEJ,EAAAA,EAAE,CAAA,GAAE,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,GAAE,IAAA,EAAK,IAAA,KAC/e,CAAA,KAAI,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,GAAA,IAAK,CAAA,KAAI,CAAA,CAAE,GAAA,CAAA,EAAK,CAAA,GAAE,IAAA;AAAA,cAAI,CAAA,MAAMI,EAAAA,GAAE,IAAA,EAAK,CAAA,GAAEJ,EAAAA;AAAE,cAAA,IAAGI,OAAI,CAAA,EAAE;AAAC,gBAAA,CAAA,GAAE,EAAA;AAAG,gBAAA,CAAA,GAAE,cAAA;AAAe,gBAAA,CAAA,GAAE,cAAA;AAAe,gBAAA,CAAA,GAAE,OAAA;AAAQ,gBAAA,IAAG,YAAA,KAAe,CAAA,IAAG,aAAA,KAAgB,CAAA,EAAE,CAAA,GAAE,IAAG,CAAA,GAAE,gBAAA,EAAiB,CAAA,GAAE,gBAAA,EAAiB,CAAA,GAAE,SAAA;AAAU,gBAAA,CAAA,GAAE,IAAA,IAAMA,EAAAA,GAAED,EAAAA,GAAE,EAAA,CAAGC,EAAC,CAAA;AAAE,gBAAA,CAAA,GAAE,IAAA,IAAM,CAAA,GAAED,EAAAA,GAAE,EAAA,CAAG,CAAC,CAAA;AAAE,gBAAAA,EAAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,IAAE,OAAA,EAAQC,EAAAA,EAAE,GAAEH,EAAC,CAAA;AAAE,gBAAAE,GAAE,MAAA,GAAO,CAAA;AAAE,gBAAAA,GAAE,aAAA,GAAc,CAAA;AAAE,gBAAA,CAAA,GAAE,IAAA;AAAK,gBAAA,EAAA,CAAGF,EAAC,CAAA,KAAID,EAAAA,KAAI,IAAE,IAAI,CAAA,CAAE,GAAE,CAAA,GAAE,OAAA,EAAQ,GAAE,CAAA,EAAEC,EAAC,GAAE,CAAA,CAAE,MAAA,GAAO,GAAE,CAAA,CAAE,aAAA,GAAc,GAAE,CAAA,GAAE,CAAA,CAAA;AAAG,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,IAAGG,EAAAA,IAAG,GAAE,CAAA,EAAE;AAAC,kBAAA,CAAA,GAAEA,EAAAA;AAAE,kBAAA,CAAA,GAAE,CAAA;AAAE,kBAAA,CAAA,GAAE,CAAA;AAAE,kBAAA,KAAI,IAAE,CAAA,EAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,EAAA;AAAI,kBAAA,CAAA,GAAE,CAAA;AAAE,kBAAA,KAAI,IAAE,CAAA,EAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,EAAA;AAAI,kBAAA,OAAK,IAAE,CAAA,GAAE,CAAA,IAAG,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,EAAA;AAAI,kBAAA,OAAK,IAAE,CAAA,GAAE,CAAA,IAAG,CAAA,GACpf,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,EAAA;AAAI,kBAAA,OAAK,CAAA,EAAA,IAAK;AAAC,oBAAA,IAAG,MAAI,CAAA,IAAG,IAAA,KAAO,KAAG,CAAA,KAAI,CAAA,CAAE,WAAU,MAAM,CAAA;AAAE,oBAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,oBAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAA,kBAAC;AAAC,kBAAA,CAAA,GAAE,IAAA;AAAA,gBAAI;AAAA,qBAAM,CAAA,GAAE,IAAA;AAAK,gBAAA,IAAA,KAAOA,MAAG,EAAA,CAAGF,EAAAA,EAAEC,EAAAA,EAAEC,EAAAA,EAAE,GAAE,KAAE,CAAA;AAAE,gBAAA,IAAA,KAAO,CAAA,IAAG,SAAO,CAAA,IAAG,EAAA,CAAGF,IAAE,CAAA,EAAE,CAAA,EAAE,GAAE,IAAE,CAAA;AAAA,cAAC;AAAA,YAAC;AAAA,UAAC;AAAC,UAAA,CAAA,EAAE;AAAC,YAAAC,EAAAA,GAAEH,EAAAA,GAAE,EAAA,CAAGA,EAAC,CAAA,GAAE,MAAA;AAAO,YAAAI,EAAAA,GAAED,EAAAA,CAAE,QAAA,IAAUA,EAAAA,CAAE,SAAS,WAAA,EAAY;AAAE,YAAA,IAAG,QAAA,KAAWC,MAAG,OAAA,KAAUA,EAAAA,IAAG,WAASD,EAAAA,CAAE,IAAA,MAAS,EAAA,GAAG,EAAA;AAAA,iBAAA,IAAW,EAAA,CAAGA,EAAC,CAAA,EAAE,IAAG,IAAG,EAAA,GAAG,EAAA;AAAA,iBAAO;AAAC,cAAA,EAAA,GAAG,EAAA;AAAG,cAAA,IAAI,EAAA,GAAG,EAAA;AAAA,YAAE;AAAA,iBAAK,CAACC,EAAAA,GAAED,EAAAA,CAAE,QAAA,KAAW,YAAUC,EAAAA,CAAE,WAAA,EAAY,KAAI,UAAA,KAAaD,EAAAA,CAAE,IAAA,IAAM,OAAA,KAAUA,EAAAA,CAAE,UAAQ,EAAA,GAAG,EAAA,CAAA;AAAI,YAAA,IAAG,EAAA,KAAK,EAAA,GAAG,EAAA,CAAG,CAAA,EAAEH,EAAC,CAAA,CAAA,EAAG;AAAC,cAAA,EAAA,CAAGE,EAAAA,EAAE,EAAA,EAAG,CAAA,EAAED,EAAC,CAAA;AAAE,cAAA,MAAM,CAAA;AAAA,YAAC;AAAC,YAAA,EAAA,IAAI,EAAA,CAAG,CAAA,EAAEE,EAAAA,EAAEH,EAAC,CAAA;AAAE,YAAA,UAAA,KAAa,CAAA,KAAI,EAAA,GAAGG,EAAAA,CAAE,aAAA,CAAA,IAClf,EAAA,CAAG,UAAA,IAAY,QAAA,KAAWA,EAAAA,CAAE,IAAA,IAAM,EAAA,CAAGA,EAAAA,EAAE,QAAA,EAASA,GAAE,KAAK,CAAA;AAAA,UAAC;AAAC,UAAA,EAAA,GAAGH,EAAAA,GAAE,EAAA,CAAGA,EAAC,CAAA,GAAE,MAAA;AAAO,UAAA,QAAO,CAAA;AAAE,YAAC,KAAK,SAAA;AAAU,cAAA,IAAG,EAAA,CAAG,EAAE,CAAA,IAAG,MAAA,KAAS,EAAA,CAAG,iBAAgB,EAAA,GAAG,EAAA,EAAG,EAAA,GAAGA,EAAAA,EAAE,EAAA,GAAG,IAAA;AAAK,cAAA;AAAA,YAAM,KAAK,UAAA;AAAW,cAAA,EAAA,GAAG,KAAG,EAAA,GAAG,IAAA;AAAK,cAAA;AAAA,YAAM,KAAK,WAAA;AAAY,cAAA,EAAA,GAAG,IAAA;AAAG,cAAA;AAAA,YAAM,KAAK,aAAA;AAAA,YAAc,KAAK,SAAA;AAAA,YAAU,KAAK,SAAA;AAAU,cAAA,EAAA,GAAG,KAAA;AAAG,cAAA,EAAA,CAAGE,EAAAA,EAAE,GAAED,EAAC,CAAA;AAAE,cAAA;AAAA,YAAM,KAAK,iBAAA;AAAkB,cAAA,IAAG,EAAA,EAAG;AAAA,YAAM,KAAK,SAAA;AAAA,YAAU,KAAK,OAAA;AAAQ,cAAA,EAAA,CAAGC,EAAAA,EAAE,GAAED,EAAC,CAAA;AAAA;AAAE,UAAA,IAAI,EAAA;AAAG,UAAA,IAAG,IAAG,CAAA,EAAE;AAAC,YAAA,QAAO,CAAA;AAAE,cAAC,KAAK,kBAAA;AAAmB,gBAAA,IAAI,EAAA,GAAG,oBAAA;AAAqB,gBAAA,MAAM,CAAA;AAAA,cAAE,KAAK,gBAAA;AAAiB,gBAAA,EAAA,GAAG,kBAAA;AACpe,gBAAA,MAAM,CAAA;AAAA,cAAE,KAAK,mBAAA;AAAoB,gBAAA,EAAA,GAAG,qBAAA;AAAsB,gBAAA,MAAM,CAAA;AAAA;AAAE,YAAA,EAAA,GAAG,MAAA;AAAA,UAAM;AAAA,eAAM,EAAA,GAAG,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,KAAI,EAAA,GAAG,kBAAA,CAAA,GAAoB,SAAA,KAAY,CAAA,IAAG,GAAA,KAAM,CAAA,CAAE,OAAA,KAAU,EAAA,GAAG,oBAAA,CAAA;AAAsB,UAAA,EAAA,KAAK,EAAA,IAAI,IAAA,KAAO,CAAA,CAAE,MAAA,KAAS,EAAA,IAAI,oBAAA,KAAuB,EAAA,GAAG,kBAAA,KAAqB,EAAA,IAAI,EAAA,KAAK,EAAA,GAAG,EAAA,EAAG,CAAA,IAAI,EAAA,GAAGA,EAAAA,EAAE,EAAA,GAAG,OAAA,IAAU,EAAA,GAAG,EAAA,CAAG,KAAA,GAAM,EAAA,CAAG,WAAA,EAAY,EAAA,GAAG,IAAA,CAAA,CAAA,EAAK,EAAA,GAAG,EAAA,CAAGD,EAAAA,EAAE,EAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,MAAA,KAAS,EAAA,GAAG,IAAI,EAAA,CAAG,EAAA,EAAG,CAAA,EAAE,IAAA,EAAK,CAAA,EAAEC,EAAC,CAAA,EAAEC,EAAAA,CAAE,IAAA,CAAK,EAAC,KAAA,EAAM,EAAA,EAAG,SAAA,EAAU,EAAA,EAAG,CAAA,EAAE,EAAA,GAAG,EAAA,CAAG,IAAA,GAAK,EAAA,IAAI,EAAA,GAAG,EAAA,CAAG,CAAC,CAAA,EAAE,IAAA,KAAO,EAAA,KAAK,GAAG,IAAA,GAAK,EAAA,CAAA,CAAA,CAAA,CAAA;AAAO,UAAA,IAAG,KAAG,EAAA,GAAG,EAAA,CAAG,CAAA,EAAE,CAAC,IAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAEF,EAAAA,GAAE,EAAA,CAAGA,IAAE,eAAe,CAAA,EAC1f,IAAEA,EAAAA,CAAE,MAAA,KAASC,EAAAA,GAAE,IAAI,GAAG,eAAA,EAAgB,aAAA,EAAc,IAAA,EAAK,CAAA,EAAEA,EAAC,CAAA,EAAEC,EAAAA,CAAE,IAAA,CAAK,EAAC,OAAMD,EAAAA,EAAE,SAAA,EAAUD,IAAE,CAAA,EAAEC,GAAE,IAAA,GAAK,EAAA,CAAA;AAAA,QAAG;AAAC,QAAA,EAAA,CAAGC,IAAE,CAAC,CAAA;AAAA,MAAC,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,OAAM,EAAC,QAAA,EAAS,CAAA,EAAE,QAAA,EAAS,CAAA,EAAE,eAAc,CAAA,EAAC;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,KAAA,IAAQ,IAAE,CAAA,GAAE,SAAA,EAAU,IAAE,EAAC,EAAE,SAAO,CAAA,IAAG;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,QAAA,CAAA,KAAI,CAAA,CAAE,GAAA,IAAK,IAAA,KAAO,CAAA,KAAI,IAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,IAAA,IAAM,CAAA,IAAG,CAAA,CAAE,QAAQ,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAC,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA,EAAE,IAAA,IAAM,CAAA,IAAG,EAAE,IAAA,CAAK,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAC,CAAA,CAAA;AAAG,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,MAAM;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,IAAA,KAAO,GAAE,OAAO,IAAA;AAAK,MAAA;AAAG,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,aAAa,CAAA,IAAG,MAAI,CAAA,CAAE,GAAA;AAAK,MAAA,OAAO,IAAE,CAAA,GAAE,IAAA;AAAA,IAAI;AACnd,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,KAAA,IAAQ,CAAA,GAAE,EAAE,UAAA,EAAW,CAAA,GAAE,EAAC,EAAE,IAAA,KAAO,CAAA,IAAG,CAAA,KAAI,CAAA,IAAG;AAAC,QAAA,IAAI,IAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,SAAA,EAAU,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,IAAG,IAAA,KAAO,CAAA,IAAG,CAAA,KAAI,CAAA,EAAE;AAAM,QAAA,CAAA,KAAI,EAAE,GAAA,IAAK,IAAA,KAAO,CAAA,KAAI,CAAA,GAAE,GAAE,CAAA,IAAG,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,IAAA,IAAM,CAAA,IAAG,CAAA,CAAE,QAAQ,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAC,CAAA,IAAG,CAAA,KAAI,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA,EAAE,IAAA,IAAM,CAAA,IAAG,EAAE,IAAA,CAAK,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAC,CAAA,CAAA,CAAA;AAAI,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,MAAM;AAAC,MAAA,CAAA,KAAI,CAAA,CAAE,UAAQ,CAAA,CAAE,IAAA,CAAK,EAAC,KAAA,EAAM,CAAA,EAAE,SAAA,EAAU,CAAA,EAAE,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,QAAA;AAAP,IAAA,IAAgB,EAAA,GAAG,gBAAA;AAAiB,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAA,CAAO,QAAA,KAAW,OAAO,CAAA,GAAE,CAAA,GAAE,EAAA,GAAG,CAAA,EAAG,OAAA,CAAQ,EAAA,EAAG,IAAI,CAAA,CAAE,OAAA,CAAQ,EAAA,EAAG,EAAE,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,IAAG,EAAA,CAAG,CAAC,CAAA,KAAI,CAAA,IAAG,GAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,GAAI;AAAA,IAAC;AAC9e,IAAA,IAAI,EAAA,GAAG,IAAA;AAAP,IAAA,IAAY,EAAA,GAAG,IAAA;AAAK,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAM,UAAA,KAAa,KAAG,UAAA,KAAa,CAAA,IAAG,aAAW,OAAO,CAAA,CAAE,YAAU,QAAA,KAAW,OAAO,EAAE,QAAA,IAAU,QAAA,KAAW,OAAO,CAAA,CAAE,uBAAA,IAAyB,SAAO,CAAA,CAAE,uBAAA,IAAyB,IAAA,IAAM,CAAA,CAAE,uBAAA,CAAwB,MAAA;AAAA,IAAM;AAC5P,IAAA,IAAI,EAAA,GAAG,UAAA,KAAa,OAAO,UAAA,GAAW,UAAA,GAAW,MAAA;AAAjD,IAAA,IAAwD,EAAA,GAAG,UAAA,KAAa,OAAO,YAAA,GAAa,YAAA,GAAa,MAAA;AAAzG,IAAA,IAAgH,EAAA,GAAG,UAAA,KAAa,OAAO,OAAA,GAAQ,OAAA,GAAQ,MAAA;AAAvJ,IAAA,IAA8J,EAAA,GAAG,eAAa,OAAO,cAAA,GAAe,iBAAe,WAAA,KAAc,OAAO,EAAA,GAAG,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,EAAA,CAAG,QAAQ,IAAI,CAAA,CAAE,KAAK,CAAC,CAAA,CAAE,MAAM,EAAE,CAAA;AAAA,IAAC,CAAA,GAAE,EAAA;AAAG,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,UAAA,CAAW,WAAU;AAAC,QAAA,MAAM,CAAA;AAAA,MAAE,CAAC,CAAA;AAAA,IAAC;AACpV,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA;AAAE,MAAA,GAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,QAAA,CAAA,CAAE,YAAY,CAAC,CAAA;AAAE,QAAA,IAAG,CAAA,IAAG,MAAI,CAAA,CAAE,QAAA,MAAY,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,IAAA,KAAO,CAAA,EAAE;AAAC,UAAA,IAAG,MAAI,CAAA,EAAE;AAAC,YAAA,CAAA,CAAE,YAAY,CAAC,CAAA;AAAE,YAAA,EAAA,CAAG,CAAC,CAAA;AAAE,YAAA;AAAA,UAAM;AAAC,UAAA,CAAA,EAAA;AAAA,QAAG,OAAK,GAAA,KAAM,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,SAAO,CAAA,IAAG,CAAA,EAAA;AAAI,QAAA,CAAA,GAAE,CAAA;AAAA,MAAC,CAAA,QAAO,CAAA;AAAG,MAAA,EAAA,CAAG,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAK,IAAA,IAAM,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,WAAA,EAAY;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,QAAA;AAAS,QAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,EAAE;AAAM,QAAA,IAAG,MAAI,CAAA,EAAE;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,UAAA,IAAG,GAAA,KAAM,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,SAAO,CAAA,EAAE;AAAM,UAAA,IAAG,IAAA,KAAO,GAAE,OAAO,IAAA;AAAA,QAAI;AAAA,MAAC;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AACjY,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,eAAA;AAAgB,MAAA,KAAA,IAAQ,CAAA,GAAE,GAAE,CAAA,IAAG;AAAC,QAAA,IAAG,CAAA,KAAI,EAAE,QAAA,EAAS;AAAC,UAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,UAAA,IAAG,GAAA,KAAM,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,SAAO,CAAA,EAAE;AAAC,YAAA,IAAG,CAAA,KAAI,GAAE,OAAO,CAAA;AAAE,YAAA,CAAA,EAAA;AAAA,UAAG,CAAA,eAAY,CAAA,IAAG,CAAA,EAAA;AAAA,QAAG;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,eAAA;AAAA,MAAe;AAAC,MAAA,OAAO,IAAA;AAAA,IAAI;AAAC,IAAA,IAAI,EAAA,GAAG,KAAK,MAAA,EAAO,CAAE,SAAS,EAAE,CAAA,CAAE,MAAM,CAAC,CAAA;AAAzC,IAAA,IAA2C,KAAG,eAAA,GAAgB,EAAA;AAA9D,IAAA,IAAiE,KAAG,eAAA,GAAgB,EAAA;AAApF,IAAA,IAAuF,KAAG,mBAAA,GAAoB,EAAA;AAA9G,IAAA,IAAiH,KAAG,gBAAA,GAAiB,EAAA;AAArI,IAAA,IAAwI,KAAG,mBAAA,GAAoB,EAAA;AAA/J,IAAA,IAAkK,KAAG,iBAAA,GAAkB,EAAA;AAClX,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAE,EAAE,CAAA;AAAE,MAAA,IAAG,GAAE,OAAO,CAAA;AAAE,MAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,CAAE,UAAA,EAAW,CAAA,IAAG;AAAC,QAAA,IAAG,IAAE,CAAA,CAAE,EAAE,CAAA,IAAG,CAAA,CAAE,EAAE,CAAA,EAAE;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,UAAA,IAAG,IAAA,KAAO,CAAA,CAAE,KAAA,IAAO,IAAA,KAAO,KAAG,IAAA,KAAO,CAAA,CAAE,KAAA,EAAM,KAAI,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,SAAO,CAAA,IAAG;AAAC,YAAA,IAAG,CAAA,GAAE,CAAA,CAAE,EAAE,CAAA,EAAE,OAAO,CAAA;AAAE,YAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAA,UAAC;AAAC,UAAA,OAAO,CAAA;AAAA,QAAC;AAAC,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA,CAAE,UAAA;AAAA,MAAU;AAAC,MAAA,OAAO,IAAA;AAAA,IAAI;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,EAAE,CAAA,IAAG,CAAA,CAAE,EAAE,CAAA;AAAE,MAAA,OAAM,CAAC,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,OAAK,CAAA,KAAI,CAAA,CAAE,GAAA,IAAK,EAAA,KAAK,CAAA,CAAE,GAAA,IAAK,CAAA,KAAI,CAAA,CAAE,MAAI,IAAA,GAAK,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,MAAI,CAAA,CAAE,GAAA,IAAK,MAAI,CAAA,CAAE,GAAA,SAAW,CAAA,CAAE,SAAA;AAAU,MAAA,MAAM,KAAA,CAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAO,CAAA,CAAE,EAAE,CAAA,IAAG,IAAA;AAAA,IAAI;AAAC,IAAA,IAAI,KAAG,EAAC;AAAR,IAAA,IAAU,EAAA,GAAG,EAAA;AAAG,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAM,EAAC,SAAQ,CAAA,EAAC;AAAA,IAAC;AACve,IAAA,SAAS,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAA,KAAK,EAAE,OAAA,GAAQ,EAAA,CAAG,EAAE,CAAA,EAAE,EAAA,CAAG,EAAE,CAAA,GAAE,IAAA,EAAK,EAAA,EAAA,CAAA;AAAA,IAAK;AAAC,IAAA,SAAS,CAAA,CAAE,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,EAAA;AAAK,MAAA,EAAA,CAAG,EAAE,IAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,KAAG,EAAC;AAAR,IAAA,IAAU,CAAA,GAAE,GAAG,EAAE,CAAA;AAAjB,IAAA,IAAmB,EAAA,GAAG,GAAG,KAAE,CAAA;AAA3B,IAAA,IAA6B,EAAA,GAAG,EAAA;AAAG,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAE,IAAA,CAAK,YAAA;AAAa,MAAA,IAAG,CAAC,GAAE,OAAO,EAAA;AAAG,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAG,CAAA,IAAG,CAAA,CAAE,2CAAA,KAA8C,CAAA,SAAS,CAAA,CAAE,yCAAA;AAA0C,MAAA,IAAI,CAAA,GAAE,EAAC,EAAE,CAAA;AAAE,MAAA,KAAI,KAAK,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,KAAI,IAAE,CAAA,CAAE,SAAA,EAAU,EAAE,2CAAA,GAA4C,CAAA,EAAE,EAAE,yCAAA,GAA0C,CAAA,CAAA;AAAG,MAAA,OAAO,CAAA;AAAA,IAAC;AAC9d,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,iBAAA;AAAkB,MAAA,OAAO,IAAA,KAAO,KAAG,MAAA,KAAS,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,CAAA,CAAE,EAAE,CAAA;AAAE,MAAA,CAAA,CAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,EAAE,OAAA,KAAU,EAAA,QAAS,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,IAAG,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,CAAA,GAAE,CAAA,CAAE,iBAAA;AAAkB,MAAA,IAAG,UAAA,KAAa,OAAO,CAAA,CAAE,eAAA,EAAgB,OAAO,CAAA;AAAE,MAAA,CAAA,GAAE,EAAE,eAAA,EAAgB;AAAE,MAAA,KAAA,IAAQ,CAAA,IAAK,CAAA,EAAE,IAAG,EAAE,KAAK,CAAA,CAAA,EAAG,MAAM,KAAA,CAAM,CAAA,CAAE,KAAI,EAAA,CAAG,CAAC,CAAA,IAAG,SAAA,EAAU,CAAC,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA,CAAE,EAAC,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC;AACxX,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,GAAA,CAAG,CAAA,GAAE,CAAA,CAAE,SAAA,KAAY,CAAA,CAAE,yCAAA,IAA2C,EAAA;AAAG,MAAA,EAAA,GAAG,CAAA,CAAE,OAAA;AAAQ,MAAA,CAAA,CAAE,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,EAAA,EAAG,GAAG,OAAO,CAAA;AAAE,MAAA,OAAM,IAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAG,CAAC,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,IAAG,CAAA,GAAE,GAAG,CAAA,EAAE,CAAA,EAAE,EAAE,CAAA,EAAE,CAAA,CAAE,4CAA0C,CAAA,EAAE,CAAA,CAAE,EAAE,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,CAAE,GAAE,CAAC,CAAA,IAAG,EAAE,EAAE,CAAA;AAAE,MAAA,CAAA,CAAE,IAAG,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,IAAA;AAAP,IAAA,IAAY,EAAA,GAAG,KAAA;AAAf,IAAA,IAAkB,EAAA,GAAG,KAAA;AAAG,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAA,KAAO,KAAG,EAAA,GAAG,CAAC,CAAC,CAAA,GAAE,EAAA,CAAG,KAAK,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,EAAA,GAAG,IAAA;AAAG,MAAA,EAAA,CAAG,CAAC,CAAA;AAAA,IAAC;AAC3X,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,IAAG,CAAC,EAAA,IAAI,IAAA,KAAO,EAAA,EAAG;AAAC,QAAA,EAAA,GAAG,IAAA;AAAG,QAAA,IAAI,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA;AAAE,QAAA,IAAG;AAAC,UAAA,IAAI,CAAA,GAAE,EAAA;AAAG,UAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,QAAO,CAAA,EAAA,EAAI;AAAC,YAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,YAAA;AAAG,cAAA,CAAA,GAAE,EAAE,IAAE,CAAA;AAAA,mBAAQ,IAAA,KAAO,CAAA;AAAA,UAAE;AAAC,UAAA,EAAA,GAAG,IAAA;AAAK,UAAA,EAAA,GAAG,KAAA;AAAA,QAAE,SAAO,CAAA,EAAE;AAAC,UAAA,MAAM,IAAA,KAAO,EAAA,KAAK,EAAA,GAAG,EAAA,CAAG,KAAA,CAAM,CAAA,GAAE,CAAC,CAAA,CAAA,EAAG,EAAA,CAAG,EAAA,EAAG,EAAE,CAAA,EAAE,CAAA;AAAA,QAAE,CAAA,SAAC;AAAQ,UAAA,CAAA,GAAE,GAAE,EAAA,GAAG,KAAA;AAAA,QAAE;AAAA,MAAC;AAAC,MAAA,OAAO,IAAA;AAAA,IAAI;AAAC,IAAA,IAAI,KAAG,EAAC;AAAR,IAAA,IAAU,EAAA,GAAG,CAAA;AAAb,IAAA,IAAe,EAAA,GAAG,IAAA;AAAlB,IAAA,IAAuB,EAAA,GAAG,CAAA;AAA1B,IAAA,IAA4B,KAAG,EAAC;AAAhC,IAAA,IAAkC,EAAA,GAAG,CAAA;AAArC,IAAA,IAAuC,EAAA,GAAG,IAAA;AAA1C,IAAA,IAA+C,EAAA,GAAG,CAAA;AAAlD,IAAA,IAAoD,EAAA,GAAG,EAAA;AAAG,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,IAAI,CAAA,GAAE,EAAA;AAAG,MAAA,EAAA,CAAG,IAAI,CAAA,GAAE,EAAA;AAAG,MAAA,EAAA,GAAG,CAAA;AAAE,MAAA,EAAA,GAAG,CAAA;AAAA,IAAC;AACjV,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,IAAI,CAAA,GAAE,EAAA;AAAG,MAAA,EAAA,CAAG,IAAI,CAAA,GAAE,EAAA;AAAG,MAAA,EAAA,CAAG,IAAI,CAAA,GAAE,EAAA;AAAG,MAAA,EAAA,GAAG,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,EAAA;AAAG,MAAA,CAAA,GAAE,EAAA;AAAG,MAAA,IAAI,CAAA,GAAE,EAAA,GAAG,EAAA,CAAG,CAAC,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,IAAG,EAAE,CAAA,IAAG,CAAA,CAAA;AAAG,MAAA,CAAA,IAAG,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,EAAA,GAAG,EAAA,CAAG,CAAC,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG,KAAG,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,IAAE,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAA,CAAG,CAAA,GAAA,CAAG,CAAA,IAAG,CAAA,IAAG,CAAA,EAAG,SAAS,EAAE,CAAA;AAAE,QAAA,CAAA,KAAI,CAAA;AAAE,QAAA,CAAA,IAAG,CAAA;AAAE,QAAA,EAAA,GAAG,KAAG,EAAA,GAAG,EAAA,CAAG,CAAC,CAAA,GAAE,CAAA,GAAE,KAAG,CAAA,GAAE,CAAA;AAAE,QAAA,EAAA,GAAG,CAAA,GAAE,CAAA;AAAA,MAAC,OAAM,EAAA,GAAG,CAAA,IAAG,IAAE,CAAA,IAAG,CAAA,GAAE,GAAE,EAAA,GAAG,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAA,KAAO,CAAA,CAAE,WAAS,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAK,MAAI,EAAA,IAAI,EAAA,GAAG,GAAG,EAAE,EAAE,GAAE,EAAA,CAAG,EAAE,CAAA,GAAE,IAAA,EAAK,KAAG,EAAA,CAAG,EAAE,EAAE,CAAA,EAAE,EAAA,CAAG,EAAE,CAAA,GAAE,IAAA;AAAK,MAAA,OAAK,CAAA,KAAI,EAAA,IAAI,EAAA,GAAG,EAAA,CAAG,EAAE,EAAE,CAAA,EAAE,EAAA,CAAG,EAAE,CAAA,GAAE,IAAA,EAAK,EAAA,GAAG,EAAA,CAAG,EAAE,EAAE,CAAA,EAAE,EAAA,CAAG,EAAE,CAAA,GAAE,IAAA,EAAK,EAAA,GAAG,EAAA,CAAG,EAAE,EAAE,CAAA,EAAE,EAAA,CAAG,EAAE,CAAA,GAAE,IAAA;AAAA,IAAI;AAAC,IAAA,IAAI,EAAA,GAAG,IAAA;AAAP,IAAA,IAAY,EAAA,GAAG,IAAA;AAAf,IAAA,IAAoB,CAAA,GAAE,KAAA;AAAtB,IAAA,IAAyB,EAAA,GAAG,IAAA;AACje,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,IAAA,EAAK,MAAK,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,WAAA,GAAY,SAAA;AAAU,MAAA,CAAA,CAAE,SAAA,GAAU,CAAA;AAAE,MAAA,CAAA,CAAE,MAAA,GAAO,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,SAAA,GAAU,CAAC,CAAC,CAAA,EAAE,CAAA,CAAE,KAAA,IAAO,EAAA,IAAI,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA;AAAA,IAAC;AACxJ,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,QAAO,EAAE,GAAA;AAAI,QAAC,KAAK,CAAA;AAAE,UAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,UAAA,CAAA,GAAE,CAAA,KAAI,CAAA,CAAE,QAAA,IAAU,CAAA,CAAE,WAAA,OAAgB,CAAA,CAAE,QAAA,CAAS,WAAA,EAAY,GAAE,IAAA,GAAK,CAAA;AAAE,UAAA,OAAO,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,SAAA,GAAU,CAAA,EAAE,EAAA,GAAG,CAAA,EAAE,EAAA,GAAG,EAAA,CAAG,CAAA,CAAE,UAAU,CAAA,EAAE,IAAA,IAAI,KAAA;AAAA,QAAG,KAAK,CAAA;AAAE,UAAA,OAAO,IAAE,EAAA,KAAK,CAAA,CAAE,gBAAc,CAAA,KAAI,CAAA,CAAE,WAAS,IAAA,GAAK,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG,EAAE,SAAA,GAAU,CAAA,EAAE,KAAG,CAAA,EAAE,EAAA,GAAG,MAAK,IAAA,IAAI,KAAA;AAAA,QAAG,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,GAAE,MAAI,CAAA,CAAE,QAAA,GAAS,OAAK,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG,CAAA,GAAE,IAAA,KAAO,EAAA,GAAG,EAAC,EAAA,EAAG,EAAA,EAAG,UAAS,EAAA,EAAE,GAAE,MAAK,CAAA,CAAE,aAAA,GAAc,EAAC,UAAA,EAAW,CAAA,EAAE,WAAA,EAAY,GAAE,SAAA,EAAU,UAAA,IAAY,CAAA,GAAE,EAAA,CAAG,IAAG,IAAA,EAAK,IAAA,EAAK,CAAC,CAAA,EAAE,CAAA,CAAE,SAAA,GAAU,GAAE,CAAA,CAAE,MAAA,GAAO,GAAE,CAAA,CAAE,KAAA,GAAM,GAAE,EAAA,GAAG,CAAA,EAAE,EAAA,GAClf,IAAA,EAAK,IAAA,IAAI,KAAA;AAAA,QAAG;AAAQ,UAAA,OAAM,KAAA;AAAA;AAAE,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAO,OAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA,IAAI,CAAA,MAAK,EAAE,KAAA,GAAM,GAAA,CAAA;AAAA,IAAI;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,EAAA;AAAG,QAAA,IAAG,CAAA,EAAE;AAAC,UAAA,IAAI,CAAA,GAAE,CAAA;AAAE,UAAA,IAAG,CAAC,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE;AAAC,YAAA,IAAG,GAAG,CAAC,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAA,CAAG,EAAE,WAAW,CAAA;AAAE,YAAA,IAAI,CAAA,GAAE,EAAA;AAAG,YAAA,CAAA,IAAG,GAAG,CAAA,EAAE,CAAC,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA,IAAG,CAAA,CAAE,KAAA,GAAM,EAAE,KAAA,GAAM,KAAA,GAAM,CAAA,EAAE,CAAA,GAAE,OAAG,EAAA,GAAG,CAAA,CAAA;AAAA,UAAE;AAAA,QAAC,CAAA,MAAK;AAAC,UAAA,IAAG,GAAG,CAAC,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,UAAA,CAAA,CAAE,KAAA,GAAM,CAAA,CAAE,KAAA,GAAM,KAAA,GAAM,CAAA;AAAE,UAAA,CAAA,GAAE,KAAA;AAAG,UAAA,EAAA,GAAG,CAAA;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,KAAI,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,IAAA,KAAO,KAAG,CAAA,KAAI,CAAA,CAAE,GAAA,IAAK,CAAA,KAAI,EAAE,GAAA,IAAK,EAAA,KAAK,CAAA,CAAE,GAAA,QAAO,CAAA,CAAE,MAAA;AAAO,MAAA,EAAA,GAAG,CAAA;AAAA,IAAC;AACha,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,KAAI,IAAG,OAAM,KAAA;AAAG,MAAA,IAAG,CAAC,CAAA,EAAE,OAAO,GAAG,CAAC,CAAA,EAAE,IAAE,IAAA,EAAG,KAAA;AAAG,MAAA,IAAI,CAAA;AAAE,MAAA,CAAC,CAAA,GAAE,MAAI,CAAA,CAAE,GAAA,KAAM,EAAE,CAAA,GAAE,CAAA,KAAI,CAAA,CAAE,GAAA,CAAA,KAAO,CAAA,GAAE,CAAA,CAAE,MAAK,CAAA,GAAE,MAAA,KAAS,KAAG,MAAA,KAAS,CAAA,IAAG,CAAC,EAAA,CAAG,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,aAAa,CAAA,CAAA;AAAG,MAAA,IAAG,CAAA,KAAI,IAAE,EAAA,CAAA,EAAI;AAAC,QAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE,MAAM,IAAG,EAAE,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,OAAK,CAAA,OAAM,CAAA,EAAE,CAAC,GAAE,CAAA,GAAE,EAAA,CAAG,EAAE,WAAW,CAAA;AAAA,MAAC;AAAC,MAAA,EAAA,CAAG,CAAC,CAAA;AAAE,MAAA,IAAG,EAAA,KAAK,EAAE,GAAA,EAAI;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,QAAA,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,UAAA,GAAW,IAAA;AAAK,QAAA,IAAG,CAAC,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,CAAA,EAAE;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,UAAA,KAAI,CAAA,GAAE,GAAE,CAAA,IAAG;AAAC,YAAA,IAAG,CAAA,KAAI,EAAE,QAAA,EAAS;AAAC,cAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,cAAA,IAAG,SAAO,CAAA,EAAE;AAAC,gBAAA,IAAG,MAAI,CAAA,EAAE;AAAC,kBAAA,EAAA,GAAG,EAAA,CAAG,EAAE,WAAW,CAAA;AAAE,kBAAA,MAAM,CAAA;AAAA,gBAAC;AAAC,gBAAA,CAAA,EAAA;AAAA,cAAG,OAAK,GAAA,KAAM,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,SAAO,CAAA,IAAG,CAAA,EAAA;AAAA,YAAG;AAAC,YAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAA,UAAW;AAAC,UAAA,EAAA,GACjgB,IAAA;AAAA,QAAI;AAAA,MAAC,OAAM,EAAA,GAAG,EAAA,GAAG,GAAG,CAAA,CAAE,SAAA,CAAU,WAAW,CAAA,GAAE,IAAA;AAAK,MAAA,OAAM,IAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,KAAA,IAAQ,IAAE,EAAA,EAAG,CAAA,IAAG,CAAA,GAAE,EAAA,CAAG,EAAE,WAAW,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,EAAA,GAAG,EAAA,GAAG,IAAA;AAAK,MAAA,CAAA,GAAE,KAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAA,KAAO,KAAG,EAAA,GAAG,CAAC,CAAC,CAAA,GAAE,EAAA,CAAG,KAAK,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,KAAG,EAAA,CAAG,uBAAA;AAChM,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,GAAA;AAAI,MAAA,IAAG,SAAO,CAAA,IAAG,UAAA,KAAa,OAAO,CAAA,IAAG,QAAA,KAAW,OAAO,CAAA,EAAE;AAAC,QAAA,IAAG,EAAE,MAAA,EAAO;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAO,UAAA,IAAG,CAAA,EAAE;AAAC,YAAA,IAAG,MAAI,CAAA,CAAE,GAAA,QAAU,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,YAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAA,UAAS;AAAC,UAAA,IAAG,CAAC,CAAA,EAAE,MAAM,MAAM,CAAA,CAAE,GAAA,EAAI,CAAC,CAAC,CAAA;AAAE,UAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,GAAG,CAAA;AAAE,UAAA,IAAG,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,OAAK,UAAA,KAAa,OAAO,CAAA,CAAE,GAAA,IAAK,CAAA,CAAE,GAAA,CAAI,UAAA,KAAa,CAAA,SAAS,CAAA,CAAE,GAAA;AAAI,UAAA,CAAA,GAAE,SAASJ,EAAAA,EAAE;AAAC,YAAA,IAAIC,KAAE,CAAA,CAAE,IAAA;AAAK,YAAA,IAAA,KAAOD,KAAE,OAAOC,EAAAA,CAAE,CAAC,CAAA,GAAEA,EAAAA,CAAE,CAAC,CAAA,GAAED,EAAAA;AAAA,UAAC,CAAA;AAAE,UAAA,CAAA,CAAE,UAAA,GAAW,CAAA;AAAE,UAAA,OAAO,CAAA;AAAA,QAAC;AAAC,QAAA,IAAG,aAAW,OAAO,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,IAAG,CAAC,EAAE,MAAA,EAAO,MAAM,MAAM,CAAA,CAAE,GAAA,EAAI,CAAC,CAAC,CAAA;AAAA,MAAE;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AAC/c,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA;AAAE,MAAA,MAAM,KAAA,CAAM,CAAA,CAAE,EAAA,EAAG,iBAAA,KAAoB,IAAE,oBAAA,GAAqB,MAAA,CAAO,IAAA,CAAK,CAAC,EAAE,IAAA,CAAK,IAAI,CAAA,GAAE,GAAA,GAAI,CAAC,CAAC,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,MAAA,OAAO,CAAA,CAAE,EAAE,QAAQ,CAAA;AAAA,IAAC;AACrM,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,SAAS,CAAA,CAAEC,IAAEM,EAAAA,EAAE;AAAC,QAAA,IAAG,CAAA,EAAE;AAAC,UAAA,IAAIL,KAAED,EAAAA,CAAE,SAAA;AAAU,UAAA,IAAA,KAAOC,EAAAA,IAAGD,EAAAA,CAAE,SAAA,GAAU,CAACM,EAAC,CAAA,EAAEN,EAAAA,CAAE,KAAA,IAAO,EAAA,IAAIC,EAAAA,CAAE,IAAA,CAAKK,EAAC,CAAA;AAAA,QAAC;AAAA,MAAC;AAAC,MAAA,SAAS,CAAA,CAAEA,IAAEL,EAAAA,EAAE;AAAC,QAAA,IAAG,CAAC,GAAE,OAAO,IAAA;AAAK,QAAA,OAAK,SAAOA,EAAAA,IAAG,CAAA,CAAEK,IAAEL,EAAC,CAAA,EAAEA,KAAEA,EAAAA,CAAE,OAAA;AAAQ,QAAA,OAAO,IAAA;AAAA,MAAI;AAAC,MAAA,SAAS,CAAA,CAAEF,IAAEC,EAAAA,EAAE;AAAC,QAAA,KAAID,EAAAA,uBAAM,GAAA,EAAA,EAAI,IAAA,KAAOC,MAAG,IAAA,KAAOA,EAAAA,CAAE,MAAID,EAAAA,CAAE,GAAA,CAAIC,GAAE,GAAA,EAAIA,EAAC,IAAED,EAAAA,CAAE,GAAA,CAAIC,GAAE,KAAA,EAAMA,EAAC,CAAA,EAAEA,EAAAA,GAAEA,EAAAA,CAAE,OAAA;AAAQ,QAAA,OAAOD,EAAAA;AAAA,MAAC;AAAC,MAAA,SAAS,CAAA,CAAEA,IAAEC,EAAAA,EAAE;AAAC,QAAAD,EAAAA,GAAE,EAAA,CAAGA,EAAAA,EAAEC,EAAC,CAAA;AAAE,QAAAD,GAAE,KAAA,GAAM,CAAA;AAAE,QAAAA,GAAE,OAAA,GAAQ,IAAA;AAAK,QAAA,OAAOA,EAAAA;AAAA,MAAC;AAAC,MAAA,SAAS,CAAA,CAAEC,EAAAA,EAAEM,EAAAA,EAAEL,EAAAA,EAAE;AAAC,QAAAD,GAAE,KAAA,GAAMC,EAAAA;AAAE,QAAA,IAAG,CAAC,CAAA,EAAE,OAAOD,EAAAA,CAAE,SAAO,OAAA,EAAQM,EAAAA;AAAE,QAAAL,KAAED,EAAAA,CAAE,SAAA;AAAU,QAAA,IAAG,IAAA,KAAOC,EAAAA,EAAE,OAAOA,EAAAA,GAAEA,EAAAA,CAAE,KAAA,EAAMA,EAAAA,GAAEK,EAAAA,IAAGN,EAAAA,CAAE,KAAA,IAAO,CAAA,EAAEM,EAAAA,IAAGL,EAAAA;AAAE,QAAAD,GAAE,KAAA,IAAO,CAAA;AAAE,QAAA,OAAOM,EAAAA;AAAA,MAAC;AAAC,MAAA,SAAS,EAAEN,EAAAA,EAAE;AAAC,QAAA,CAAA,IAC7f,IAAA,KAAOA,EAAAA,CAAE,SAAA,KAAYA,EAAAA,CAAE,KAAA,IAAO,CAAA,CAAA;AAAG,QAAA,OAAOA,EAAAA;AAAA,MAAC;AAAC,MAAA,SAAS,CAAA,CAAED,EAAAA,EAAEC,EAAAA,EAAEM,EAAAA,EAAEL,EAAAA,EAAE;AAAC,QAAA,IAAG,IAAA,KAAOD,EAAAA,IAAG,CAAA,KAAIA,EAAAA,CAAE,KAAI,OAAOA,EAAAA,GAAE,EAAA,CAAGM,EAAAA,EAAEP,GAAE,IAAA,EAAKE,EAAC,CAAA,EAAED,EAAAA,CAAE,SAAOD,EAAAA,EAAEC,EAAAA;AAAE,QAAAA,EAAAA,GAAE,CAAA,CAAEA,EAAAA,EAAEM,EAAC,CAAA;AAAE,QAAAN,GAAE,MAAA,GAAOD,EAAAA;AAAE,QAAA,OAAOC,EAAAA;AAAA,MAAC;AAAC,MAAA,SAAS,CAAA,CAAED,EAAAA,EAAEC,EAAAA,EAAEM,EAAAA,EAAEL,EAAAA,EAAE;AAAC,QAAA,IAAIM,KAAED,EAAAA,CAAE,IAAA;AAAK,QAAA,IAAGC,EAAAA,KAAI,EAAA,EAAG,OAAO,CAAA,CAAER,EAAAA,EAAEC,EAAAA,EAAEM,EAAAA,CAAE,KAAA,CAAM,QAAA,EAASL,EAAAA,EAAEK,EAAAA,CAAE,GAAG,CAAA;AAAE,QAAA,IAAG,IAAA,KAAON,EAAAA,KAAIA,EAAAA,CAAE,WAAA,KAAcO,MAAG,QAAA,KAAW,OAAOA,EAAAA,IAAG,IAAA,KAAOA,MAAGA,EAAAA,CAAE,QAAA,KAAW,EAAA,IAAI,EAAA,CAAGA,EAAC,CAAA,KAAIP,EAAAA,CAAE,IAAA,CAAA,EAAM,OAAOC,EAAAA,GAAE,CAAA,CAAED,EAAAA,EAAEM,EAAAA,CAAE,KAAK,CAAA,EAAEL,EAAAA,CAAE,GAAA,GAAI,EAAA,CAAGF,IAAEC,EAAAA,EAAEM,EAAC,CAAA,EAAEL,EAAAA,CAAE,SAAOF,EAAAA,EAAEE,EAAAA;AAAE,QAAAA,EAAAA,GAAE,EAAA,CAAGK,EAAAA,CAAE,IAAA,EAAKA,EAAAA,CAAE,GAAA,EAAIA,EAAAA,CAAE,KAAA,EAAM,IAAA,EAAKP,EAAAA,CAAE,IAAA,EAAKE,EAAC,CAAA;AAAE,QAAAA,EAAAA,CAAE,GAAA,GAAI,EAAA,CAAGF,EAAAA,EAAEC,IAAEM,EAAC,CAAA;AAAE,QAAAL,GAAE,MAAA,GAAOF,EAAAA;AAAE,QAAA,OAAOE,EAAAA;AAAA,MAAC;AAAC,MAAA,SAAS,CAAA,CAAEF,EAAAA,EAAEC,EAAAA,EAAEM,EAAAA,EAAEL,EAAAA,EAAE;AAAC,QAAA,IAAG,IAAA,KAAOD,EAAAA,IAAG,CAAA,KAAIA,EAAAA,CAAE,GAAA,IACjfA,GAAE,SAAA,CAAU,aAAA,KAAgBM,EAAAA,CAAE,aAAA,IAAeN,EAAAA,CAAE,SAAA,CAAU,mBAAiBM,EAAAA,CAAE,cAAA,EAAe,OAAON,EAAAA,GAAE,EAAA,CAAGM,EAAAA,EAAEP,EAAAA,CAAE,IAAA,EAAKE,EAAC,CAAA,EAAED,EAAAA,CAAE,MAAA,GAAOD,EAAAA,EAAEC,EAAAA;AAAE,QAAAA,KAAE,CAAA,CAAEA,EAAAA,EAAEM,EAAAA,CAAE,QAAA,IAAU,EAAE,CAAA;AAAE,QAAAN,GAAE,MAAA,GAAOD,EAAAA;AAAE,QAAA,OAAOC,EAAAA;AAAA,MAAC;AAAC,MAAA,SAAS,CAAA,CAAED,EAAAA,EAAEC,EAAAA,EAAEM,EAAAA,EAAEL,IAAEM,EAAAA,EAAE;AAAC,QAAA,IAAG,SAAOP,EAAAA,IAAG,CAAA,KAAIA,EAAAA,CAAE,GAAA,SAAWA,EAAAA,GAAE,EAAA,CAAGM,EAAAA,EAAEP,EAAAA,CAAE,MAAKE,EAAAA,EAAEM,EAAC,CAAA,EAAEP,EAAAA,CAAE,SAAOD,EAAAA,EAAEC,EAAAA;AAAE,QAAAA,EAAAA,GAAE,CAAA,CAAEA,EAAAA,EAAEM,EAAC,CAAA;AAAE,QAAAN,GAAE,MAAA,GAAOD,EAAAA;AAAE,QAAA,OAAOC,EAAAA;AAAA,MAAC;AAAC,MAAA,SAAS,CAAA,CAAED,EAAAA,EAAEC,EAAAA,EAAEM,EAAAA,EAAE;AAAC,QAAA,IAAG,aAAW,OAAON,EAAAA,IAAG,OAAKA,EAAAA,IAAG,QAAA,KAAW,OAAOA,EAAAA,EAAE,OAAOA,KAAE,EAAA,CAAG,EAAA,GAAGA,IAAED,EAAAA,CAAE,IAAA,EAAKO,EAAC,CAAA,EAAEN,EAAAA,CAAE,SAAOD,EAAAA,EAAEC,EAAAA;AAAE,QAAA,IAAG,QAAA,KAAW,OAAOA,EAAAA,IAAG,IAAA,KAAOA,EAAAA,EAAE;AAAC,UAAA,QAAOA,GAAE,QAAA;AAAS,YAAC,KAAK,EAAA;AAAG,cAAA,OAAOM,EAAAA,GAAE,GAAGN,EAAAA,CAAE,IAAA,EAAKA,GAAE,GAAA,EAAIA,EAAAA,CAAE,KAAA,EAAM,IAAA,EAAKD,EAAAA,CAAE,IAAA,EAAKO,EAAC,CAAA,EACpfA,EAAAA,CAAE,MAAI,EAAA,CAAGP,EAAAA,EAAE,MAAKC,EAAC,CAAA,EAAEM,EAAAA,CAAE,MAAA,GAAOP,EAAAA,EAAEO,EAAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA,OAAON,EAAAA,GAAE,GAAGA,EAAAA,EAAED,EAAAA,CAAE,MAAKO,EAAC,CAAA,EAAEN,EAAAA,CAAE,MAAA,GAAOD,EAAAA,EAAEC,EAAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA,IAAIC,KAAED,EAAAA,CAAE,KAAA;AAAM,cAAA,OAAO,EAAED,EAAAA,EAAEE,EAAAA,CAAED,EAAAA,CAAE,QAAQ,GAAEM,EAAC,CAAA;AAAA;AAAE,UAAA,IAAG,GAAGN,EAAC,CAAA,IAAG,EAAA,CAAGA,EAAC,GAAE,OAAOA,EAAAA,GAAE,EAAA,CAAGA,EAAAA,EAAED,GAAE,IAAA,EAAKO,EAAAA,EAAE,IAAI,CAAA,EAAEN,EAAAA,CAAE,SAAOD,EAAAA,EAAEC,EAAAA;AAAE,UAAA,EAAA,CAAGD,IAAEC,EAAC,CAAA;AAAA,QAAC;AAAC,QAAA,OAAO,IAAA;AAAA,MAAI;AAAC,MAAA,SAAS,CAAA,CAAED,EAAAA,EAAEC,EAAAA,EAAEM,EAAAA,EAAEL,EAAAA,EAAE;AAAC,QAAA,IAAIC,EAAAA,GAAE,IAAA,KAAOF,EAAAA,GAAEA,EAAAA,CAAE,GAAA,GAAI,IAAA;AAAK,QAAA,IAAG,aAAW,OAAOM,EAAAA,IAAG,EAAA,KAAKA,EAAAA,IAAG,aAAW,OAAOA,EAAAA,EAAE,OAAO,IAAA,KAAOJ,KAAE,IAAA,GAAK,CAAA,CAAEH,IAAEC,EAAAA,EAAE,EAAA,GAAGM,IAAEL,EAAC,CAAA;AAAE,QAAA,IAAG,QAAA,KAAW,OAAOK,EAAAA,IAAG,IAAA,KAAOA,EAAAA,EAAE;AAAC,UAAA,QAAOA,GAAE,QAAA;AAAS,YAAC,KAAK,EAAA;AAAG,cAAA,OAAOA,EAAAA,CAAE,QAAMJ,EAAAA,GAAE,CAAA,CAAEH,IAAEC,EAAAA,EAAEM,EAAAA,EAAEL,EAAC,CAAA,GAAE,IAAA;AAAA,YAAK,KAAK,EAAA;AAAG,cAAA,OAAOK,EAAAA,CAAE,QAAMJ,EAAAA,GAAE,CAAA,CAAEH,IAAEC,EAAAA,EAAEM,EAAAA,EAAEL,EAAC,CAAA,GAAE,IAAA;AAAA,YAAK,KAAK,EAAA;AAAG,cAAA,OAAOC,EAAAA,GAAEI,GAAE,KAAA,EAAM,CAAA;AAAA,gBAAEP,EAAAA;AAAA,gBACpfC,EAAAA;AAAA,gBAAEE,EAAAA,CAAEI,GAAE,QAAQ,CAAA;AAAA,gBAAEL;AAAA,eAAC;AAAA;AAAE,UAAA,IAAG,EAAA,CAAGK,EAAC,CAAA,IAAG,EAAA,CAAGA,EAAC,CAAA,EAAE,OAAO,IAAA,KAAOJ,EAAAA,GAAE,OAAK,CAAA,CAAEH,EAAAA,EAAEC,EAAAA,EAAEM,EAAAA,EAAEL,IAAE,IAAI,CAAA;AAAE,UAAA,EAAA,CAAGF,IAAEO,EAAC,CAAA;AAAA,QAAC;AAAC,QAAA,OAAO,IAAA;AAAA,MAAI;AAAC,MAAA,SAAS,CAAA,CAAEP,EAAAA,EAAEC,EAAAA,EAAEM,EAAAA,EAAEL,IAAEC,EAAAA,EAAE;AAAC,QAAA,IAAG,QAAA,KAAW,OAAOD,EAAAA,IAAG,EAAA,KAAKA,MAAG,QAAA,KAAW,OAAOA,IAAE,OAAOF,EAAAA,GAAEA,GAAE,GAAA,CAAIO,EAAC,KAAG,IAAA,EAAK,CAAA,CAAEN,IAAED,EAAAA,EAAE,EAAA,GAAGE,IAAEC,EAAC,CAAA;AAAE,QAAA,IAAG,QAAA,KAAW,OAAOD,EAAAA,IAAG,IAAA,KAAOA,EAAAA,EAAE;AAAC,UAAA,QAAOA,GAAE,QAAA;AAAS,YAAC,KAAK,EAAA;AAAG,cAAA,OAAOF,EAAAA,GAAEA,EAAAA,CAAE,GAAA,CAAI,IAAA,KAAOE,GAAE,GAAA,GAAIK,EAAAA,GAAEL,EAAAA,CAAE,GAAG,KAAG,IAAA,EAAK,CAAA,CAAED,EAAAA,EAAED,EAAAA,EAAEE,IAAEC,EAAC,CAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA,OAAOH,EAAAA,GAAEA,EAAAA,CAAE,GAAA,CAAI,IAAA,KAAOE,GAAE,GAAA,GAAIK,EAAAA,GAAEL,EAAAA,CAAE,GAAG,KAAG,IAAA,EAAK,CAAA,CAAED,EAAAA,EAAED,EAAAA,EAAEE,IAAEC,EAAC,CAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA,IAAIK,KAAEN,EAAAA,CAAE,KAAA;AAAM,cAAA,OAAO,CAAA,CAAEF,IAAEC,EAAAA,EAAEM,EAAAA,EAAEC,GAAEN,EAAAA,CAAE,QAAQ,GAAEC,EAAC,CAAA;AAAA;AAAE,UAAA,IAAG,GAAGD,EAAC,CAAA,IAAG,GAAGA,EAAC,CAAA,SAASF,EAAAA,GAAEA,EAAAA,CAAE,GAAA,CAAIO,EAAC,KAAG,IAAA,EAAK,CAAA,CAAEN,IAAED,EAAAA,EAAEE,EAAAA,EAAEC,IAAE,IAAI,CAAA;AAAE,UAAA,EAAA,CAAGF,IAAEC,EAAC,CAAA;AAAA,QAAC;AAAC,QAAA,OAAO,IAAA;AAAA,MAAI;AAC9f,MAAA,SAAS,CAAA,CAAEC,EAAAA,EAAEC,EAAAA,EAAEC,EAAAA,EAAEC,EAAAA,EAAE;AAAC,QAAA,KAAA,IAAQG,KAAE,IAAA,EAAKC,EAAAA,GAAE,IAAA,EAAK,CAAA,GAAEN,IAAE,CAAA,GAAEA,EAAAA,GAAE,CAAA,EAAE,CAAA,GAAE,MAAK,IAAA,KAAO,CAAA,IAAG,CAAA,GAAEC,EAAAA,CAAE,QAAO,CAAA,EAAA,EAAI;AAAC,UAAA,CAAA,CAAE,QAAM,CAAA,IAAG,CAAA,GAAE,GAAE,CAAA,GAAE,IAAA,IAAM,IAAE,CAAA,CAAE,OAAA;AAAQ,UAAA,IAAIM,KAAE,CAAA,CAAER,EAAAA,EAAE,GAAEE,EAAAA,CAAE,CAAC,GAAEC,EAAC,CAAA;AAAE,UAAA,IAAG,SAAOK,EAAAA,EAAE;AAAC,YAAA,IAAA,KAAO,MAAI,CAAA,GAAE,CAAA,CAAA;AAAG,YAAA;AAAA,UAAK;AAAC,UAAA,CAAA,IAAG,KAAG,IAAA,KAAOA,EAAAA,CAAE,SAAA,IAAW,CAAA,CAAER,IAAE,CAAC,CAAA;AAAE,UAAAC,EAAAA,GAAE,CAAA,CAAEO,EAAAA,EAAEP,EAAAA,EAAE,CAAC,CAAA;AAAE,UAAA,IAAA,KAAOM,EAAAA,GAAED,EAAAA,GAAEE,EAAAA,GAAED,EAAAA,CAAE,OAAA,GAAQC,EAAAA;AAAE,UAAAD,EAAAA,GAAEC,EAAAA;AAAE,UAAA,CAAA,GAAE,CAAA;AAAA,QAAC;AAAC,QAAA,IAAG,CAAA,KAAIN,EAAAA,CAAE,MAAA,EAAO,OAAO,CAAA,CAAEF,EAAAA,EAAE,CAAC,CAAA,EAAE,CAAA,IAAG,EAAA,CAAGA,EAAAA,EAAE,CAAC,CAAA,EAAEM,EAAAA;AAAE,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,OAAK,CAAA,GAAEJ,EAAAA,CAAE,MAAA,EAAO,CAAA,EAAA,EAAI,CAAA,GAAE,CAAA,CAAEF,EAAAA,EAAEE,EAAAA,CAAE,CAAC,CAAA,EAAEC,EAAC,CAAA,EAAE,IAAA,KAAO,CAAA,KAAIF,EAAAA,GAAE,CAAA,CAAE,CAAA,EAAEA,EAAAA,EAAE,CAAC,CAAA,EAAE,IAAA,KAAOM,EAAAA,GAAED,EAAAA,GAAE,CAAA,GAAEC,EAAAA,CAAE,OAAA,GAAQ,CAAA,EAAEA,EAAAA,GAAE,CAAA,CAAA;AAAG,UAAA,CAAA,IAAG,EAAA,CAAGP,IAAE,CAAC,CAAA;AAAE,UAAA,OAAOM,EAAAA;AAAA,QAAC;AAAC,QAAA,KAAI,CAAA,GAAE,EAAEN,EAAAA,EAAE,CAAC,GAAE,CAAA,GAAEE,EAAAA,CAAE,QAAO,CAAA,EAAA,EAAI,CAAA,GAAE,EAAE,CAAA,EAAEF,EAAAA,EAAE,GAAEE,EAAAA,CAAE,CAAC,GAAEC,EAAC,CAAA,EAAE,IAAA,KAAO,CAAA,KAAI,CAAA,IAAG,IAAA,KAAO,EAAE,SAAA,IAAW,CAAA,CAAE,OAAO,IAAA,KACvf,CAAA,CAAE,MAAI,CAAA,GAAE,CAAA,CAAE,GAAG,CAAA,EAAEF,EAAAA,GAAE,CAAA,CAAE,GAAEA,EAAAA,EAAE,CAAC,GAAE,IAAA,KAAOM,EAAAA,GAAED,KAAE,CAAA,GAAEC,EAAAA,CAAE,OAAA,GAAQ,CAAA,EAAEA,EAAAA,GAAE,CAAA,CAAA;AAAG,QAAA,CAAA,IAAG,CAAA,CAAE,OAAA,CAAQ,SAASV,EAAAA,EAAE;AAAC,UAAA,OAAO,CAAA,CAAEG,IAAEH,EAAC,CAAA;AAAA,QAAC,CAAC,CAAA;AAAE,QAAA,CAAA,IAAG,EAAA,CAAGG,IAAE,CAAC,CAAA;AAAE,QAAA,OAAOM,EAAAA;AAAA,MAAC;AAAC,MAAA,SAAS,CAAA,CAAEN,EAAAA,EAAEC,EAAAA,EAAEC,EAAAA,EAAEC,EAAAA,EAAE;AAAC,QAAA,IAAIG,EAAAA,GAAE,GAAGJ,EAAC,CAAA;AAAE,QAAA,IAAG,eAAa,OAAOI,EAAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAAJ,EAAAA,GAAEI,EAAAA,CAAE,IAAA,CAAKJ,EAAC,CAAA;AAAE,QAAA,IAAG,QAAMA,EAAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,KAAA,IAAQ,CAAA,GAAEI,KAAE,IAAA,EAAKC,EAAAA,GAAEN,IAAE,CAAA,GAAEA,EAAAA,GAAE,CAAA,EAAE,CAAA,GAAE,IAAA,EAAKO,EAAAA,GAAEN,GAAE,IAAA,EAAK,EAAE,IAAA,KAAOK,EAAAA,IAAG,CAACC,EAAAA,CAAE,MAAK,CAAA,EAAA,EAAIA,EAAAA,GAAEN,EAAAA,CAAE,IAAA,EAAK,EAAE;AAAC,UAAAK,EAAAA,CAAE,QAAM,CAAA,IAAG,CAAA,GAAEA,IAAEA,EAAAA,GAAE,IAAA,IAAM,IAAEA,EAAAA,CAAE,OAAA;AAAQ,UAAA,IAAIE,KAAE,CAAA,CAAET,EAAAA,EAAEO,EAAAA,EAAEC,EAAAA,CAAE,OAAML,EAAC,CAAA;AAAE,UAAA,IAAG,SAAOM,EAAAA,EAAE;AAAC,YAAA,IAAA,KAAOF,OAAIA,EAAAA,GAAE,CAAA,CAAA;AAAG,YAAA;AAAA,UAAK;AAAC,UAAA,CAAA,IAAGA,MAAG,IAAA,KAAOE,EAAAA,CAAE,SAAA,IAAW,CAAA,CAAET,IAAEO,EAAC,CAAA;AAAE,UAAAN,EAAAA,GAAE,CAAA,CAAEQ,EAAAA,EAAER,EAAAA,EAAE,CAAC,CAAA;AAAE,UAAA,IAAA,KAAO,CAAA,GAAEK,EAAAA,GAAEG,EAAAA,GAAE,CAAA,CAAE,OAAA,GAAQA,EAAAA;AAAE,UAAA,CAAA,GAAEA,EAAAA;AAAE,UAAAF,EAAAA,GAAE,CAAA;AAAA,QAAC;AAAC,QAAA,IAAGC,EAAAA,CAAE,MAAK,OAAO,CAAA;AAAA,UAAER,EAAAA;AAAA,UACzfO;AAAA,SAAC,EAAE,CAAA,IAAG,EAAA,CAAGP,EAAAA,EAAE,CAAC,CAAA,EAAEM,EAAAA;AAAE,QAAA,IAAG,SAAOC,EAAAA,EAAE;AAAC,UAAA,OAAK,CAACC,EAAAA,CAAE,IAAA,EAAK,CAAA,EAAA,EAAIA,EAAAA,GAAEN,EAAAA,CAAE,IAAA,EAAK,EAAEM,EAAAA,GAAE,CAAA,CAAER,EAAAA,EAAEQ,GAAE,KAAA,EAAML,EAAC,CAAA,EAAE,IAAA,KAAOK,EAAAA,KAAIP,EAAAA,GAAE,CAAA,CAAEO,EAAAA,EAAEP,IAAE,CAAC,CAAA,EAAE,IAAA,KAAO,CAAA,GAAEK,EAAAA,GAAEE,EAAAA,GAAE,CAAA,CAAE,OAAA,GAAQA,IAAE,CAAA,GAAEA,EAAAA,CAAAA;AAAG,UAAA,CAAA,IAAG,EAAA,CAAGR,IAAE,CAAC,CAAA;AAAE,UAAA,OAAOM,EAAAA;AAAA,QAAC;AAAC,QAAA,KAAIC,EAAAA,GAAE,EAAEP,EAAAA,EAAEO,EAAC,GAAE,CAACC,EAAAA,CAAE,IAAA,EAAK,CAAA,EAAA,EAAIA,EAAAA,GAAEN,EAAAA,CAAE,MAAK,EAAEM,EAAAA,GAAE,CAAA,CAAED,EAAAA,EAAEP,EAAAA,EAAE,GAAEQ,EAAAA,CAAE,KAAA,EAAML,EAAC,CAAA,EAAE,IAAA,KAAOK,EAAAA,KAAI,KAAG,IAAA,KAAOA,EAAAA,CAAE,SAAA,IAAWD,EAAAA,CAAE,MAAA,CAAO,IAAA,KAAOC,GAAE,GAAA,GAAI,CAAA,GAAEA,EAAAA,CAAE,GAAG,CAAA,EAAEP,EAAAA,GAAE,EAAEO,EAAAA,EAAEP,EAAAA,EAAE,CAAC,CAAA,EAAE,IAAA,KAAO,CAAA,GAAEK,KAAEE,EAAAA,GAAE,CAAA,CAAE,OAAA,GAAQA,EAAAA,EAAE,CAAA,GAAEA,EAAAA,CAAAA;AAAG,QAAA,CAAA,IAAGD,EAAAA,CAAE,OAAA,CAAQ,SAASV,EAAAA,EAAE;AAAC,UAAA,OAAO,CAAA,CAAEG,IAAEH,EAAC,CAAA;AAAA,QAAC,CAAC,CAAA;AAAE,QAAA,CAAA,IAAG,EAAA,CAAGG,IAAE,CAAC,CAAA;AAAE,QAAA,OAAOM,EAAAA;AAAA,MAAC;AAAC,MAAA,SAAS,CAAA,CAAET,EAAAA,EAAEE,EAAAA,EAAEM,EAAAA,EAAEH,EAAAA,EAAE;AAAC,QAAA,QAAA,KAAW,OAAOG,EAAAA,IAAG,IAAA,KAAOA,EAAAA,IAAGA,EAAAA,CAAE,IAAA,KAAO,EAAA,IAAI,IAAA,KAAOA,EAAAA,CAAE,GAAA,KAAMA,EAAAA,GAAEA,EAAAA,CAAE,KAAA,CAAM,QAAA,CAAA;AAAU,QAAA,IAAG,QAAA,KAAW,OAAOA,EAAAA,IAAG,IAAA,KAAOA,EAAAA,EAAE;AAAC,UAAA,QAAOA,GAAE,QAAA;AAAS,YAAC,KAAK,EAAA;AAAG,cAAA,CAAA,EAAE;AAAC,gBAAA,KAAA,IAAQF,KAC7hBE,EAAAA,CAAE,GAAA,EAAIC,EAAAA,GAAEP,EAAAA,EAAE,SAAOO,EAAAA,IAAG;AAAC,kBAAA,IAAGA,EAAAA,CAAE,QAAMH,EAAAA,EAAE;AAAC,oBAAAA,KAAEE,EAAAA,CAAE,IAAA;AAAK,oBAAA,IAAGF,OAAI,EAAA,EAAG;AAAC,sBAAA,IAAG,CAAA,KAAIG,GAAE,GAAA,EAAI;AAAC,wBAAA,CAAA,CAAET,EAAAA,EAAES,GAAE,OAAO,CAAA;AAAE,wBAAAP,EAAAA,GAAE,CAAA,CAAEO,EAAAA,EAAED,EAAAA,CAAE,MAAM,QAAQ,CAAA;AAAE,wBAAAN,GAAE,MAAA,GAAOF,EAAAA;AAAE,wBAAAA,EAAAA,GAAEE,EAAAA;AAAE,wBAAA,MAAM,CAAA;AAAA,sBAAC;AAAA,oBAAC,WAASO,EAAAA,CAAE,WAAA,KAAcH,EAAAA,IAAG,QAAA,KAAW,OAAOA,EAAAA,IAAG,IAAA,KAAOA,EAAAA,IAAGA,EAAAA,CAAE,aAAW,EAAA,IAAI,EAAA,CAAGA,EAAC,CAAA,KAAIG,GAAE,IAAA,EAAK;AAAC,sBAAA,CAAA,CAAET,EAAAA,EAAES,GAAE,OAAO,CAAA;AAAE,sBAAAP,EAAAA,GAAE,CAAA,CAAEO,EAAAA,EAAED,EAAAA,CAAE,KAAK,CAAA;AAAE,sBAAAN,EAAAA,CAAE,GAAA,GAAI,EAAA,CAAGF,EAAAA,EAAES,IAAED,EAAC,CAAA;AAAE,sBAAAN,GAAE,MAAA,GAAOF,EAAAA;AAAE,sBAAAA,EAAAA,GAAEE,EAAAA;AAAE,sBAAA,MAAM,CAAA;AAAA,oBAAC;AAAC,oBAAA,CAAA,CAAEF,IAAES,EAAC,CAAA;AAAE,oBAAA;AAAA,kBAAK,CAAA,MAAM,CAAA,CAAET,EAAAA,EAAES,EAAC,CAAA;AAAE,kBAAAA,KAAEA,EAAAA,CAAE,OAAA;AAAA,gBAAO;AAAC,gBAAAD,GAAE,IAAA,KAAO,EAAA,IAAIN,KAAE,EAAA,CAAGM,EAAAA,CAAE,MAAM,QAAA,EAASR,EAAAA,CAAE,MAAKK,EAAAA,EAAEG,EAAAA,CAAE,GAAG,CAAA,EAAEN,EAAAA,CAAE,SAAOF,EAAAA,EAAEA,EAAAA,GAAEE,OAAIG,EAAAA,GAAE,EAAA,CAAGG,EAAAA,CAAE,IAAA,EAAKA,GAAE,GAAA,EAAIA,EAAAA,CAAE,OAAM,IAAA,EAAKR,EAAAA,CAAE,MAAKK,EAAC,CAAA,EAAEA,GAAE,GAAA,GAAI,EAAA,CAAGL,IAAEE,EAAAA,EAAEM,EAAC,GAAEH,EAAAA,CAAE,MAAA,GAAOL,IAAEA,EAAAA,GAAEK,EAAAA,CAAAA;AAAA,cAAE;AAAC,cAAA,OAAO,EAAEL,EAAC,CAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA,CAAA,EAAE;AAAC,gBAAA,KAAIS,EAAAA,GAAED,EAAAA,CAAE,GAAA,EAAI,IAAA,KACzfN,EAAAA,IAAG;AAAC,kBAAA,IAAGA,GAAE,GAAA,KAAMO,EAAAA,EAAE,IAAG,CAAA,KAAIP,GAAE,GAAA,IAAKA,EAAAA,CAAE,SAAA,CAAU,aAAA,KAAgBM,GAAE,aAAA,IAAeN,EAAAA,CAAE,SAAA,CAAU,cAAA,KAAiBM,GAAE,cAAA,EAAe;AAAC,oBAAA,CAAA,CAAER,EAAAA,EAAEE,GAAE,OAAO,CAAA;AAAE,oBAAAA,KAAE,CAAA,CAAEA,EAAAA,EAAEM,EAAAA,CAAE,QAAA,IAAU,EAAE,CAAA;AAAE,oBAAAN,GAAE,MAAA,GAAOF,EAAAA;AAAE,oBAAAA,EAAAA,GAAEE,EAAAA;AAAE,oBAAA,MAAM,CAAA;AAAA,kBAAC,CAAA,MAAK;AAAC,oBAAA,CAAA,CAAEF,IAAEE,EAAC,CAAA;AAAE,oBAAA;AAAA,kBAAK;AAAA,uBAAM,CAAA,CAAEF,IAAEE,EAAC,CAAA;AAAE,kBAAAA,KAAEA,EAAAA,CAAE,OAAA;AAAA,gBAAO;AAAC,gBAAAA,EAAAA,GAAE,EAAA,CAAGM,EAAAA,EAAER,EAAAA,CAAE,MAAKK,EAAC,CAAA;AAAE,gBAAAH,GAAE,MAAA,GAAOF,EAAAA;AAAE,gBAAAA,EAAAA,GAAEE,EAAAA;AAAA,cAAC;AAAC,cAAA,OAAO,EAAEF,EAAC,CAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA,OAAOS,EAAAA,GAAED,EAAAA,CAAE,KAAA,EAAM,CAAA,CAAER,EAAAA,EAAEE,IAAEO,EAAAA,CAAED,EAAAA,CAAE,QAAQ,CAAA,EAAEH,EAAC,CAAA;AAAA;AAAE,UAAA,IAAG,EAAA,CAAGG,EAAC,CAAA,EAAE,OAAO,EAAER,EAAAA,EAAEE,EAAAA,EAAEM,IAAEH,EAAC,CAAA;AAAE,UAAA,IAAG,EAAA,CAAGG,EAAC,CAAA,EAAE,OAAO,EAAER,EAAAA,EAAEE,EAAAA,EAAEM,IAAEH,EAAC,CAAA;AAAE,UAAA,EAAA,CAAGL,IAAEQ,EAAC,CAAA;AAAA,QAAC;AAAC,QAAA,OAAM,QAAA,KAAW,OAAOA,EAAAA,IAAG,EAAA,KAAKA,EAAAA,IAAG,aAAW,OAAOA,EAAAA,IAAGA,EAAAA,GAAE,EAAA,GAAGA,EAAAA,EAAE,IAAA,KAAON,MAAG,CAAA,KAAIA,EAAAA,CAAE,GAAA,IAAK,CAAA,CAAEF,EAAAA,EAAEE,EAAAA,CAAE,OAAO,CAAA,EAAEA,EAAAA,GAAE,CAAA,CAAEA,EAAAA,EAAEM,EAAC,CAAA,EAAEN,GAAE,MAAA,GAAOF,EAAAA,EAAEA,EAAAA,GAAEE,EAAAA,KACnf,CAAA,CAAEF,EAAAA,EAAEE,EAAC,CAAA,EAAEA,EAAAA,GAAE,EAAA,CAAGM,EAAAA,EAAER,EAAAA,CAAE,IAAA,EAAKK,EAAC,CAAA,EAAEH,EAAAA,CAAE,MAAA,GAAOF,EAAAA,EAAEA,EAAAA,GAAEE,EAAAA,CAAAA,EAAG,EAAEF,EAAC,CAAA,IAAG,CAAA,CAAEA,EAAAA,EAAEE,EAAC,CAAA;AAAA,MAAC;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,GAAG,IAAE,CAAA;AAAZ,IAAA,IAAc,EAAA,GAAG,GAAG,KAAE,CAAA;AAAtB,IAAA,IAAwB,EAAA,GAAG,GAAG,IAAI,CAAA;AAAlC,IAAA,IAAoC,EAAA,GAAG,IAAA;AAAvC,IAAA,IAA4C,EAAA,GAAG,IAAA;AAA/C,IAAA,IAAoD,EAAA,GAAG,IAAA;AAAK,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,EAAA,GAAG,KAAG,EAAA,GAAG,IAAA;AAAA,IAAI;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAA,CAAG,OAAA;AAAQ,MAAA,CAAA,CAAE,EAAE,CAAA;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,OAAK,SAAO,CAAA,IAAG;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,CAAC,EAAE,UAAA,GAAW,CAAA,MAAK,KAAG,CAAA,CAAE,UAAA,IAAY,GAAE,IAAA,KAAO,CAAA,KAAI,EAAE,UAAA,IAAY,CAAA,CAAA,IAAI,SAAO,CAAA,IAAA,CAAI,CAAA,CAAE,aAAW,CAAA,MAAK,CAAA,KAAI,EAAE,UAAA,IAAY,CAAA,CAAA;AAAG,QAAA,IAAG,MAAI,CAAA,EAAE;AAAM,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,MAAM;AAAA,IAAC;AACnZ,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,GAAG,CAAA;AAAE,MAAA,EAAA,GAAG,EAAA,GAAG,IAAA;AAAK,MAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,MAAA,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,YAAA,KAAe,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,CAAA,CAAA,KAAK,EAAA,GAAG,IAAA,CAAA,EAAI,CAAA,CAAE,YAAA,GAAa,IAAA,CAAA;AAAA,IAAK;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,MAAA,IAAG,EAAA,KAAK,CAAA,EAAE,IAAG,CAAA,GAAE,EAAC,OAAA,EAAQ,CAAA,EAAE,aAAA,EAAc,CAAA,EAAE,IAAA,EAAK,IAAA,EAAI,EAAE,SAAO,EAAA,EAAG;AAAC,QAAA,IAAG,SAAO,EAAA,EAAG,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,EAAA,GAAG,CAAA;AAAE,QAAA,EAAA,CAAG,YAAA,GAAa,EAAC,KAAA,EAAM,CAAA,EAAE,cAAa,CAAA,EAAC;AAAA,MAAC,CAAA,MAAM,EAAA,GAAG,EAAA,CAAG,IAAA,GAAK,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,IAAA;AAAK,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAA,KAAO,KAAG,EAAA,GAAG,CAAC,CAAC,CAAA,GAAE,EAAA,CAAG,KAAK,CAAC,CAAA;AAAA,IAAC;AACvY,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,MAAA,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,IAAA,GAAK,CAAA,EAAE,EAAA,CAAG,CAAC,CAAA,KAAI,CAAA,CAAE,IAAA,GAAK,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA;AAAG,MAAA,CAAA,CAAE,WAAA,GAAY,CAAA;AAAE,MAAA,OAAO,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAA,KAAO,CAAA,KAAI,EAAE,KAAA,IAAO,CAAA,CAAA;AAAG,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,KAAI,IAAE,CAAA,CAAE,MAAA,EAAO,SAAO,CAAA,IAAG,CAAA,CAAE,cAAY,CAAA,EAAE,CAAA,GAAE,EAAE,SAAA,EAAU,IAAA,KAAO,MAAI,CAAA,CAAE,UAAA,IAAY,IAAG,CAAA,GAAE,CAAA,EAAE,IAAE,CAAA,CAAE,MAAA;AAAO,MAAA,OAAO,CAAA,KAAI,CAAA,CAAE,GAAA,GAAI,CAAA,CAAE,SAAA,GAAU,IAAA;AAAA,IAAI;AAAC,IAAA,IAAI,EAAA,GAAG,KAAA;AAAG,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,cAAY,EAAC,SAAA,EAAU,EAAE,aAAA,EAAc,eAAA,EAAgB,MAAK,cAAA,EAAe,IAAA,EAAK,QAAO,EAAC,OAAA,EAAQ,MAAK,WAAA,EAAY,IAAA,EAAK,OAAM,CAAA,EAAC,EAAE,SAAQ,IAAA,EAAI;AAAA,IAAC;AAC/e,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,MAAA,CAAA,CAAE,gBAAc,CAAA,KAAI,CAAA,CAAE,cAAY,EAAC,SAAA,EAAU,EAAE,SAAA,EAAU,eAAA,EAAgB,EAAE,eAAA,EAAgB,cAAA,EAAe,EAAE,cAAA,EAAe,MAAA,EAAO,EAAE,MAAA,EAAO,OAAA,EAAQ,EAAE,OAAA,EAAO,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAM,EAAC,SAAA,EAAU,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,OAAA,EAAQ,IAAA,EAAK,QAAA,EAAS,IAAA,EAAK,IAAA,EAAK,IAAA,EAAI;AAAA,IAAC;AACtR,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,MAAA,IAAG,IAAA,KAAO,GAAE,OAAO,IAAA;AAAK,MAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAO,MAAA,IAAG,CAAA,MAAK,IAAE,CAAA,CAAA,EAAG;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,QAAA,IAAA,KAAO,CAAA,GAAE,EAAE,IAAA,GAAK,CAAA,IAAG,EAAE,IAAA,GAAK,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA;AAAG,QAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAE,QAAA,OAAO,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,MAAC;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,MAAA,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,IAAA,GAAK,CAAA,EAAE,EAAA,CAAG,CAAC,CAAA,KAAI,CAAA,CAAE,IAAA,GAAK,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA;AAAG,MAAA,CAAA,CAAE,WAAA,GAAY,CAAA;AAAE,MAAA,OAAO,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,MAAA,IAAG,SAAO,CAAA,KAAI,CAAA,GAAE,EAAE,MAAA,EAAO,CAAA,MAAK,IAAE,OAAA,CAAA,CAAA,EAAU;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,QAAA,CAAA,IAAG,CAAA,CAAE,YAAA;AAAa,QAAA,CAAA,IAAG,CAAA;AAAE,QAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,QAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AACrZ,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,CAAE,WAAA,EAAY,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAG,SAAO,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,WAAA,EAAY,MAAI,CAAA,CAAA,EAAG;AAAC,QAAA,IAAI,CAAA,GAAE,MAAK,CAAA,GAAE,IAAA;AAAK,QAAA,CAAA,GAAE,CAAA,CAAE,eAAA;AAAgB,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,GAAE;AAAC,YAAA,IAAI,IAAE,EAAC,SAAA,EAAU,EAAE,SAAA,EAAU,IAAA,EAAK,EAAE,IAAA,EAAK,GAAA,EAAI,CAAA,CAAE,GAAA,EAAI,SAAQ,CAAA,CAAE,OAAA,EAAQ,UAAS,CAAA,CAAE,QAAA,EAAS,MAAK,IAAA,EAAI;AAAE,YAAA,IAAA,KAAO,IAAE,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,EAAE,IAAA,GAAK,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAA,UAAI,SAAO,IAAA,KAAO,CAAA;AAAG,UAAA,IAAA,KAAO,IAAE,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,EAAE,IAAA,GAAK,CAAA;AAAA,QAAC,CAAA,UAAQ,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAE,EAAC,SAAA,EAAU,CAAA,CAAE,SAAA,EAAU,eAAA,EAAgB,CAAA,EAAE,cAAA,EAAe,CAAA,EAAE,MAAA,EAAO,CAAA,CAAE,MAAA,EAAO,OAAA,EAAQ,EAAE,OAAA,EAAO;AAAE,QAAA,CAAA,CAAE,WAAA,GAAY,CAAA;AAAE,QAAA;AAAA,MAAM;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,cAAA;AAAe,MAAA,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,eAAA,GAAgB,CAAA,GAAE,EAAE,IAAA,GACnf,CAAA;AAAE,MAAA,CAAA,CAAE,cAAA,GAAe,CAAA;AAAA,IAAC;AACpB,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,MAAA,EAAA,GAAG,KAAA;AAAG,MAAA,IAAI,CAAA,GAAE,EAAE,eAAA,EAAgB,CAAA,GAAE,EAAE,cAAA,EAAe,CAAA,GAAE,EAAE,MAAA,CAAO,OAAA;AAAQ,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,CAAA,CAAE,OAAO,OAAA,GAAQ,IAAA;AAAK,QAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,QAAA,CAAA,CAAE,IAAA,GAAK,IAAA;AAAK,QAAA,IAAA,KAAO,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,CAAA,CAAE,IAAA,GAAK,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,IAAA,KAAO,MAAI,CAAA,GAAE,CAAA,CAAE,aAAY,CAAA,GAAE,CAAA,CAAE,gBAAe,CAAA,KAAI,CAAA,KAAI,IAAA,KAAO,CAAA,GAAE,EAAE,eAAA,GAAgB,CAAA,GAAE,EAAE,IAAA,GAAK,CAAA,EAAE,EAAE,cAAA,GAAe,CAAA,CAAA,CAAA;AAAA,MAAG;AAAC,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAE,IAAE,CAAA,GAAE,IAAA;AAAK,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,GAAE;AAAC,UAAA,IAAI,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,UAAA,IAAA,CAAI,CAAA,GAAE,OAAK,CAAA,EAAE;AAAC,YAAA,IAAA,KAAO,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,IAAA,GAAK;AAAA,cAAC,SAAA,EAAU,CAAA;AAAA,cAAE,IAAA,EAAK,CAAA;AAAA,cAAE,KAAI,CAAA,CAAE,GAAA;AAAA,cAAI,SAAQ,CAAA,CAAE,OAAA;AAAA,cAAQ,UAAS,CAAA,CAAE,QAAA;AAAA,cACvf,IAAA,EAAK;AAAA,aAAI,CAAA;AAAG,YAAA,CAAA,EAAE;AAAC,cAAA,IAAI,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA;AAAE,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA,QAAO,EAAE,GAAA;AAAI,gBAAC,KAAK,CAAA;AAAE,kBAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,kBAAA,IAAG,UAAA,KAAa,OAAO,CAAA,EAAE;AAAC,oBAAA,CAAA,GAAE,CAAA,CAAE,IAAA,CAAK,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,oBAAA,MAAM,CAAA;AAAA,kBAAC;AAAC,kBAAA,CAAA,GAAE,CAAA;AAAE,kBAAA,MAAM,CAAA;AAAA,gBAAE,KAAK,CAAA;AAAE,kBAAA,CAAA,CAAE,KAAA,GAAM,CAAA,CAAE,KAAA,GAAM,MAAA,GAAO,GAAA;AAAA,gBAAI,KAAK,CAAA;AAAE,kBAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,kBAAA,CAAA,GAAE,UAAA,KAAa,OAAO,CAAA,GAAE,CAAA,CAAE,KAAK,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,GAAE,CAAA;AAAE,kBAAA,IAAG,IAAA,KAAO,CAAA,IAAG,MAAA,KAAS,CAAA,EAAE,MAAM,CAAA;AAAE,kBAAA,CAAA,GAAE,CAAA,CAAE,EAAC,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,kBAAA,MAAM,CAAA;AAAA,gBAAE,KAAK,CAAA;AAAE,kBAAA,EAAA,GAAG,IAAA;AAAA;AAAE,YAAC;AAAC,YAAA,IAAA,KAAO,CAAA,CAAE,YAAU,CAAA,KAAI,CAAA,CAAE,SAAO,CAAA,CAAE,KAAA,IAAO,IAAG,CAAA,GAAE,CAAA,CAAE,SAAQ,IAAA,KAAO,CAAA,GAAE,EAAE,OAAA,GAAQ,CAAC,CAAC,CAAA,GAAE,CAAA,CAAE,KAAK,CAAC,CAAA,CAAA;AAAA,UAAE,CAAA,MAAM,CAAA,GAAE,EAAC,SAAA,EAAU,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,CAAE,GAAA,EAAI,OAAA,EAAQ,CAAA,CAAE,SAAQ,QAAA,EAAS,CAAA,CAAE,QAAA,EAAS,IAAA,EAAK,IAAA,EAAI,EAAE,IAAA,KAAO,CAAA,IAAG,CAAA,GAAE,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,IAAG,CAAA,GAAE,CAAA,CAAE,IAAA,GAAK,GAAE,CAAA,IAAG,CAAA;AACpf,UAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,UAAA,IAAG,IAAA,KAAO,GAAE,IAAG,CAAA,GAAE,EAAE,MAAA,CAAO,OAAA,EAAQ,SAAO,CAAA,EAAE;AAAA,eAAW,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,IAAA,GAAK,IAAA,EAAK,CAAA,CAAE,cAAA,GAAe,CAAA,EAAE,CAAA,CAAE,OAAO,OAAA,GAAQ,IAAA;AAAA,QAAI,CAAA,QAAO,CAAA;AAAG,QAAA,IAAA,KAAO,MAAI,CAAA,GAAE,CAAA,CAAA;AAAG,QAAA,CAAA,CAAE,SAAA,GAAU,CAAA;AAAE,QAAA,CAAA,CAAE,eAAA,GAAgB,CAAA;AAAE,QAAA,CAAA,CAAE,cAAA,GAAe,CAAA;AAAE,QAAA,CAAA,GAAE,EAAE,MAAA,CAAO,WAAA;AAAY,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,GAAE,CAAA;AAAE,UAAA;AAAG,YAAA,CAAA,IAAG,CAAA,CAAE,IAAA,EAAK,CAAA,GAAE,CAAA,CAAE,IAAA;AAAA,iBAAW,CAAA,KAAI,CAAA;AAAA,QAAE,CAAA,MAAM,IAAA,KAAO,CAAA,KAAI,CAAA,CAAE,OAAO,KAAA,GAAM,CAAA,CAAA;AAAG,QAAA,EAAA,IAAI,CAAA;AAAE,QAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,QAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAA,MAAC;AAAA,IAAC;AAC9V,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,CAAA,CAAE,OAAA,GAAQ,IAAA;AAAK,MAAA,IAAG,IAAA,KAAO,GAAE,KAAI,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA,CAAE,QAAO,CAAA,EAAA,EAAI;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,EAAE,IAAE,CAAA,CAAE,QAAA;AAAS,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,CAAE,QAAA,GAAS,IAAA;AAAK,UAAA,CAAA,GAAE,CAAA;AAAE,UAAA,IAAG,UAAA,KAAa,OAAO,CAAA,EAAE,MAAM,MAAM,CAAA,CAAE,GAAA,EAAI,CAAC,CAAC,CAAA;AAAE,UAAA,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,IAAI,KAAG,EAAC;AAAR,IAAA,IAAU,EAAA,GAAG,GAAG,EAAE,CAAA;AAAlB,IAAA,IAAoB,EAAA,GAAG,GAAG,EAAE,CAAA;AAA5B,IAAA,IAA8B,EAAA,GAAG,GAAG,EAAE,CAAA;AAAE,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,MAAI,EAAA,EAAG,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AACnS,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,IAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,IAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,IAAG,EAAE,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,CAAE,QAAA;AAAS,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,CAAA,GAAA,CAAG,IAAE,CAAA,CAAE,eAAA,IAAiB,EAAE,YAAA,GAAa,EAAA,CAAG,MAAK,EAAE,CAAA;AAAE,UAAA;AAAA,QAAM;AAAQ,UAAA,CAAA,GAAE,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,UAAA,GAAW,GAAE,CAAA,GAAE,CAAA,CAAE,YAAA,IAAc,IAAA,EAAK,IAAE,CAAA,CAAE,OAAA,EAAQ,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA;AAAE,MAAA,CAAA,CAAE,EAAE,CAAA;AAAE,MAAA,CAAA,CAAE,IAAG,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,CAAA,CAAE,EAAE,CAAA;AAAE,MAAA,CAAA,CAAE,EAAE,CAAA;AAAE,MAAA,CAAA,CAAE,EAAE,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,GAAG,OAAO,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,EAAA,CAAG,OAAO,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,IAAI,CAAA;AAAE,MAAA,CAAA,KAAI,MAAI,CAAA,CAAE,EAAA,EAAG,CAAC,CAAA,EAAE,CAAA,CAAE,IAAG,CAAC,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,YAAU,CAAA,KAAI,CAAA,CAAE,EAAE,CAAA,EAAE,EAAE,EAAE,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AACzZ,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG;AAAC,QAAA,IAAG,EAAA,KAAK,EAAE,GAAA,EAAI;AAAC,UAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,UAAA,IAAG,IAAA,KAAO,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,UAAA,EAAW,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,IAAA,IAAM,IAAA,KAAO,CAAA,CAAE,OAAM,OAAO,CAAA;AAAA,QAAC,WAAS,EAAA,KAAK,CAAA,CAAE,OAAK,MAAA,KAAS,CAAA,CAAE,cAAc,WAAA,EAAY;AAAC,UAAA,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,GAAA,CAAA,EAAK,OAAO,CAAA;AAAA,QAAC,CAAA,MAAA,IAAS,IAAA,KAAO,CAAA,CAAE,KAAA,EAAM;AAAC,UAAA,CAAA,CAAE,MAAM,MAAA,GAAO,CAAA;AAAE,UAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,UAAA;AAAA,QAAQ;AAAC,QAAA,IAAG,MAAI,CAAA,EAAE;AAAM,QAAA,OAAK,IAAA,KAAO,EAAE,OAAA,IAAS;AAAC,UAAA,IAAG,SAAO,CAAA,CAAE,MAAA,IAAQ,CAAA,CAAE,MAAA,KAAS,GAAE,OAAO,IAAA;AAAK,UAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,QAAM;AAAC,QAAA,CAAA,CAAE,OAAA,CAAQ,SAAO,CAAA,CAAE,MAAA;AAAO,QAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,MAAO;AAAC,MAAA,OAAO,IAAA;AAAA,IAAI;AAAC,IAAA,IAAI,KAAG,EAAC;AACtc,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,KAAA,IAAQ,CAAA,GAAE,GAAE,CAAA,GAAE,EAAA,CAAG,QAAO,CAAA,EAAA,EAAI,EAAA,CAAG,CAAC,CAAA,CAAE,6BAAA,GAA8B,IAAA;AAAK,MAAA,EAAA,CAAG,MAAA,GAAO,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,KAAG,EAAA,CAAG,sBAAA;AAAV,IAAA,IAAiC,KAAG,EAAA,CAAG,uBAAA;AAAvC,IAAA,IAA+D,EAAA,GAAG,CAAA;AAAlE,IAAA,IAAoE,CAAA,GAAE,IAAA;AAAtE,IAAA,IAA2E,CAAA,GAAE,IAAA;AAA7E,IAAA,IAAkF,CAAA,GAAE,IAAA;AAApF,IAAA,IAAyF,EAAA,GAAG,KAAA;AAA5F,IAAA,IAA+F,EAAA,GAAG,KAAA;AAAlG,IAAA,IAAqG,EAAA,GAAG,CAAA;AAAxG,IAAA,IAA0G,EAAA,GAAG,CAAA;AAAE,IAAA,SAAS,CAAA,GAAG;AAAC,MAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,IAAA,KAAO,GAAE,OAAM,KAAA;AAAG,MAAA,KAAA,IAAQ,IAAE,CAAA,EAAE,CAAA,GAAE,EAAE,MAAA,IAAQ,CAAA,GAAE,EAAE,MAAA,EAAO,CAAA,EAAA,MAAO,CAAC,EAAA,CAAG,EAAE,CAAC,CAAA,EAAE,EAAE,CAAC,CAAC,GAAE,OAAM,KAAA;AAAG,MAAA,OAAM,IAAA;AAAA,IAAE;AAChW,IAAA,SAAS,GAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,GAAG,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,IAAA;AAAK,MAAA,CAAA,CAAE,WAAA,GAAY,IAAA;AAAK,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,EAAA,CAAG,UAAQ,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,gBAAc,EAAA,GAAG,EAAA;AAAG,MAAA,CAAA,GAAE,CAAA,CAAE,GAAE,CAAC,CAAA;AAAE,MAAA,IAAG,EAAA,EAAG;AAAC,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,GAAE;AAAC,UAAA,EAAA,GAAG,KAAA;AAAG,UAAA,EAAA,GAAG,CAAA;AAAE,UAAA,IAAG,MAAI,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,UAAA,CAAA,IAAG,CAAA;AAAE,UAAA,CAAA,GAAE,CAAA,GAAE,IAAA;AAAK,UAAA,CAAA,CAAE,WAAA,GAAY,IAAA;AAAK,UAAA,EAAA,CAAG,OAAA,GAAQ,EAAA;AAAG,UAAA,CAAA,GAAE,CAAA,CAAE,GAAE,CAAC,CAAA;AAAA,QAAC,CAAA,QAAO,EAAA;AAAA,MAAG;AAAC,MAAA,EAAA,CAAG,OAAA,GAAQ,EAAA;AAAG,MAAA,CAAA,GAAE,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,IAAA;AAAK,MAAA,EAAA,GAAG,CAAA;AAAE,MAAA,CAAA,GAAE,IAAE,CAAA,GAAE,IAAA;AAAK,MAAA,EAAA,GAAG,KAAA;AAAG,MAAA,IAAG,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,IAAI,IAAE,CAAA,KAAI,EAAA;AAAG,MAAA,EAAA,GAAG,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAC/Y,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,IAAI,CAAA,GAAE,EAAC,aAAA,EAAc,IAAA,EAAK,SAAA,EAAU,IAAA,EAAK,SAAA,EAAU,IAAA,EAAK,KAAA,EAAM,IAAA,EAAK,IAAA,EAAK,IAAA,EAAI;AAAE,MAAA,IAAA,KAAO,IAAE,CAAA,CAAE,aAAA,GAAc,IAAE,CAAA,GAAE,CAAA,GAAE,EAAE,IAAA,GAAK,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,aAAA,GAAc,IAAA;AAAA,MAAI,CAAA,UAAQ,CAAA,CAAE,IAAA;AAAK,MAAA,IAAI,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,gBAAc,CAAA,CAAE,IAAA;AAAK,MAAA,IAAG,IAAA,KAAO,CAAA,EAAE,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA;AAAA,WAAM;AAAC,QAAA,IAAG,SAAO,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAE,EAAC,aAAA,EAAc,CAAA,CAAE,aAAA,EAAc,WAAU,CAAA,CAAE,SAAA,EAAU,SAAA,EAAU,CAAA,CAAE,SAAA,EAAU,KAAA,EAAM,CAAA,CAAE,KAAA,EAAM,MAAK,IAAA,EAAI;AAAE,QAAA,IAAA,KAAO,IAAE,CAAA,CAAE,aAAA,GAAc,IAAE,CAAA,GAAE,CAAA,GAAE,EAAE,IAAA,GAAK,CAAA;AAAA,MAAC;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AACje,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAM,UAAA,KAAa,OAAO,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,GAAE,CAAA;AAAA,IAAC;AACnD,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA,EAAG,EAAE,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,MAAA,IAAG,SAAO,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,mBAAA,GAAoB,CAAA;AAAE,MAAA,IAAI,IAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,SAAA,EAAU,IAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,UAAA,CAAA,CAAE,OAAK,CAAA,CAAE,IAAA;AAAK,UAAA,CAAA,CAAE,IAAA,GAAK,CAAA;AAAA,QAAC;AAAC,QAAA,CAAA,CAAE,YAAU,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,CAAE,OAAA,GAAQ,IAAA;AAAA,MAAI;AAAC,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,QAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,QAAA,IAAI,CAAA,GAAE,CAAA,GAAE,IAAA,EAAK,CAAA,GAAE,MAAK,CAAA,GAAE,CAAA;AAAE,QAAA,GAAE;AAAC,UAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,UAAA,IAAA,CAAI,EAAA,GAAG,CAAA,MAAK,CAAA,EAAE,IAAA,KAAO,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,IAAA,GAAK,EAAC,IAAA,EAAK,CAAA,EAAE,MAAA,EAAO,EAAE,MAAA,EAAO,aAAA,EAAc,CAAA,CAAE,aAAA,EAAc,UAAA,EAAW,CAAA,CAAE,UAAA,EAAW,IAAA,EAAK,MAAI,CAAA,EAAG,CAAA,GAAE,CAAA,CAAE,aAAA,GAAc,CAAA,CAAE,UAAA,GAAW,CAAA,CAAE,CAAA,EAAE,EAAE,MAAM,CAAA;AAAA,eAAM;AAAC,YAAA,IAAI,CAAA,GAAE;AAAA,cAAC,IAAA,EAAK,CAAA;AAAA,cAAE,QAAO,CAAA,CAAE,MAAA;AAAA,cAAO,eAAc,CAAA,CAAE,aAAA;AAAA,cACngB,YAAW,CAAA,CAAE,UAAA;AAAA,cAAW,IAAA,EAAK;AAAA,aAAI;AAAE,YAAA,IAAA,KAAO,CAAA,IAAG,IAAE,CAAA,GAAE,CAAA,EAAE,IAAE,CAAA,IAAG,CAAA,GAAE,EAAE,IAAA,GAAK,CAAA;AAAE,YAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,YAAA,EAAA,IAAI,CAAA;AAAA,UAAC;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAA,QAAI,CAAA,QAAO,IAAA,KAAO,CAAA,IAAG,CAAA,KAAI,CAAA;AAAG,QAAA,IAAA,KAAO,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,CAAA,CAAE,IAAA,GAAK,CAAA;AAAE,QAAA,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,aAAa,CAAA,KAAI,EAAA,GAAG,IAAA,CAAA;AAAI,QAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,QAAA,CAAA,CAAE,SAAA,GAAU,CAAA;AAAE,QAAA,CAAA,CAAE,SAAA,GAAU,CAAA;AAAE,QAAA,CAAA,CAAE,iBAAA,GAAkB,CAAA;AAAA,MAAC;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA;AAAG,UAAA,CAAA,GAAE,CAAA,CAAE,MAAK,CAAA,CAAE,KAAA,IAAO,GAAE,EAAA,IAAI,CAAA,EAAE,IAAE,CAAA,CAAE,IAAA;AAAA,eAAW,CAAA,KAAI,CAAA;AAAA,MAAE,CAAA,MAAM,IAAA,KAAO,CAAA,KAAI,CAAA,CAAE,KAAA,GAAM,CAAA,CAAA;AAAG,MAAA,OAAM,CAAC,CAAA,CAAE,aAAA,EAAc,CAAA,CAAE,QAAQ,CAAA;AAAA,IAAC;AAC9X,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA,EAAG,EAAE,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,MAAA,IAAG,SAAO,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,mBAAA,GAAoB,CAAA;AAAE,MAAA,IAAI,IAAE,CAAA,CAAE,QAAA,EAAS,IAAE,CAAA,CAAE,OAAA,EAAQ,IAAE,CAAA,CAAE,aAAA;AAAc,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,CAAA,CAAE,OAAA,GAAQ,IAAA;AAAK,QAAA,IAAI,CAAA,GAAE,IAAE,CAAA,CAAE,IAAA;AAAK,QAAA;AAAG,UAAA,CAAA,GAAE,EAAE,CAAA,EAAE,CAAA,CAAE,MAAM,CAAA,EAAE,IAAE,CAAA,CAAE,IAAA;AAAA,eAAW,CAAA,KAAI,CAAA;AAAG,QAAA,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,aAAa,CAAA,KAAI,EAAA,GAAG,IAAA,CAAA;AAAI,QAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,QAAA,IAAA,KAAO,CAAA,CAAE,SAAA,KAAY,CAAA,CAAE,SAAA,GAAU,CAAA,CAAA;AAAG,QAAA,CAAA,CAAE,iBAAA,GAAkB,CAAA;AAAA,MAAC;AAAC,MAAA,OAAM,CAAC,GAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAA,IAAC;AACpW,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,EAAG,EAAE,CAAA,GAAE,CAAA,EAAE,EAAE,CAAA,GAAE,CAAC,EAAA,CAAG,CAAA,CAAE,eAAc,CAAC,CAAA;AAAE,MAAA,CAAA,KAAI,CAAA,CAAE,aAAA,GAAc,CAAA,EAAE,EAAA,GAAG,IAAA,CAAA;AAAI,MAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,MAAA,EAAA,CAAG,EAAA,CAAG,KAAK,IAAA,EAAK,CAAA,EAAE,GAAE,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAA;AAAE,MAAA,IAAG,CAAA,CAAE,gBAAc,CAAA,IAAG,CAAA,IAAG,SAAO,CAAA,IAAG,CAAA,CAAE,aAAA,CAAc,GAAA,GAAI,CAAA,EAAE;AAAC,QAAA,CAAA,CAAE,KAAA,IAAO,IAAA;AAAK,QAAA,EAAA,CAAG,CAAA,EAAE,EAAA,CAAG,IAAA,CAAK,IAAA,EAAK,CAAA,EAAE,GAAE,CAAA,EAAE,CAAC,CAAA,EAAE,MAAA,EAAO,IAAI,CAAA;AAAE,QAAA,IAAG,SAAO,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,CAAA,MAAK,EAAA,GAAG,EAAA,CAAA,IAAK,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,MAAC;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,KAAA,IAAO,KAAA;AAAM,MAAA,CAAA,GAAE,EAAC,WAAA,EAAY,CAAA,EAAE,KAAA,EAAM,CAAA,EAAC;AAAE,MAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,MAAA,IAAA,KAAO,CAAA,IAAG,CAAA,GAAE,EAAC,UAAA,EAAW,IAAA,EAAK,MAAA,EAAO,IAAA,EAAI,EAAE,CAAA,CAAE,WAAA,GAAY,CAAA,EAAE,CAAA,CAAE,MAAA,GAAO,CAAC,CAAC,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,MAAA,GAAO,CAAC,CAAC,CAAA,GAAE,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,CAAA;AAAA,IAAE;AAClf,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,CAAA,CAAE,WAAA,GAAY,CAAA;AAAE,MAAA,EAAA,CAAG,CAAC,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,OAAO,EAAE,WAAU;AAAC,QAAA,EAAA,CAAG,CAAC,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA;AAAA,MAAC,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,MAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,MAAA,IAAG;AAAC,QAAA,IAAI,IAAE,CAAA,EAAE;AAAE,QAAA,OAAM,CAAC,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAA,MAAC,SAAO,CAAA,EAAE;AAAC,QAAA,OAAM,IAAA;AAAA,MAAE;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,GAAE,EAAE,CAAA;AAAA,IAAC;AAClQ,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAA,EAAG;AAAE,MAAA,UAAA,KAAa,OAAO,CAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA;AAAG,MAAA,CAAA,CAAE,aAAA,GAAc,EAAE,SAAA,GAAU,CAAA;AAAE,MAAA,CAAA,GAAE,EAAC,OAAA,EAAQ,IAAA,EAAK,WAAA,EAAY,IAAA,EAAK,KAAA,EAAM,CAAA,EAAE,QAAA,EAAS,IAAA,EAAK,mBAAA,EAAoB,EAAA,EAAG,iBAAA,EAAkB,CAAA,EAAC;AAAE,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,CAAA,GAAE,EAAE,QAAA,GAAS,EAAA,CAAG,IAAA,CAAK,IAAA,EAAK,GAAE,CAAC,CAAA;AAAE,MAAA,OAAM,CAAC,CAAA,CAAE,aAAA,EAAc,CAAC,CAAA;AAAA,IAAC;AAC5P,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAC,GAAA,EAAI,CAAA,EAAE,MAAA,EAAO,CAAA,EAAE,SAAQ,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,IAAA,EAAI;AAAE,MAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,MAAA,IAAA,KAAO,KAAG,CAAA,GAAE,EAAC,UAAA,EAAW,IAAA,EAAK,QAAO,IAAA,EAAI,EAAE,CAAA,CAAE,WAAA,GAAY,GAAE,CAAA,CAAE,UAAA,GAAW,CAAA,CAAE,IAAA,GAAK,MAAI,CAAA,GAAE,CAAA,CAAE,UAAA,EAAW,IAAA,KAAO,IAAE,CAAA,CAAE,UAAA,GAAW,CAAA,CAAE,IAAA,GAAK,KAAG,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,OAAK,CAAA,EAAE,CAAA,CAAE,IAAA,GAAK,CAAA,EAAE,EAAE,UAAA,GAAW,CAAA,CAAA,CAAA;AAAI,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,OAAO,IAAG,CAAE,aAAA;AAAA,IAAa;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAA,EAAG;AAAE,MAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,GAAG,CAAA,GAAE,CAAA,EAAE,GAAE,MAAA,EAAO,MAAA,KAAS,CAAA,GAAE,IAAA,GAAK,CAAC,CAAA;AAAA,IAAC;AAC9Y,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAA,EAAG;AAAE,MAAA,CAAA,GAAE,MAAA,KAAS,IAAE,IAAA,GAAK,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,MAAA;AAAO,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,QAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,QAAA,IAAG,SAAO,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,IAAI,CAAA,EAAE;AAAC,UAAA,CAAA,CAAE,aAAA,GAAc,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM;AAAA,MAAC;AAAC,MAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,MAAA,CAAA,CAAE,gBAAc,EAAA,CAAG,CAAA,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAO,EAAA,CAAG,OAAA,EAAQ,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAO,EAAA,CAAG,IAAA,EAAK,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC;AAChX,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,UAAA,KAAa,OAAO,CAAA,EAAE,OAAO,CAAA,GAAE,GAAE,EAAE,CAAA,CAAE,CAAC,CAAA,EAAE,WAAU;AAAC,QAAA,CAAA,CAAE,IAAI,CAAA;AAAA,MAAC,CAAA;AAAE,MAAA,IAAG,IAAA,KAAO,CAAA,IAAG,MAAA,KAAS,CAAA,EAAE,OAAO,CAAA,GAAE,CAAA,EAAE,EAAE,CAAA,CAAE,OAAA,GAAQ,CAAA,EAAE,WAAU;AAAC,QAAA,CAAA,CAAE,OAAA,GAAQ,IAAA;AAAA,MAAI,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,IAAA,KAAO,KAAG,MAAA,KAAS,CAAA,GAAE,EAAE,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,GAAE,IAAA;AAAK,MAAA,OAAO,EAAA,CAAG,GAAE,CAAA,EAAE,EAAA,CAAG,KAAK,IAAA,EAAK,CAAA,EAAE,CAAC,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAA,EAAG;AAAE,MAAA,CAAA,GAAE,MAAA,KAAS,IAAE,IAAA,GAAK,CAAA;AAAE,MAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,MAAA,IAAG,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,CAAC,CAAC,CAAA,EAAE,OAAO,CAAA,CAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,CAAC,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAC7Z,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAA,EAAG;AAAE,MAAA,CAAA,GAAE,MAAA,KAAS,IAAE,IAAA,GAAK,CAAA;AAAE,MAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,MAAA,IAAG,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,CAAC,CAAC,CAAA,EAAE,OAAO,CAAA,CAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,EAAE;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,CAAC,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,MAAK,EAAA,GAAG,EAAA,CAAA,EAAI,OAAO,CAAA,CAAE,SAAA,KAAY,CAAA,CAAE,SAAA,GAAU,KAAA,EAAG,EAAA,GAAG,IAAA,CAAA,EAAI,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,KAAI,CAAA,GAAE,EAAA,EAAG,EAAE,CAAA,CAAE,KAAA,IAAO,CAAA,EAAE,EAAA,IAAI,CAAA,EAAE,CAAA,CAAE,SAAA,GAAU,IAAA,CAAA;AAAI,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,KAAI,CAAA,IAAG,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,CAAE,IAAE,CAAA;AAAE,MAAA,IAAI,IAAE,EAAA,CAAG,UAAA;AAAW,MAAA,EAAA,CAAG,aAAW,EAAC;AAAE,MAAA,IAAG;AAAC,QAAA,CAAA,CAAE,KAAE,GAAE,CAAA,EAAE;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,CAAA,GAAE,CAAA,EAAE,GAAG,UAAA,GAAW,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,OAAO,IAAG,CAAE,aAAA;AAAA,IAAa;AAC1d,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,EAAC,IAAA,EAAK,CAAA,EAAE,MAAA,EAAO,CAAA,EAAE,eAAc,KAAA,EAAG,UAAA,EAAW,IAAA,EAAK,IAAA,EAAK,IAAA,EAAI;AAAE,MAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,WAAA,IAAU,CAAA,GAAE,GAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA,EAAE,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,EAAE;AAAE,QAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,QAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAC/K,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,IAAE,EAAC,IAAA,EAAK,CAAA,EAAE,MAAA,EAAO,GAAE,aAAA,EAAc,KAAA,EAAG,UAAA,EAAW,IAAA,EAAK,MAAK,IAAA,EAAI;AAAE,MAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,WAAM;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,IAAG,CAAA,KAAI,CAAA,CAAE,KAAA,KAAQ,IAAA,KAAO,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,KAAA,CAAA,KAAS,CAAA,GAAE,CAAA,CAAE,mBAAA,EAAoB,IAAA,KAAO,IAAG,IAAG;AAAC,UAAA,IAAI,IAAE,CAAA,CAAE,iBAAA,EAAkB,CAAA,GAAE,CAAA,CAAE,GAAE,CAAC,CAAA;AAAE,UAAA,CAAA,CAAE,aAAA,GAAc,IAAA;AAAG,UAAA,CAAA,CAAE,UAAA,GAAW,CAAA;AAAE,UAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE;AAAC,YAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,YAAA,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,IAAA,GAAK,CAAA,EAAE,EAAA,CAAG,CAAC,CAAA,KAAI,CAAA,CAAE,IAAA,GAAK,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA;AAAG,YAAA,CAAA,CAAE,WAAA,GAAY,CAAA;AAAE,YAAA;AAAA,UAAM;AAAA,QAAC,SAAO,CAAA,EAAE;AAAA,QAAC,CAAA,SAAC;AAAA,QAAQ;AAAC,QAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,QAAA,IAAA,KAAO,CAAA,KAAI,CAAA,GAAE,CAAA,EAAE,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA,CAAA;AAAA,MAAE;AAAA,IAAC;AAC/c,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,OAAO,CAAA,KAAI,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,CAAA,KAAI,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,GAAG,EAAA,GAAG,IAAA;AAAG,MAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,IAAA,KAAO,CAAA,GAAE,EAAE,IAAA,GAAK,CAAA,IAAG,EAAE,IAAA,GAAK,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA;AAAG,MAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,MAAK,IAAE,OAAA,CAAA,EAAS;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,QAAA,CAAA,IAAG,CAAA,CAAE,YAAA;AAAa,QAAA,CAAA,IAAG,CAAA;AAAE,QAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,QAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAC9P,IAAA,IAAI,KAAG,EAAC,WAAA,EAAY,EAAA,EAAG,WAAA,EAAY,GAAE,UAAA,EAAW,CAAA,EAAE,SAAA,EAAU,CAAA,EAAE,qBAAoB,CAAA,EAAE,kBAAA,EAAmB,CAAA,EAAE,eAAA,EAAgB,GAAE,OAAA,EAAQ,CAAA,EAAE,UAAA,EAAW,CAAA,EAAE,QAAO,CAAA,EAAE,QAAA,EAAS,CAAA,EAAE,aAAA,EAAc,GAAE,gBAAA,EAAiB,CAAA,EAAE,aAAA,EAAc,CAAA,EAAE,kBAAiB,CAAA,EAAE,oBAAA,EAAqB,GAAE,KAAA,EAAM,CAAA,EAAE,0BAAyB,KAAA,EAAE;AAAtS,IAAA,IAAwS,KAAG,EAAC,WAAA,EAAY,IAAG,WAAA,EAAY,SAAS,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,GAAK,aAAA,GAAc,CAAC,GAAE,MAAA,KAAS,CAAA,GAAE,OAAK,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC,CAAA,EAAE,YAAW,EAAA,EAAG,SAAA,EAAU,IAAG,mBAAA,EAAoB,SAAS,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,IAAA,KAAO,KAAG,MAAA,KAAS,CAAA,GAAE,EAAE,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,GAAE,IAAA;AAAK,MAAA,OAAO,EAAA;AAAA,QAAG,OAAA;AAAA,QAC3f,CAAA;AAAA,QAAE,EAAA,CAAG,IAAA,CAAK,IAAA,EAAK,CAAA,EAAE,CAAC,CAAA;AAAA,QAAE;AAAA,OAAC;AAAA,IAAC,CAAA,EAAE,eAAA,EAAgB,SAAS,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,OAAO,EAAA,CAAG,OAAA,EAAQ,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC,CAAA,EAAE,kBAAA,EAAmB,SAAS,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC,CAAA,EAAE,OAAA,EAAQ,SAAS,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAA,EAAG;AAAE,MAAA,CAAA,GAAE,MAAA,KAAS,IAAE,IAAA,GAAK,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,EAAE;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,CAAC,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC,CAAA,EAAE,UAAA,EAAW,SAAS,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAA,EAAG;AAAE,MAAA,CAAA,GAAE,MAAA,KAAS,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,EAAE,SAAA,GAAU,CAAA;AAAE,MAAA,CAAA,GAAE,EAAC,OAAA,EAAQ,IAAA,EAAK,WAAA,EAAY,IAAA,EAAK,KAAA,EAAM,CAAA,EAAE,QAAA,EAAS,IAAA,EAAK,mBAAA,EAAoB,CAAA,EAAE,iBAAA,EAAkB,CAAA,EAAC;AAAE,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,CAAA,GAAE,EAAE,QAAA,GAAS,EAAA,CAAG,IAAA,CAAK,IAAA,EAAK,GAAE,CAAC,CAAA;AAAE,MAAA,OAAM,CAAC,CAAA,CAAE,aAAA,EAAc,CAAC,CAAA;AAAA,IAAC,CAAA,EAAE,MAAA,EAAO,SAAS,CAAA,EAAE;AAAC,MAAA,IAAI,IACrf,EAAA,EAAG;AAAE,MAAA,CAAA,GAAE,EAAC,SAAQ,CAAA,EAAC;AAAE,MAAA,OAAO,EAAE,aAAA,GAAc,CAAA;AAAA,IAAC,GAAE,QAAA,EAAS,EAAA,EAAG,eAAc,EAAA,EAAG,gBAAA,EAAiB,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,EAAA,GAAK,aAAA,GAAc,CAAA;AAAA,IAAC,CAAA,EAAE,eAAc,WAAU;AAAC,MAAA,IAAI,IAAE,EAAA,CAAG,KAAE,CAAA,EAAE,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,CAAG,IAAA,CAAK,IAAA,EAAK,CAAA,CAAE,CAAC,CAAC,CAAA;AAAE,MAAA,EAAA,GAAK,aAAA,GAAc,CAAA;AAAE,MAAA,OAAM,CAAC,GAAE,CAAC,CAAA;AAAA,IAAC,CAAA,EAAE,kBAAiB,WAAU;AAAA,IAAC,CAAA,EAAE,oBAAA,EAAqB,SAAS,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,EAAG;AAAE,MAAA,IAAG,CAAA,EAAE;AAAC,QAAA,IAAG,WAAS,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA,EAAE;AAAA,MAAC,CAAA,MAAK;AAAC,QAAA,CAAA,GAAE,CAAA,EAAE;AAAE,QAAA,IAAG,SAAO,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,CAAA,MAAK,EAAA,GAAG,EAAA,CAAA,IAAK,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,MAAC;AAAC,MAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,EAAC,KAAA,EAAM,CAAA,EAAE,aAAY,CAAA,EAAC;AAAE,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,EAAA,CAAG,EAAA,CAAG,IAAA;AAAA,QAAK,IAAA;AAAA,QAAK,CAAA;AAAA,QACpf,CAAA;AAAA,QAAE;AAAA,OAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,IAAO,IAAA;AAAK,MAAA,EAAA,CAAG,CAAA,EAAE,EAAA,CAAG,IAAA,CAAK,IAAA,EAAK,CAAA,EAAE,GAAE,CAAA,EAAE,CAAC,CAAA,EAAE,MAAA,EAAO,IAAI,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC,CAAA,EAAE,OAAM,WAAU;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA,EAAG,EAAE,CAAA,GAAE,CAAA,CAAE,gBAAA;AAAiB,MAAA,IAAG,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,EAAA;AAAG,QAAA,IAAI,CAAA,GAAE,EAAA;AAAG,QAAA,CAAA,GAAA,CAAG,CAAA,GAAE,EAAE,CAAA,IAAG,EAAA,GAAG,EAAA,CAAG,CAAC,CAAA,GAAE,CAAA,CAAA,EAAI,QAAA,CAAS,EAAE,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAE,GAAA,GAAI,IAAE,GAAA,GAAI,CAAA;AAAE,QAAA,CAAA,GAAE,EAAA,EAAA;AAAK,QAAA,CAAA,GAAE,CAAA,KAAI,CAAA,IAAG,GAAA,GAAI,CAAA,CAAE,SAAS,EAAE,CAAA,CAAA;AAAG,QAAA,CAAA,IAAG,GAAA;AAAA,MAAG,CAAA,MAAM,CAAA,GAAE,EAAA,EAAA,EAAK,CAAA,GAAE,GAAA,GAAI,IAAE,GAAA,GAAI,CAAA,CAAE,QAAA,CAAS,EAAE,CAAA,GAAE,GAAA;AAAI,MAAA,OAAO,EAAE,aAAA,GAAc,CAAA;AAAA,IAAC,CAAA,EAAE,0BAAyB,KAAA,EAAE;AAHlV,IAAA,IAGoV,EAAA,GAAG;AAAA,MAAC,WAAA,EAAY,EAAA;AAAA,MAAG,WAAA,EAAY,EAAA;AAAA,MAAG,UAAA,EAAW,EAAA;AAAA,MAAG,SAAA,EAAU,EAAA;AAAA,MAAG,mBAAA,EAAoB,EAAA;AAAA,MAAG,kBAAA,EAAmB,EAAA;AAAA,MAAG,eAAA,EAAgB,EAAA;AAAA,MAAG,OAAA,EAAQ,EAAA;AAAA,MAAG,UAAA,EAAW,EAAA;AAAA,MAAG,MAAA,EAAO,EAAA;AAAA,MAAG,UAAS,WAAU;AAAC,QAAA,OAAO,GAAG,EAAE,CAAA;AAAA,MAAC,CAAA;AAAA,MACrhB,aAAA,EAAc,EAAA;AAAA,MAAG,gBAAA,EAAiB,SAAS,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,EAAA,EAAG;AAAE,QAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,aAAA,EAAc,CAAC,CAAA;AAAA,MAAC,CAAA;AAAA,MAAE,eAAc,WAAU;AAAC,QAAA,IAAI,CAAA,GAAE,GAAG,EAAE,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,GAAE,IAAG,CAAE,aAAA;AAAc,QAAA,OAAM,CAAC,GAAE,CAAC,CAAA;AAAA,MAAC,CAAA;AAAA,MAAE,gBAAA,EAAiB,EAAA;AAAA,MAAG,oBAAA,EAAqB,EAAA;AAAA,MAAG,KAAA,EAAM,EAAA;AAAA,MAAG,wBAAA,EAAyB;AAAA,KAAE;AAJpP,IAAA,IAIsP,EAAA,GAAG,EAAC,WAAA,EAAY,EAAA,EAAG,aAAY,EAAA,EAAG,UAAA,EAAW,EAAA,EAAG,SAAA,EAAU,EAAA,EAAG,mBAAA,EAAoB,IAAG,kBAAA,EAAmB,EAAA,EAAG,eAAA,EAAgB,EAAA,EAAG,OAAA,EAAQ,EAAA,EAAG,YAAW,EAAA,EAAG,MAAA,EAAO,EAAA,EAAG,QAAA,EAAS,WAAU;AAAC,MAAA,OAAO,GAAG,EAAE,CAAA;AAAA,IAAC,CAAA,EAAE,aAAA,EAAc,EAAA,EAAG,gBAAA,EAAiB,SAAS,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,EAAA,EAAG;AAAE,MAAA,OAAO,IAAA,KACzf,IAAE,CAAA,CAAE,aAAA,GAAc,IAAE,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,aAAA,EAAc,CAAC,CAAA;AAAA,IAAC,CAAA,EAAE,eAAc,WAAU;AAAC,MAAA,IAAI,CAAA,GAAE,GAAG,EAAE,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,GAAE,IAAG,CAAE,aAAA;AAAc,MAAA,OAAM,CAAC,GAAE,CAAC,CAAA;AAAA,IAAC,CAAA,EAAE,kBAAiB,EAAA,EAAG,oBAAA,EAAqB,IAAG,KAAA,EAAM,EAAA,EAAG,0BAAyB,KAAA,EAAE;AAAE,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,IAAG,EAAE,YAAA,EAAa;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,EAAC,EAAE,CAAC,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,QAAA,KAAA,IAAQ,CAAA,IAAK,CAAA,EAAE,MAAA,KAAS,CAAA,CAAE,CAAC,MAAI,CAAA,CAAE,CAAC,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,CAAA;AAAG,QAAA,OAAO,CAAA;AAAA,MAAC;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,MAAA,CAAA,GAAE,CAAA,CAAE,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,IAAA,KAAO,KAAG,MAAA,KAAS,CAAA,GAAE,IAAE,CAAA,CAAE,EAAC,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,MAAA,CAAA,KAAI,CAAA,CAAE,KAAA,KAAQ,CAAA,CAAE,WAAA,CAAY,SAAA,GAAU,CAAA,CAAA;AAAA,IAAE;AACrd,IAAA,IAAI,EAAA,GAAG,EAAC,SAAA,EAAU,SAAS,CAAA,EAAE;AAAC,MAAA,OAAA,CAAO,IAAE,CAAA,CAAE,eAAA,IAAiB,EAAA,CAAG,CAAC,MAAI,CAAA,GAAE,KAAA;AAAA,IAAE,CAAA,EAAE,eAAA,EAAgB,SAAS,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,eAAA;AAAgB,MAAA,IAAI,CAAA,GAAE,CAAA,EAAE,EAAE,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAE,MAAA,MAAA,KAAS,CAAA,IAAG,IAAA,KAAO,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,CAAA,CAAA;AAAG,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,IAAA,KAAO,CAAA,KAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,CAAA;AAAA,IAAE,CAAA,EAAE,mBAAA,EAAoB,SAAS,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,eAAA;AAAgB,MAAA,IAAI,CAAA,GAAE,CAAA,EAAE,EAAE,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,GAAA,GAAI,CAAA;AAAE,MAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAE,MAAA,MAAA,KAAS,CAAA,IAAG,IAAA,KAAO,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,CAAA,CAAA;AAAG,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,IAAA,KAAO,CAAA,KAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,CAAA;AAAA,IAAE,CAAA,EAAE,kBAAA,EAAmB,SAAS,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,eAAA;AAAgB,MAAA,IAAI,CAAA,GAAE,CAAA,EAAE,EAAE,CAAA,GACnf,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,GAAA,GAAI,CAAA;AAAE,MAAA,MAAA,KAAS,CAAA,IAAG,IAAA,KAAO,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,CAAA,CAAA;AAAG,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,IAAA,KAAO,CAAA,KAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,CAAA;AAAA,IAAE,CAAA,EAAC;AAAE,IAAA,SAAS,GAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,MAAA,OAAM,UAAA,KAAa,OAAO,CAAA,CAAE,qBAAA,GAAsB,CAAA,CAAE,sBAAsB,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,GAAE,CAAA,CAAE,SAAA,IAAW,EAAE,SAAA,CAAU,oBAAA,GAAqB,CAAC,EAAA,CAAG,CAAA,EAAE,CAAC,KAAG,CAAC,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,GAAE,IAAA;AAAA,IAAE;AAC1S,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,OAAG,CAAA,GAAE,EAAA;AAAG,MAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,MAAA,QAAA,KAAW,OAAO,CAAA,IAAG,IAAA,KAAO,CAAA,GAAE,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,IAAG,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,GAAE,EAAA,GAAG,CAAA,CAAE,OAAA,EAAQ,CAAA,GAAE,CAAA,CAAE,YAAA,EAAa,CAAA,GAAA,CAAG,CAAA,GAAE,IAAA,KAAO,CAAA,IAAG,MAAA,KAAS,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,GAAE,EAAA,CAAA;AAAI,MAAA,CAAA,GAAE,IAAI,CAAA,CAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,SAAO,CAAA,CAAE,KAAA,IAAO,WAAS,CAAA,CAAE,KAAA,GAAM,EAAE,KAAA,GAAM,IAAA;AAAK,MAAA,CAAA,CAAE,OAAA,GAAQ,EAAA;AAAG,MAAA,CAAA,CAAE,SAAA,GAAU,CAAA;AAAE,MAAA,CAAA,CAAE,eAAA,GAAgB,CAAA;AAAE,MAAA,CAAA,KAAI,IAAE,CAAA,CAAE,SAAA,EAAU,EAAE,2CAAA,GAA4C,CAAA,EAAE,EAAE,yCAAA,GAA0C,CAAA,CAAA;AAAG,MAAA,OAAO,CAAA;AAAA,IAAC;AAC5Z,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,MAAA,UAAA,KAAa,OAAO,CAAA,CAAE,yBAAA,IAA2B,CAAA,CAAE,yBAAA,CAA0B,GAAE,CAAC,CAAA;AAAE,MAAA,UAAA,KAAa,OAAO,CAAA,CAAE,gCAAA,IAAkC,CAAA,CAAE,gCAAA,CAAiC,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,UAAQ,CAAA,IAAG,EAAA,CAAG,oBAAoB,CAAA,EAAE,CAAA,CAAE,OAAM,IAAI,CAAA;AAAA,IAAC;AACpQ,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,CAAA,CAAE,QAAM,CAAA,CAAE,aAAA;AAAc,MAAA,CAAA,CAAE,OAAK,EAAC;AAAE,MAAA,EAAA,CAAG,CAAC,CAAA;AAAE,MAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,MAAA,QAAA,KAAW,OAAO,KAAG,IAAA,KAAO,CAAA,GAAE,EAAE,OAAA,GAAQ,EAAA,CAAG,CAAC,CAAA,IAAG,CAAA,GAAE,GAAG,CAAC,CAAA,GAAE,KAAG,CAAA,CAAE,OAAA,EAAQ,EAAE,OAAA,GAAQ,EAAA,CAAG,GAAE,CAAC,CAAA,CAAA;AAAG,MAAA,CAAA,CAAE,QAAM,CAAA,CAAE,aAAA;AAAc,MAAA,CAAA,GAAE,CAAA,CAAE,wBAAA;AAAyB,MAAA,UAAA,KAAa,OAAO,CAAA,KAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA,EAAE,CAAA,CAAE,KAAA,GAAM,CAAA,CAAE,aAAA,CAAA;AAAe,MAAA,UAAA,KAAa,OAAO,EAAE,wBAAA,IAA0B,UAAA,KAAa,OAAO,CAAA,CAAE,uBAAA,IAAyB,UAAA,KAAa,OAAO,CAAA,CAAE,yBAAA,IAA2B,eAAa,OAAO,CAAA,CAAE,kBAAA,KAAqB,CAAA,GAAE,CAAA,CAAE,KAAA,EACrf,eAAa,OAAO,CAAA,CAAE,kBAAA,IAAoB,CAAA,CAAE,kBAAA,EAAmB,EAAE,eAAa,OAAO,CAAA,CAAE,6BAA2B,CAAA,CAAE,yBAAA,IAA4B,CAAA,KAAI,CAAA,CAAE,KAAA,IAAO,EAAA,CAAG,mBAAA,CAAoB,CAAA,EAAE,EAAE,KAAA,EAAM,IAAI,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA,EAAE,CAAA,CAAE,KAAA,GAAM,CAAA,CAAE,aAAA,CAAA;AAAe,MAAA,UAAA,KAAa,OAAO,CAAA,CAAE,iBAAA,KAAoB,CAAA,CAAE,KAAA,IAAO,OAAA,CAAA;AAAA,IAAQ;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG;AAAC,QAAA,IAAI,CAAA,GAAE,IAAG,CAAA,GAAE,CAAA;AAAE,QAAA;AAAG,UAAA,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,eAAa,CAAA;AAAG,QAAA,IAAI,CAAA,GAAE,CAAA;AAAA,MAAC,SAAO,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,4BAAA,GAA6B,CAAA,CAAE,OAAA,GAAQ,IAAA,GAAK,CAAA,CAAE,KAAA;AAAA,MAAK;AAAC,MAAA,OAAM,EAAC,OAAM,CAAA,EAAE,MAAA,EAAO,GAAE,KAAA,EAAM,CAAA,EAAE,QAAO,IAAA,EAAI;AAAA,IAAC;AAC1d,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,OAAM,EAAC,KAAA,EAAM,CAAA,EAAE,MAAA,EAAO,MAAK,KAAA,EAAM,IAAA,IAAM,CAAA,GAAE,CAAA,GAAE,IAAA,EAAK,MAAA,EAAO,IAAA,IAAM,CAAA,GAAE,IAAE,IAAA,EAAI;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG;AAAC,QAAA,OAAA,CAAQ,KAAA,CAAM,EAAE,KAAK,CAAA;AAAA,MAAC,SAAO,CAAA,EAAE;AAAC,QAAA,UAAA,CAAW,WAAU;AAAC,UAAA,MAAM,CAAA;AAAA,QAAE,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,UAAA,KAAa,OAAO,OAAA,GAAQ,OAAA,GAAQ,GAAA;AAAI,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAA,CAAG,IAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,GAAA,GAAI,CAAA;AAAE,MAAA,CAAA,CAAE,OAAA,GAAQ,EAAC,OAAA,EAAQ,IAAA,EAAI;AAAE,MAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,MAAA,CAAA,CAAE,WAAS,WAAU;AAAC,QAAA,EAAA,KAAK,EAAA,GAAG,MAAG,EAAA,GAAG,CAAA,CAAA;AAAG,QAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,MAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AACrW,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAA,CAAG,IAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,GAAA,GAAI,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,EAAE,IAAA,CAAK,wBAAA;AAAyB,MAAA,IAAG,UAAA,KAAa,OAAO,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,QAAA,CAAA,CAAE,UAAQ,WAAU;AAAC,UAAA,OAAO,EAAE,CAAC,CAAA;AAAA,QAAC,CAAA;AAAE,QAAA,CAAA,CAAE,WAAS,WAAU;AAAC,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,QAAC,CAAA;AAAA,MAAC;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAA,KAAO,KAAG,UAAA,KAAa,OAAO,EAAE,iBAAA,KAAoB,CAAA,CAAE,WAAS,WAAU;AAAC,QAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,QAAA,UAAA,KAAa,OAAO,CAAA,KAAI,IAAA,KAAO,EAAA,GAAG,EAAA,mBAAG,IAAI,GAAA,CAAI,CAAC,IAAI,CAAC,CAAA,GAAE,EAAA,CAAG,IAAI,IAAI,CAAA,CAAA;AAAG,QAAA,IAAIK,KAAE,CAAA,CAAE,KAAA;AAAM,QAAA,IAAA,CAAK,iBAAA,CAAkB,EAAE,KAAA,EAAM,EAAC,gBAAe,IAAA,KAAOA,EAAAA,GAAEA,EAAAA,GAAE,EAAA,EAAG,CAAA;AAAA,MAAC,CAAA,CAAA;AAAG,MAAA,OAAO,CAAA;AAAA,IAAC;AACnb,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,YAAU,IAAI,EAAA,EAAA;AAAG,QAAA,IAAI,oBAAE,IAAI,GAAA,EAAA;AAAI,QAAA,CAAA,CAAE,GAAA,CAAI,GAAE,CAAC,CAAA;AAAA,MAAC,CAAA,MAAM,CAAA,GAAE,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,EAAE,MAAA,KAAS,CAAA,KAAI,CAAA,mBAAE,IAAI,GAAA,EAAA,EAAI,CAAA,CAAE,GAAA,CAAI,GAAE,CAAC,CAAA,CAAA;AAAG,MAAA,CAAA,CAAE,IAAI,CAAC,CAAA,KAAI,EAAE,GAAA,CAAI,CAAC,GAAE,CAAA,GAAE,EAAA,CAAG,IAAA,CAAK,IAAA,EAAK,GAAE,CAAA,EAAE,CAAC,GAAE,CAAA,CAAE,IAAA,CAAK,GAAE,CAAC,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,GAAE;AAAC,QAAA,IAAI,CAAA;AAAE,QAAA,IAAG,CAAA,GAAE,EAAA,KAAK,CAAA,CAAE,GAAA,MAAM,CAAA,CAAE,aAAA,EAAc,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,IAAA,KAAO,CAAA,CAAE,UAAA,GAAW,OAAG,KAAA,GAAG,IAAA;AAAG,QAAA,IAAG,GAAE,OAAO,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,MAAM,SAAO,IAAA,KAAO,CAAA;AAAG,MAAA,OAAO,IAAA;AAAA,IAAI;AAChW,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,OAAK,CAAA,CAAE,IAAA,GAAK,IAAG,OAAO,CAAA,KAAI,IAAE,CAAA,CAAE,KAAA,IAAO,SAAO,CAAA,CAAE,KAAA,IAAO,KAAI,CAAA,CAAE,KAAA,IAAO,QAAO,CAAA,CAAE,KAAA,IAAO,QAAO,CAAA,KAAI,CAAA,CAAE,QAAM,IAAA,KAAO,CAAA,CAAE,YAAU,CAAA,CAAE,GAAA,GAAI,MAAI,CAAA,GAAE,EAAA,CAAG,IAAG,CAAC,CAAA,EAAE,EAAE,GAAA,GAAI,CAAA,EAAE,GAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,CAAA,CAAA,EAAI,CAAA,CAAE,SAAO,CAAA,CAAA,EAAG,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,IAAO,KAAA;AAAM,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,KAAG,EAAA,CAAG,iBAAA;AAAV,IAAA,IAA4B,EAAA,GAAG,KAAA;AAAG,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,KAAA,GAAM,IAAA,KAAO,CAAA,GAAE,EAAA,CAAG,GAAE,IAAA,EAAK,CAAA,EAAE,CAAC,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,KAAA,EAAM,GAAE,CAAC,CAAA;AAAA,IAAC;AACnV,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAO,MAAA,IAAI,IAAE,CAAA,CAAE,GAAA;AAAI,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,GAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,EAAG;AAAE,MAAA,IAAG,SAAO,CAAA,IAAG,CAAC,IAAG,OAAO,CAAA,CAAE,cAAY,CAAA,CAAE,WAAA,EAAY,EAAE,KAAA,IAAO,KAAA,EAAM,EAAE,KAAA,IAAO,CAAC,GAAE,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,IAAG,CAAA,IAAG,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA,CAAE,KAAA;AAAA,IAAK;AACzN,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,QAAA,IAAG,UAAA,KAAa,OAAO,CAAA,IAAG,CAAC,EAAA,CAAG,CAAC,CAAA,IAAG,MAAA,KAAS,CAAA,CAAE,YAAA,IAAc,IAAA,KAAO,CAAA,CAAE,OAAA,IAAS,MAAA,KAAS,CAAA,CAAE,YAAA,EAAa,OAAO,CAAA,CAAE,GAAA,GAAI,EAAA,EAAG,CAAA,CAAE,IAAA,GAAK,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,QAAA,CAAA,GAAE,EAAA,CAAG,EAAE,IAAA,EAAK,IAAA,EAAK,GAAE,CAAA,EAAE,CAAA,CAAE,MAAK,CAAC,CAAA;AAAE,QAAA,CAAA,CAAE,MAAI,CAAA,CAAE,GAAA;AAAI,QAAA,CAAA,CAAE,MAAA,GAAO,CAAA;AAAE,QAAA,OAAO,EAAE,KAAA,GAAM,CAAA;AAAA,MAAC;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,MAAA,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,CAAA,CAAA,EAAG;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,QAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,QAAA,CAAA,GAAE,IAAA,KAAO,IAAE,CAAA,GAAE,EAAA;AAAG,QAAA,IAAG,CAAA,CAAE,CAAA,EAAE,CAAC,CAAA,IAAG,CAAA,CAAE,GAAA,KAAM,CAAA,CAAE,GAAA,EAAI,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,MAAC;AAAC,MAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,MAAI,CAAA,CAAE,GAAA;AAAI,MAAA,CAAA,CAAE,MAAA,GAAO,CAAA;AAAE,MAAA,OAAO,EAAE,KAAA,GAAM,CAAA;AAAA,IAAC;AAC1b,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,QAAA,IAAG,EAAA,CAAG,GAAE,CAAC,CAAA,IAAG,EAAE,GAAA,KAAM,CAAA,CAAE,GAAA,EAAI,IAAG,EAAA,GAAG,KAAA,EAAG,EAAE,YAAA,GAAa,CAAA,GAAE,CAAA,EAAE,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,MAAA,CAAA,KAAU,EAAA,GAAG,IAAA,CAAA;AAAA,aAAS,OAAO,EAAE,KAAA,GAAM,CAAA,CAAE,OAAM,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,MAAC;AAAC,MAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,IAAC;AACxN,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,CAAE,YAAA,EAAa,CAAA,GAAE,CAAA,CAAE,UAAS,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,aAAA,GAAc,IAAA;AAAK,MAAA,IAAG,QAAA,KAAW,EAAE,IAAA,EAAK,IAAG,OAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA,EAAG,CAAA,CAAE,aAAA,GAAc,EAAC,WAAU,CAAA,EAAE,SAAA,EAAU,MAAK,WAAA,EAAY,IAAA,IAAM,CAAA,CAAE,EAAA,EAAG,EAAE,CAAA,EAAE,EAAA,IAAI,CAAA;AAAA,WAAM;AAAC,QAAA,IAAG,CAAA,MAAK,CAAA,GAAE,UAAA,CAAA,EAAY,OAAO,IAAE,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,SAAA,GAAU,IAAE,CAAA,EAAE,CAAA,CAAE,KAAA,GAAM,CAAA,CAAE,aAAW,UAAA,EAAW,CAAA,CAAE,aAAA,GAAc,EAAC,SAAA,EAAU,CAAA,EAAE,SAAA,EAAU,IAAA,EAAK,aAAY,IAAA,EAAI,EAAE,CAAA,CAAE,WAAA,GAAY,MAAK,CAAA,CAAE,EAAA,EAAG,EAAE,CAAA,EAAE,MAAI,CAAA,EAAE,IAAA;AAAK,QAAA,CAAA,CAAE,gBAAc,EAAC,SAAA,EAAU,GAAE,SAAA,EAAU,IAAA,EAAK,aAAY,IAAA,EAAI;AAAE,QAAA,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,SAAA,GAAU,CAAA;AAAE,QAAA,CAAA,CAAE,IAAG,EAAE,CAAA;AAAE,QAAA,EAAA,IAAI,CAAA;AAAA,MAAC;AAAA,WAAM,IAAA,KACtf,CAAA,IAAG,CAAA,GAAE,CAAA,CAAE,YAAU,CAAA,EAAE,CAAA,CAAE,aAAA,GAAc,IAAA,IAAM,IAAE,CAAA,EAAE,CAAA,CAAE,EAAA,EAAG,EAAE,GAAE,EAAA,IAAI,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA,CAAE,KAAA;AAAA,IAAK;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,GAAA;AAAI,MAAA,IAAG,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,GAAA,KAAM,CAAA,EAAE,CAAA,CAAE,KAAA,IAAO,GAAA,EAAI,EAAE,KAAA,IAAO,OAAA;AAAA,IAAO;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,GAAE,KAAG,CAAA,CAAE,OAAA;AAAQ,MAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,GAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,EAAG;AAAE,MAAA,IAAG,SAAO,CAAA,IAAG,CAAC,IAAG,OAAO,CAAA,CAAE,cAAY,CAAA,CAAE,WAAA,EAAY,EAAE,KAAA,IAAO,KAAA,EAAM,EAAE,KAAA,IAAO,CAAC,GAAE,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,IAAG,CAAA,IAAG,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA,CAAE,KAAA;AAAA,IAAK;AACla,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,IAAA;AAAG,QAAA,EAAA,CAAG,CAAC,CAAA;AAAA,MAAC,OAAM,CAAA,GAAE,KAAA;AAAG,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,IAAG,SAAO,CAAA,CAAE,SAAA,KAAa,CAAA,EAAE,CAAC,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,GAAE,EAAA,CAAG,CAAA,EAAE,GAAE,CAAA,EAAE,CAAC,GAAE,CAAA,GAAE,IAAA;AAAA,WAAA,IAAW,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA,CAAE,SAAA,EAAU,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,QAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,QAAA,IAAI,CAAA,GAAE,CAAA,CAAE,OAAA,EAAQ,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,QAAA,QAAA,KAAW,OAAO,CAAA,IAAG,IAAA,KAAO,IAAE,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,IAAG,CAAA,GAAE,EAAA,CAAG,CAAC,IAAE,EAAA,GAAG,CAAA,CAAE,SAAQ,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA,CAAA;AAAG,QAAA,IAAI,CAAA,GAAE,EAAE,wBAAA,EAAyB,CAAA,GAAE,eAAa,OAAO,CAAA,IAAG,UAAA,KAAa,OAAO,CAAA,CAAE,uBAAA;AAAwB,QAAA,CAAA,IAAG,eAAa,OAAO,CAAA,CAAE,gCAAA,IAAkC,UAAA,KAAa,OAAO,CAAA,CAAE,yBAAA,IAAA,CAC1d,CAAA,KAAI,CAAA,IAAG,MAAI,CAAA,KAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,QAAA,EAAA,GAAG,KAAA;AAAG,QAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,QAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,QAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,QAAA,CAAA,KAAI,KAAG,CAAA,KAAI,CAAA,IAAG,GAAG,OAAA,IAAS,EAAA,IAAI,eAAa,OAAO,CAAA,KAAI,GAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA,EAAE,IAAE,CAAA,CAAE,aAAA,CAAA,EAAA,CAAgB,IAAE,EAAA,IAAI,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,KAAI,CAAA,IAAG,eAAa,OAAO,CAAA,CAAE,6BAA2B,UAAA,KAAa,OAAO,EAAE,kBAAA,KAAqB,UAAA,KAAa,OAAO,CAAA,CAAE,kBAAA,IAAoB,EAAE,kBAAA,EAAmB,EAAE,UAAA,KAAa,OAAO,EAAE,yBAAA,IAA2B,CAAA,CAAE,2BAA0B,CAAA,EAAG,UAAA,KAAa,OAAO,CAAA,CAAE,iBAAA,KAAoB,EAAE,KAAA,IAAO,OAAA,CAAA,KAClf,eAAa,OAAO,CAAA,CAAE,sBAAoB,CAAA,CAAE,KAAA,IAAO,UAAS,CAAA,CAAE,aAAA,GAAc,GAAE,CAAA,CAAE,aAAA,GAAc,IAAG,CAAA,CAAE,KAAA,GAAM,GAAE,CAAA,CAAE,KAAA,GAAM,GAAE,CAAA,CAAE,OAAA,GAAQ,GAAE,CAAA,GAAE,CAAA,KAAI,eAAa,OAAO,CAAA,CAAE,sBAAoB,CAAA,CAAE,KAAA,IAAO,UAAS,CAAA,GAAE,KAAA,CAAA;AAAA,MAAG,CAAA,MAAK;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,QAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,QAAA,CAAA,GAAE,CAAA,CAAE,SAAO,CAAA,CAAE,WAAA,GAAY,IAAE,EAAA,CAAG,CAAA,CAAE,MAAK,CAAC,CAAA;AAAE,QAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,QAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,QAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,QAAA,QAAA,KAAW,OAAO,CAAA,IAAG,IAAA,KAAO,IAAE,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,IAAG,CAAA,GAAE,EAAA,CAAG,CAAC,IAAE,EAAA,GAAG,CAAA,CAAE,SAAQ,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA,CAAA;AAAG,QAAA,IAAI,IAAE,CAAA,CAAE,wBAAA;AAAyB,QAAA,CAAC,CAAA,GAAE,UAAA,KAAa,OAAO,CAAA,IAAG,UAAA,KAAa,OAAO,CAAA,CAAE,uBAAA,KAC9e,UAAA,KAAa,OAAO,CAAA,CAAE,gCAAA,IAAkC,eAAa,OAAO,CAAA,CAAE,yBAAA,IAAA,CAA4B,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,MAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,QAAA,EAAA,GAAG,KAAA;AAAG,QAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,QAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,QAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,QAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,QAAA,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,IAAG,EAAA,CAAG,WAAS,EAAA,IAAI,UAAA,KAAa,OAAO,CAAA,KAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,aAAA,CAAA,EAAA,CAAgB,CAAA,GAAE,EAAA,IAAI,EAAA,CAAG,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,IAAG,KAAA,KAAK,CAAA,IAAG,eAAa,OAAO,CAAA,CAAE,0BAAA,IAA4B,UAAA,KAAa,OAAO,CAAA,CAAE,mBAAA,KAAsB,UAAA,KAAa,OAAO,CAAA,CAAE,mBAAA,IAAqB,CAAA,CAAE,mBAAA,CAAoB,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,eAAa,OAAO,CAAA,CAAE,0BAAA,IAC5f,CAAA,CAAE,0BAAA,CAA2B,CAAA,EAAE,CAAA,EAAE,CAAC,IAAG,UAAA,KAAa,OAAO,CAAA,CAAE,kBAAA,KAAqB,EAAE,KAAA,IAAO,CAAA,CAAA,EAAG,UAAA,KAAa,OAAO,EAAE,uBAAA,KAA0B,CAAA,CAAE,KAAA,IAAO,IAAA,CAAA,KAAQ,UAAA,KAAa,OAAO,CAAA,CAAE,kBAAA,IAAoB,MAAI,CAAA,CAAE,aAAA,IAAe,CAAA,KAAI,CAAA,CAAE,aAAA,KAAgB,CAAA,CAAE,KAAA,IAAO,CAAA,CAAA,EAAG,eAAa,OAAO,CAAA,CAAE,uBAAA,IAAyB,CAAA,KAAI,CAAA,CAAE,aAAA,IAAe,CAAA,KAAI,CAAA,CAAE,kBAAgB,CAAA,CAAE,KAAA,IAAO,IAAA,CAAA,EAAM,CAAA,CAAE,aAAA,GAAc,CAAA,EAAE,CAAA,CAAE,aAAA,GAAc,IAAG,CAAA,CAAE,KAAA,GAAM,CAAA,EAAE,CAAA,CAAE,KAAA,GAAM,CAAA,EAAE,CAAA,CAAE,OAAA,GAAQ,GAAE,CAAA,GAAE,CAAA,KAAI,UAAA,KAAa,OAAO,CAAA,CAAE,kBAAA,IAAoB,CAAA,KAAI,CAAA,CAAE,iBAAe,CAAA,KACjf,CAAA,CAAE,aAAA,KAAgB,CAAA,CAAE,KAAA,IAAO,CAAA,CAAA,EAAG,UAAA,KAAa,OAAO,EAAE,uBAAA,IAAyB,CAAA,KAAI,CAAA,CAAE,aAAA,IAAe,MAAI,CAAA,CAAE,aAAA,KAAgB,CAAA,CAAE,KAAA,IAAO,OAAM,CAAA,GAAE,KAAA,CAAA;AAAA,MAAG;AAAC,MAAA,OAAO,GAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,IAAC;AACnK,IAAA,SAAS,GAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,GAAA,CAAA;AAAK,MAAA,IAAG,CAAC,CAAA,IAAG,CAAC,CAAA,SAAS,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,KAAE,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,MAAA,EAAA,CAAG,OAAA,GAAQ,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,KAAG,UAAA,KAAa,OAAO,EAAE,wBAAA,GAAyB,IAAA,GAAK,EAAE,MAAA,EAAO;AAAE,MAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,MAAA,IAAA,KAAO,CAAA,IAAG,KAAG,CAAA,CAAE,KAAA,GAAM,GAAG,CAAA,EAAE,CAAA,CAAE,KAAA,EAAM,IAAA,EAAK,CAAC,CAAA,EAAE,EAAE,KAAA,GAAM,EAAA,CAAG,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,CAAC,KAAG,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,gBAAc,CAAA,CAAE,KAAA;AAAM,MAAA,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,IAAE,CAAA;AAAE,MAAA,OAAO,CAAA,CAAE,KAAA;AAAA,IAAK;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,CAAA,CAAE,iBAAe,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,cAAA,EAAe,EAAE,cAAA,KAAiB,CAAA,CAAE,OAAO,CAAA,GAAE,EAAE,OAAA,IAAS,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,SAAQ,KAAE,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,EAAE,aAAa,CAAA;AAAA,IAAC;AAC5e,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,EAAG;AAAE,MAAA,EAAA,CAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,IAAO,GAAA;AAAI,MAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA,CAAE,KAAA;AAAA,IAAK;AAAC,IAAA,IAAI,KAAG,EAAC,UAAA,EAAW,MAAK,WAAA,EAAY,IAAA,EAAK,WAAU,CAAA,EAAC;AAAE,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAM,EAAC,SAAA,EAAU,CAAA,EAAE,SAAA,EAAU,IAAA,EAAK,aAAY,IAAA,EAAI;AAAA,IAAC;AAClM,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,CAAE,YAAA,EAAa,CAAA,GAAE,CAAA,CAAE,OAAA,EAAQ,CAAA,GAAE,KAAA,EAAG,CAAA,GAAE,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,GAAA,CAAA,EAAK,CAAA;AAAE,MAAA,CAAC,CAAA,GAAE,CAAA,MAAK,CAAA,GAAE,IAAA,KAAO,CAAA,IAAG,SAAO,CAAA,CAAE,aAAA,GAAc,KAAA,GAAG,CAAA,MAAK,CAAA,GAAE,CAAA,CAAA,CAAA;AAAI,MAAA,IAAG,CAAA,EAAE,CAAA,GAAE,IAAA,EAAG,CAAA,CAAE,KAAA,IAAO,IAAA;AAAA,WAAA,IAAa,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,eAAc,CAAA,IAAG,CAAA;AAAE,MAAA,CAAA,CAAE,CAAA,EAAE,IAAE,CAAC,CAAA;AAAE,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,EAAA,CAAG,CAAC,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,QAAA,IAAG,IAAA,KAAO,MAAI,CAAA,GAAE,CAAA,CAAE,YAAW,IAAA,KAAO,CAAA,CAAA,EAAG,OAAO,CAAA,MAAK,CAAA,CAAE,IAAA,GAAK,KAAG,CAAA,CAAE,KAAA,GAAM,CAAA,GAAE,IAAA,KAAO,CAAA,CAAE,IAAA,GAAK,EAAE,KAAA,GAAM,CAAA,GAAE,CAAA,CAAE,KAAA,GAAM,UAAA,EAAW,IAAA;AAAK,QAAA,CAAA,GAAE,CAAA,CAAE,QAAA;AAAS,QAAA,CAAA,GAAE,CAAA,CAAE,QAAA;AAAS,QAAA,OAAO,CAAA,IAAG,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,CAAA,GAAE,EAAC,IAAA,EAAK,QAAA,EAAS,QAAA,EAAS,CAAA,EAAC,EAAE,CAAA,MAAK,CAAA,GAAE,CAAA,CAAA,IAAI,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,UAAA,GAAW,CAAA,EAAE,CAAA,CAAE,YAAA,GAC7e,CAAA,IAAG,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,GAAE,CAAA,EAAE,IAAI,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,IAAI,CAAA,EAAE,CAAA,CAAE,MAAA,GAAO,CAAA,EAAE,CAAA,CAAE,MAAA,GAAO,CAAA,EAAE,EAAE,OAAA,GAAQ,CAAA,EAAE,CAAA,CAAE,KAAA,GAAM,CAAA,EAAE,CAAA,CAAE,KAAA,CAAM,aAAA,GAAc,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,CAAE,aAAA,GAAc,EAAA,EAAG,CAAA,IAAG,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,MAAC;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,MAAA,IAAG,IAAA,KAAO,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,YAAW,IAAA,KAAO,CAAA,CAAA,EAAG,OAAO,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,IAAG,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,QAAA;AAAS,QAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,QAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,QAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,QAAA,IAAI,IAAE,EAAC,IAAA,EAAK,QAAA,EAAS,QAAA,EAAS,EAAE,QAAA,EAAQ;AAAE,QAAA,CAAA,MAAK,CAAA,GAAE,CAAA,CAAA,IAAI,CAAA,CAAE,KAAA,KAAQ,CAAA,IAAG,IAAE,CAAA,CAAE,KAAA,EAAM,CAAA,CAAE,UAAA,GAAW,CAAA,EAAE,CAAA,CAAE,eAAa,CAAA,EAAE,CAAA,CAAE,SAAA,GAAU,IAAA,KAAO,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,CAAE,YAAA,GAAa,CAAA,CAAE,YAAA,GAAa,QAAA,CAAA;AAAU,QAAA,IAAA,KAAO,CAAA,GAAE,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,IAAG,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,IAAI,CAAA,EAAE,EAAE,KAAA,IAAO,CAAA,CAAA;AAAG,QAAA,CAAA,CAAE,MAAA,GACnf,CAAA;AAAE,QAAA,CAAA,CAAE,MAAA,GAAO,CAAA;AAAE,QAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAE,QAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,QAAA,CAAA,GAAE,EAAE,KAAA,CAAM,aAAA;AAAc,QAAA,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,EAAA,CAAG,CAAC,IAAE,EAAC,SAAA,EAAU,CAAA,CAAE,SAAA,GAAU,CAAA,EAAE,SAAA,EAAU,IAAA,EAAK,WAAA,EAAY,EAAE,WAAA,EAAW;AAAE,QAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,QAAA,CAAA,CAAE,UAAA,GAAW,CAAA,CAAE,UAAA,GAAW,CAAC,CAAA;AAAE,QAAA,CAAA,CAAE,aAAA,GAAc,EAAA;AAAG,QAAA,OAAO,CAAA;AAAA,MAAC;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,MAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,CAAA,GAAE,EAAA,CAAG,GAAE,EAAC,IAAA,EAAK,WAAU,QAAA,EAAS,CAAA,CAAE,UAAS,CAAA;AAAE,MAAA,CAAA,MAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA,KAAK,CAAA,CAAE,KAAA,GAAM,CAAA,CAAA;AAAG,MAAA,CAAA,CAAE,MAAA,GAAO,CAAA;AAAE,MAAA,CAAA,CAAE,OAAA,GAAQ,IAAA;AAAK,MAAA,IAAA,KAAO,MAAI,CAAA,GAAE,CAAA,CAAE,SAAA,EAAU,IAAA,KAAO,KAAG,CAAA,CAAE,SAAA,GAAU,CAAC,CAAC,GAAE,CAAA,CAAE,KAAA,IAAO,EAAA,IAAI,CAAA,CAAE,KAAK,CAAC,CAAA,CAAA;AAAG,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,IAAA;AAAK,MAAA,OAAO,CAAA;AAAA,IAAC;AACnd,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAA,CAAG,EAAC,IAAA,EAAK,SAAA,EAAU,QAAA,EAAS,GAAC,EAAE,CAAA,CAAE,IAAA,EAAK,CAAA,EAAE,IAAI,CAAA;AAAE,MAAA,CAAA,CAAE,MAAA,GAAO,CAAA;AAAE,MAAA,OAAO,EAAE,KAAA,GAAM,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAA,KAAO,CAAA,IAAG,GAAG,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,KAAA,EAAM,IAAA,EAAK,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,YAAA,CAAa,QAAQ,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,IAAA;AAAK,MAAA,OAAO,CAAA;AAAA,IAAC;AAC/N,IAAA,SAAS,GAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,EAAE;AAAC,QAAA,IAAG,EAAE,KAAA,GAAM,GAAA,SAAW,CAAA,CAAE,KAAA,IAAO,MAAK,CAAA,GAAE,EAAA,CAAG,MAAM,CAAA,CAAE,GAAG,CAAC,CAAC,CAAA,EAAE,GAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,QAAA,IAAG,IAAA,KAAO,CAAA,CAAE,aAAA,EAAc,OAAO,CAAA,CAAE,QAAM,CAAA,CAAE,KAAA,EAAM,CAAA,CAAE,KAAA,IAAO,GAAA,EAAI,IAAA;AAAK,QAAA,CAAA,GAAE,CAAA,CAAE,QAAA;AAAS,QAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,QAAA,CAAA,GAAE,EAAA,CAAG,EAAC,IAAA,EAAK,SAAA,EAAU,QAAA,EAAS,EAAE,QAAA,EAAQ,EAAE,CAAA,EAAE,CAAA,EAAE,IAAI,CAAA;AAAE,QAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,IAAI,CAAA;AAAE,QAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,QAAA,CAAA,CAAE,MAAA,GAAO,CAAA;AAAE,QAAA,CAAA,CAAE,MAAA,GAAO,CAAA;AAAE,QAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAE,QAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,QAAA,CAAA,MAAK,CAAA,CAAE,OAAK,CAAA,CAAA,IAAI,EAAA,CAAG,GAAE,CAAA,CAAE,KAAA,EAAM,MAAK,CAAC,CAAA;AAAE,QAAA,CAAA,CAAE,KAAA,CAAM,aAAA,GAAc,EAAA,CAAG,CAAC,CAAA;AAAE,QAAA,CAAA,CAAE,aAAA,GAAc,EAAA;AAAG,QAAA,OAAO,CAAA;AAAA,MAAC;AAAC,MAAA,IAAG,CAAA,MAAK,EAAE,IAAA,GAAK,CAAA,CAAA,SAAU,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,IAAI,CAAA;AAAE,MAAA,IAAG,IAAA,KAAO,EAAE,IAAA,EAAK;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,WAAA,IAAa,CAAA,CAAE,WAAA,CAAY,OAAA;AAChf,QAAA,IAAG,CAAA,EAAE,IAAI,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAE,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,MAAM,CAAA;AAAE,QAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,MAAC;AAAC,MAAA,CAAA,GAAE,CAAA,MAAK,IAAE,CAAA,CAAE,UAAA,CAAA;AAAY,MAAA,IAAG,MAAI,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,QAAO,CAAA,GAAE,CAAC,CAAA;AAAE,YAAC,KAAK,CAAA;AAAE,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA;AAAA,YAAM,KAAK,EAAA;AAAG,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA;AAAA,YAAM,KAAK,EAAA;AAAA,YAAG,KAAK,GAAA;AAAA,YAAI,KAAK,GAAA;AAAA,YAAI,KAAK,GAAA;AAAA,YAAI,KAAK,IAAA;AAAA,YAAK,KAAK,IAAA;AAAA,YAAK,KAAK,IAAA;AAAA,YAAK,KAAK,IAAA;AAAA,YAAK,KAAK,KAAA;AAAA,YAAM,KAAK,KAAA;AAAA,YAAM,KAAK,KAAA;AAAA,YAAM,KAAK,MAAA;AAAA,YAAO,KAAK,MAAA;AAAA,YAAO,KAAK,MAAA;AAAA,YAAO,KAAK,OAAA;AAAA,YAAQ,KAAK,OAAA;AAAA,YAAQ,KAAK,OAAA;AAAA,YAAQ,KAAK,OAAA;AAAA,YAAQ,KAAK,QAAA;AAAA,YAAS,KAAK,QAAA;AAAA,YAAS,KAAK,QAAA;AAAS,cAAA,CAAA,GAAE,EAAA;AAAG,cAAA;AAAA,YAAM,KAAK,SAAA;AAAU,cAAA,CAAA,GAAE,SAAA;AAAU,cAAA;AAAA,YAAM;AAAQ,cAAA,CAAA,GAAE,CAAA;AAAA;AAAE,UAAA,CAAA,GAAE,CAAA,MAAK,CAAA,IAAG,CAAA,CAAE,cAAA,GAAe,MAAI,CAAA,GAAE,CAAA;AACnf,UAAA,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,SAAA,KAAY,EAAE,SAAA,GAAU,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,GAAE,EAAE,CAAA,CAAA;AAAA,QAAE;AAAC,QAAA,EAAA,EAAG;AAAE,QAAA,CAAA,GAAE,EAAA,CAAG,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAC,CAAA;AAAE,QAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,MAAC;AAAC,MAAA,IAAG,SAAO,CAAA,CAAE,IAAA,SAAY,CAAA,CAAE,KAAA,IAAO,KAAI,CAAA,CAAE,KAAA,GAAM,EAAE,KAAA,EAAM,CAAA,GAAE,GAAG,IAAA,CAAK,IAAA,EAAK,CAAC,CAAA,EAAE,CAAA,CAAE,cAAY,CAAA,EAAE,IAAA;AAAK,MAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,MAAA,EAAA,GAAG,EAAA,CAAG,EAAE,WAAW,CAAA;AAAE,MAAA,EAAA,GAAG,CAAA;AAAE,MAAA,CAAA,GAAE,IAAA;AAAG,MAAA,EAAA,GAAG,IAAA;AAAK,MAAA,IAAA,KAAO,MAAI,EAAA,CAAG,EAAA,EAAI,IAAE,EAAA,EAAG,EAAA,CAAG,IAAI,CAAA,GAAE,EAAA,EAAG,GAAG,EAAA,EAAI,CAAA,GAAE,IAAG,EAAA,GAAG,CAAA,CAAE,IAAG,EAAA,GAAG,CAAA,CAAE,UAAS,EAAA,GAAG,CAAA,CAAA;AAAG,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,QAAQ,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,IAAO,IAAA;AAAK,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAA,KAAO,CAAA,KAAI,EAAE,KAAA,IAAO,CAAA,CAAA;AAAG,MAAA,EAAA,CAAG,CAAA,CAAE,MAAA,EAAO,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC;AACxc,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,MAAA,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,aAAA,GAAc,EAAC,aAAY,CAAA,EAAE,SAAA,EAAU,IAAA,EAAK,kBAAA,EAAmB,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,GAAE,QAAA,EAAS,CAAA,EAAC,IAAG,CAAA,CAAE,WAAA,GAAY,CAAA,EAAE,CAAA,CAAE,SAAA,GAAU,MAAK,CAAA,CAAE,kBAAA,GAAmB,CAAA,EAAE,CAAA,CAAE,OAAK,CAAA,EAAE,CAAA,CAAE,IAAA,GAAK,CAAA,EAAE,EAAE,QAAA,GAAS,CAAA,CAAA;AAAA,IAAE;AAC3O,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,YAAA,EAAa,IAAE,CAAA,CAAE,WAAA,EAAY,IAAE,CAAA,CAAE,IAAA;AAAK,MAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,CAAE,QAAA,EAAS,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,IAAG,CAAA,MAAK,IAAE,CAAA,CAAA,EAAG,CAAA,GAAE,IAAE,CAAA,GAAE,CAAA,EAAE,EAAE,KAAA,IAAO,GAAA;AAAA,WAAQ;AAAC,QAAA,IAAG,IAAA,KAAO,CAAA,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,GAAA,CAAA,EAAK,CAAA,EAAE,KAAI,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,IAAA,KAAO,CAAA,IAAG;AAAC,UAAA,IAAG,EAAA,KAAK,EAAE,GAAA,EAAI,IAAA,KAAO,EAAE,aAAA,IAAe,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,eAAA,IAAU,OAAK,CAAA,CAAE,GAAA,EAAI,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,eAAA,IAAU,IAAA,KAAO,EAAE,KAAA,EAAM;AAAC,YAAA,CAAA,CAAE,MAAM,MAAA,GAAO,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,YAAA;AAAA,UAAQ;AAAC,UAAA,IAAG,CAAA,KAAI,GAAE,MAAM,CAAA;AAAE,UAAA,OAAK,IAAA,KAAO,EAAE,OAAA,IAAS;AAAC,YAAA,IAAG,SAAO,CAAA,CAAE,MAAA,IAAQ,CAAA,CAAE,MAAA,KAAS,GAAE,MAAM,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,UAAM;AAAC,UAAA,CAAA,CAAE,OAAA,CAAQ,SAAO,CAAA,CAAE,MAAA;AAAO,UAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,QAAO;AAAC,QAAA,CAAA,IAAG,CAAA;AAAA,MAAC;AAAC,MAAA,CAAA,CAAE,GAAE,CAAC,CAAA;AAAE,MAAA,IAAG,CAAA,MAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA,IAAK,aAAA,GAC/e,IAAA;AAAA,mBAAiB,CAAA;AAAE,QAAC,KAAK,UAAA;AAAW,UAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,UAAA,KAAI,IAAE,IAAA,EAAK,IAAA,KAAO,CAAA,IAAG,CAAA,GAAE,EAAE,SAAA,EAAU,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,GAAG,CAAC,CAAA,KAAI,CAAA,GAAE,CAAA,CAAA,EAAG,IAAE,CAAA,CAAE,OAAA;AAAQ,UAAA,CAAA,GAAE,CAAA;AAAE,UAAA,IAAA,KAAO,CAAA,IAAG,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,CAAA,CAAE,KAAA,GAAM,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,OAAA,EAAQ,CAAA,CAAE,OAAA,GAAQ,IAAA,CAAA;AAAM,UAAA,EAAA,CAAG,CAAA,EAAE,KAAA,EAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,WAAA;AAAY,UAAA,CAAA,GAAE,IAAA;AAAK,UAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,UAAA,KAAI,CAAA,CAAE,KAAA,GAAM,IAAA,EAAK,IAAA,KAAO,CAAA,IAAG;AAAC,YAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,YAAA,IAAG,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,EAAA,CAAG,CAAC,CAAA,EAAE;AAAC,cAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,cAAA;AAAA,YAAK;AAAC,YAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,YAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA;AAAA,UAAC;AAAC,UAAA,EAAA,CAAG,CAAA,EAAE,IAAA,EAAG,CAAA,EAAE,IAAA,EAAK,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,UAAA;AAAW,UAAA,EAAA,CAAG,CAAA,EAAE,KAAA,EAAG,IAAA,EAAK,IAAA,EAAK,MAAM,CAAA;AAAE,UAAA;AAAA,QAAM;AAAQ,UAAA,CAAA,CAAE,aAAA,GAAc,IAAA;AAAA;AAAK,MAAA,OAAO,CAAA,CAAE,KAAA;AAAA,IAAK;AAC7d,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,MAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA,IAAI,IAAA,KAAO,CAAA,KAAI,CAAA,CAAE,SAAA,GAAU,IAAA,EAAK,CAAA,CAAE,SAAA,GAAU,IAAA,EAAK,CAAA,CAAE,KAAA,IAAO,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAA,KAAO,CAAA,KAAI,CAAA,CAAE,YAAA,GAAa,CAAA,CAAE,YAAA,CAAA;AAAc,MAAA,EAAA,IAAI,CAAA,CAAE,KAAA;AAAM,MAAA,IAAG,CAAA,MAAK,CAAA,GAAE,CAAA,CAAE,UAAA,CAAA,EAAY,OAAO,IAAA;AAAK,MAAA,IAAG,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,KAAA,KAAQ,CAAA,CAAE,OAAM,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,IAAG,IAAA,KAAO,EAAE,KAAA,EAAM;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,QAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,YAAY,CAAA;AAAE,QAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,QAAA,KAAI,EAAE,MAAA,GAAO,CAAA,EAAE,SAAO,CAAA,CAAE,OAAA,QAAW,CAAA,CAAE,OAAA,EAAQ,CAAA,GAAE,CAAA,CAAE,UAAQ,EAAA,CAAG,CAAA,EAAE,EAAE,YAAY,CAAA,EAAE,EAAE,MAAA,GAAO,CAAA;AAAE,QAAA,CAAA,CAAE,OAAA,GAAQ,IAAA;AAAA,MAAI;AAAC,MAAA,OAAO,CAAA,CAAE,KAAA;AAAA,IAAK;AAC9a,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,QAAO,EAAE,GAAA;AAAI,QAAC,KAAK,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA,EAAA,EAAG;AAAE,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,EAAA,CAAG,CAAA,CAAE,IAAI,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,SAAA,CAAU,aAAa,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,IAAI,IAAE,CAAA,CAAE,IAAA,CAAK,QAAA,EAAS,CAAA,GAAE,EAAE,aAAA,CAAc,KAAA;AAAM,UAAA,CAAA,CAAE,EAAA,EAAG,EAAE,aAAa,CAAA;AAAE,UAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,UAAA,IAAG,SAAO,CAAA,EAAE;AAAC,YAAA,IAAG,IAAA,KAAO,CAAA,CAAE,UAAA,EAAW,OAAO,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,OAAA,GAAQ,CAAC,CAAA,EAAE,CAAA,CAAE,KAAA,IAAO,GAAA,EAAI,IAAA;AAAK,YAAA,IAAG,CAAA,MAAK,IAAE,CAAA,CAAE,KAAA,CAAM,aAAY,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,YAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,OAAA,GAAQ,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,YAAA,OAAO,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,OAAA,GAAQ,IAAA;AAAA,UAAI;AAAC,UAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,OAAA,GAAQ,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,CAAA,GAAE,CAAA,MAAK,IACrf,CAAA,CAAE,UAAA,CAAA;AAAY,UAAA,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,GAAA,CAAA,EAAK;AAAC,YAAA,IAAG,CAAA,EAAE,OAAO,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,YAAA,CAAA,CAAE,KAAA,IAAO,GAAA;AAAA,UAAG;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,UAAA,IAAA,KAAO,CAAA,KAAI,EAAE,SAAA,GAAU,IAAA,EAAK,EAAE,IAAA,GAAK,IAAA,EAAK,EAAE,UAAA,GAAW,IAAA,CAAA;AAAM,UAAA,CAAA,CAAE,CAAA,EAAE,EAAE,OAAO,CAAA;AAAE,UAAA,IAAG,CAAA,EAAE;AAAA,eAAW,OAAO,IAAA;AAAA,QAAK,KAAK,EAAA;AAAA,QAAG,KAAK,EAAA;AAAG,UAAA,OAAO,EAAE,KAAA,GAAM,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA;AAAE,MAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA;AAAJ,IAAA,IAAO,EAAA;AAAP,IAAA,IAAU,EAAA;AAAV,IAAA,IAAa,EAAA;AACxQ,IAAA,EAAA,GAAG,SAAS,GAAE,CAAA,EAAE;AAAC,MAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,IAAA,KAAO,CAAA,IAAG;AAAC,QAAA,IAAG,CAAA,KAAI,EAAE,GAAA,IAAK,CAAA,KAAI,EAAE,GAAA,EAAI,CAAA,CAAE,WAAA,CAAY,CAAA,CAAE,SAAS,CAAA;AAAA,aAAA,IAAU,CAAA,KAAI,CAAA,CAAE,GAAA,IAAK,IAAA,KAAO,EAAE,KAAA,EAAM;AAAC,UAAA,CAAA,CAAE,MAAM,MAAA,GAAO,CAAA;AAAE,UAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,UAAA;AAAA,QAAQ;AAAC,QAAA,IAAG,MAAI,CAAA,EAAE;AAAM,QAAA,OAAK,IAAA,KAAO,EAAE,OAAA,IAAS;AAAC,UAAA,IAAG,IAAA,KAAO,CAAA,CAAE,MAAA,IAAQ,CAAA,CAAE,WAAS,CAAA,EAAE;AAAO,UAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,QAAM;AAAC,QAAA,CAAA,CAAE,OAAA,CAAQ,SAAO,CAAA,CAAE,MAAA;AAAO,QAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,MAAO;AAAA,IAAC,CAAA;AAAE,IAAA,EAAA,GAAG,WAAU;AAAA,IAAC,CAAA;AACxT,IAAA,EAAA,GAAG,SAAS,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,MAAA,IAAG,MAAI,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,QAAA,EAAA,CAAG,GAAG,OAAO,CAAA;AAAE,QAAA,IAAI,CAAA,GAAE,IAAA;AAAK,QAAA,QAAO,CAAA;AAAE,UAAC,KAAK,OAAA;AAAQ,YAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAC;AAAE,YAAA;AAAA,UAAM,KAAK,QAAA;AAAS,YAAA,CAAA,GAAE,EAAE,EAAC,EAAE,GAAE,EAAC,KAAA,EAAM,QAAO,CAAA;AAAE,YAAA,CAAA,GAAE,EAAE,EAAC,EAAE,GAAE,EAAC,KAAA,EAAM,QAAO,CAAA;AAAE,YAAA,CAAA,GAAE,EAAC;AAAE,YAAA;AAAA,UAAM,KAAK,UAAA;AAAW,YAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAC;AAAE,YAAA;AAAA,UAAM;AAAQ,YAAA,UAAA,KAAa,OAAO,EAAE,OAAA,IAAS,UAAA,KAAa,OAAO,CAAA,CAAE,OAAA,KAAU,EAAE,OAAA,GAAQ,EAAA,CAAA;AAAA;AAAI,QAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,QAAA,IAAI,CAAA;AAAE,QAAA,CAAA,GAAE,IAAA;AAAK,QAAA,KAAI,KAAK,CAAA,EAAE,IAAG,CAAC,CAAA,CAAE,cAAA,CAAe,CAAC,CAAA,IAAG,CAAA,CAAE,cAAA,CAAe,CAAC,KAAG,IAAA,IAAM,CAAA,CAAE,CAAC,CAAA,EAAE,IAAG,YAAU,CAAA,EAAE;AAAC,UAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,UAAA,KAAI,CAAA,IAAK,CAAA,EAAE,CAAA,CAAE,cAAA,CAAe,CAAC,CAAA,KAClf,CAAA,KAAI,CAAA,GAAE,EAAC,CAAA,EAAG,CAAA,CAAE,CAAC,CAAA,GAAE,EAAA,CAAA;AAAA,QAAG,CAAA,MAAK,yBAAA,KAA4B,CAAA,IAAG,UAAA,KAAa,CAAA,IAAG,qCAAmC,CAAA,IAAG,0BAAA,KAA6B,CAAA,IAAG,WAAA,KAAc,CAAA,KAAI,EAAA,CAAG,eAAe,CAAC,CAAA,GAAE,CAAA,KAAI,CAAA,GAAE,EAAC,CAAA,GAAA,CAAI,CAAA,GAAE,CAAA,IAAG,EAAC,EAAG,IAAA,CAAK,CAAA,EAAE,IAAI,CAAA,CAAA;AAAG,QAAA,KAAI,KAAK,CAAA,EAAE;AAAC,UAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,IAAA,IAAM,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,GAAE,MAAA;AAAO,UAAA,IAAG,CAAA,CAAE,cAAA,CAAe,CAAC,CAAA,IAAG,MAAI,CAAA,KAAI,IAAA,IAAM,CAAA,IAAG,IAAA,IAAM,CAAA,CAAA,EAAG,IAAG,OAAA,KAAU,CAAA,MAAK,CAAA,EAAE;AAAC,YAAA,KAAI,KAAK,CAAA,EAAE,CAAC,EAAE,cAAA,CAAe,CAAC,KAAG,CAAA,IAAG,CAAA,CAAE,cAAA,CAAe,CAAC,MAAI,CAAA,KAAI,CAAA,GAAE,EAAC,CAAA,EAAG,CAAA,CAAE,CAAC,CAAA,GAAE,EAAA,CAAA;AAAI,YAAA,KAAI,CAAA,IAAK,GAAE,CAAA,CAAE,cAAA,CAAe,CAAC,CAAA,IAAG,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA,CAAE,CAAC,CAAA,KAAI,CAAA,KAAI,IAAE,EAAC,CAAA,EAAG,EAAE,CAAC,CAAA,GAAE,EAAE,CAAC,CAAA,CAAA;AAAA,UAAE,OAAM,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,KAAI,CAAA,CAAE,IAAA;AAAA,YAAK,CAAA;AAAA,YACpf;AAAA,cAAI,CAAA,GAAE,CAAA;AAAA,eAAM,yBAAA,KAA4B,CAAA,IAAG,CAAA,GAAE,CAAA,GAAE,EAAE,MAAA,GAAO,MAAA,EAAO,CAAA,GAAE,CAAA,GAAE,CAAA,CAAE,MAAA,GAAO,MAAA,EAAO,IAAA,IAAM,KAAG,CAAA,KAAI,CAAA,IAAA,CAAI,CAAA,GAAE,CAAA,IAAG,EAAC,EAAG,IAAA,CAAK,CAAA,EAAE,CAAC,CAAA,IAAG,UAAA,KAAa,CAAA,GAAE,QAAA,KAAW,OAAO,CAAA,IAAG,QAAA,KAAW,OAAO,MAAI,CAAA,GAAE,CAAA,IAAG,EAAC,EAAG,IAAA,CAAK,CAAA,EAAE,EAAA,GAAG,CAAC,IAAE,gCAAA,KAAmC,CAAA,IAAG,0BAAA,KAA6B,CAAA,KAAI,EAAA,CAAG,cAAA,CAAe,CAAC,CAAA,IAAG,QAAM,CAAA,IAAG,UAAA,KAAa,CAAA,IAAG,CAAA,CAAE,QAAA,EAAS,CAAC,CAAA,EAAE,CAAA,IAAG,MAAI,CAAA,KAAI,CAAA,GAAE,EAAC,CAAA,IAAA,CAAK,IAAE,CAAA,IAAG,EAAC,EAAG,IAAA,CAAK,GAAE,CAAC,CAAA,CAAA;AAAA,QAAE;AAAC,QAAA,CAAA,IAAA,CAAI,IAAE,CAAA,IAAG,EAAC,EAAG,IAAA,CAAK,SAAQ,CAAC,CAAA;AAAE,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,IAAG,CAAA,CAAE,WAAA,GAAY,CAAA,EAAE,CAAA,CAAE,KAAA,IAAO,CAAA;AAAA,MAAC;AAAA,IAAC,CAAA;AAAE,IAAA,EAAA,GAAG,SAAS,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,KAAI,CAAA,KAAI,EAAE,KAAA,IAAO,CAAA,CAAA;AAAA,IAAE,CAAA;AAChe,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAC,CAAA,EAAE,QAAO,CAAA,CAAE,QAAA;AAAS,QAAC,KAAK,QAAA;AAAS,UAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,UAAA,KAAA,IAAQ,CAAA,GAAE,IAAA,EAAK,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,EAAE,SAAA,KAAY,CAAA,GAAE,CAAA,CAAA,EAAG,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,UAAA,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,IAAA,GAAK,IAAA,GAAK,EAAE,OAAA,GAAQ,IAAA;AAAK,UAAA;AAAA,QAAM,KAAK,WAAA;AAAY,UAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,UAAA,KAAA,IAAQ,CAAA,GAAE,IAAA,EAAK,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,EAAE,SAAA,KAAY,CAAA,GAAE,CAAA,CAAA,EAAG,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,UAAA,IAAA,KAAO,CAAA,GAAE,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,IAAA,GAAK,CAAA,CAAE,IAAA,GAAK,IAAA,GAAK,CAAA,CAAE,IAAA,CAAK,OAAA,GAAQ,IAAA,GAAK,EAAE,OAAA,GAAQ,IAAA;AAAA;AAAI,IAAC;AAC5U,IAAA,SAAS,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,IAAA,KAAO,CAAA,CAAE,SAAA,IAAW,CAAA,CAAE,SAAA,CAAU,KAAA,KAAQ,CAAA,CAAE,KAAA,EAAM,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG,CAAA,EAAE,KAAA,IAAQ,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,SAAO,CAAA,IAAG,CAAA,IAAG,CAAA,CAAE,KAAA,GAAM,CAAA,CAAE,UAAA,EAAW,KAAG,CAAA,CAAE,YAAA,GAAa,QAAA,EAAS,CAAA,IAAG,CAAA,CAAE,KAAA,GAAM,UAAS,CAAA,CAAE,MAAA,GAAO,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,WAAa,KAAI,IAAE,CAAA,CAAE,KAAA,EAAM,SAAO,CAAA,IAAG,CAAA,IAAG,EAAE,KAAA,GAAM,CAAA,CAAE,YAAW,CAAA,IAAG,CAAA,CAAE,cAAa,CAAA,IAAG,CAAA,CAAE,OAAM,CAAA,CAAE,MAAA,GAAO,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,CAAA,CAAE,YAAA,IAAc,CAAA;AAAE,MAAA,CAAA,CAAE,UAAA,GAAW,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAC7V,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,YAAA;AAAa,MAAA,EAAA,CAAG,CAAC,CAAA;AAAE,MAAA,QAAO,EAAE,GAAA;AAAI,QAAC,KAAK,CAAA;AAAA,QAAE,KAAK,EAAA;AAAA,QAAG,KAAK,EAAA;AAAA,QAAG,KAAK,CAAA;AAAA,QAAE,KAAK,EAAA;AAAA,QAAG,KAAK,CAAA;AAAA,QAAE,KAAK,CAAA;AAAA,QAAE,KAAK,EAAA;AAAA,QAAG,KAAK,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA;AAAA,QAAK,KAAK,CAAA;AAAE,UAAA,OAAO,EAAA,CAAG,EAAE,IAAI,CAAA,IAAG,IAAG,EAAE,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA;AAAA,QAAK,KAAK,CAAA;AAAE,UAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,UAAA,EAAA,EAAG;AAAE,UAAA,CAAA,CAAE,EAAE,CAAA;AAAE,UAAA,CAAA,CAAE,CAAC,CAAA;AAAE,UAAA,EAAA,EAAG;AAAE,UAAA,CAAA,CAAE,mBAAiB,CAAA,CAAE,OAAA,GAAQ,CAAA,CAAE,cAAA,EAAe,EAAE,cAAA,GAAe,IAAA,CAAA;AAAM,UAAA,IAAG,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,KAAA,EAAM,EAAA,CAAG,CAAC,CAAA,GAAE,CAAA,CAAE,KAAA,IAAO,CAAA,GAAE,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,aAAA,CAAc,YAAA,IAAc,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,GAAA,CAAA,KAAO,CAAA,CAAE,KAAA,IAAO,IAAA,EAAK,IAAA,KAAO,EAAA,KAAK,EAAA,CAAG,EAAE,CAAA,EAAE,EAAA,GAAG,IAAA,CAAA,CAAA;AAAO,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,CAAA,CAAE,CAAC,CAAA;AAAE,UAAA,OAAO,IAAA;AAAA,QAAK,KAAK,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA,IAAI,CAAA,GAAE,EAAA,CAAG,EAAA,CAAG,OAAO,CAAA;AAC7f,UAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,UAAA,IAAG,IAAA,KAAO,KAAG,IAAA,IAAM,CAAA,CAAE,WAAU,EAAA,CAAG,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,CAAE,QAAM,CAAA,CAAE,GAAA,KAAM,EAAE,KAAA,IAAO,GAAA,EAAI,EAAE,KAAA,IAAO,OAAA,CAAA;AAAA,eAAa;AAAC,YAAA,IAAG,CAAC,CAAA,EAAE;AAAC,cAAA,IAAG,SAAO,CAAA,CAAE,SAAA,QAAgB,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,cAAA,CAAA,CAAE,CAAC,CAAA;AAAE,cAAA,OAAO,IAAA;AAAA,YAAI;AAAC,YAAA,CAAA,GAAE,EAAA,CAAG,GAAG,OAAO,CAAA;AAAE,YAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE;AAAC,cAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,cAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,cAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,cAAA,CAAA,CAAE,EAAE,CAAA,GAAE,CAAA;AAAE,cAAA,CAAA,CAAE,EAAE,CAAA,GAAE,CAAA;AAAE,cAAA,CAAA,GAAE,CAAA,MAAK,EAAE,IAAA,GAAK,CAAA,CAAA;AAAG,cAAA,QAAO,CAAA;AAAE,gBAAC,KAAK,QAAA;AAAS,kBAAA,CAAA,CAAE,UAAS,CAAC,CAAA;AAAE,kBAAA,CAAA,CAAE,SAAQ,CAAC,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,QAAA;AAAA,gBAAS,KAAK,QAAA;AAAA,gBAAS,KAAK,OAAA;AAAQ,kBAAA,CAAA,CAAE,QAAO,CAAC,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,OAAA;AAAA,gBAAQ,KAAK,OAAA;AAAQ,kBAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,MAAA,EAAO,KAAI,CAAA,CAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAC,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,QAAA;AAAS,kBAAA,CAAA,CAAE,SAAQ,CAAC,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,KAAA;AAAA,gBAAM,KAAK,OAAA;AAAA,gBAAQ,KAAK,MAAA;AAAO,kBAAA,CAAA;AAAA,oBAAE,OAAA;AAAA,oBACnhB;AAAA,mBAAC;AAAE,kBAAA,CAAA,CAAE,QAAO,CAAC,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,SAAA;AAAU,kBAAA,CAAA,CAAE,UAAS,CAAC,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,OAAA;AAAQ,kBAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,kBAAA,CAAA,CAAE,WAAU,CAAC,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,QAAA;AAAS,kBAAA,CAAA,CAAE,gBAAc,EAAC,WAAA,EAAY,CAAC,CAAC,EAAE,QAAA,EAAQ;AAAE,kBAAA,CAAA,CAAE,WAAU,CAAC,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,UAAA;AAAW,kBAAA,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,CAAE,WAAU,CAAC,CAAA;AAAA;AAAE,cAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,cAAA,CAAA,GAAE,IAAA;AAAK,cAAA,KAAA,IAAQ,KAAK,CAAA,EAAE,IAAG,CAAA,CAAE,cAAA,CAAe,CAAC,CAAA,EAAE;AAAC,gBAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,gBAAA,UAAA,KAAa,CAAA,GAAE,QAAA,KAAW,OAAO,CAAA,GAAE,CAAA,CAAE,WAAA,KAAc,CAAA,KAAI,IAAA,KAAK,CAAA,CAAE,wBAAA,IAA0B,EAAA,CAAG,CAAA,CAAE,aAAY,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,CAAC,UAAA,EAAW,CAAC,CAAA,CAAA,GAAG,QAAA,KAAW,OAAO,CAAA,IAAG,CAAA,CAAE,WAAA,KAAc,EAAA,GAAG,CAAA,KAAI,IAAA,KAAK,EAAE,wBAAA,IAA0B,EAAA;AAAA,kBAAG,CAAA,CAAE,WAAA;AAAA,kBAC1e,CAAA;AAAA,kBAAE;AAAA,mBAAG,CAAA,GAAE,CAAC,UAAA,EAAW,EAAA,GAAG,CAAC,CAAA,CAAA,GAAG,EAAA,CAAG,cAAA,CAAe,CAAC,KAAG,IAAA,IAAM,CAAA,IAAG,eAAa,CAAA,IAAG,CAAA,CAAE,UAAS,CAAC,CAAA;AAAA,cAAC;AAAC,cAAA,QAAO,CAAA;AAAE,gBAAC,KAAK,OAAA;AAAQ,kBAAA,EAAA,CAAG,CAAC,CAAA;AAAE,kBAAA,EAAA,CAAG,CAAA,EAAE,GAAE,IAAE,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,UAAA;AAAW,kBAAA,EAAA,CAAG,CAAC,CAAA;AAAE,kBAAA,EAAA,CAAG,CAAC,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,QAAA;AAAA,gBAAS,KAAK,QAAA;AAAS,kBAAA;AAAA,gBAAM;AAAQ,kBAAA,UAAA,KAAa,OAAO,CAAA,CAAE,OAAA,KAAU,CAAA,CAAE,OAAA,GAAQ,EAAA,CAAA;AAAA;AAAI,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA,CAAA,CAAE,WAAA,GAAY,CAAA;AAAE,cAAA,IAAA,KAAO,CAAA,KAAI,EAAE,KAAA,IAAO,CAAA,CAAA;AAAA,YAAE,CAAA,MAAK;AAAC,cAAA,CAAA,GAAE,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,cAAA,8BAAA,KAAiC,CAAA,KAAI,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,CAAA;AAAG,cAAA,8BAAA,KAAiC,CAAA,GAAE,QAAA,KAAW,CAAA,IAAG,CAAA,GAAE,CAAA,CAAE,cAAc,KAAK,CAAA,EAAE,CAAA,CAAE,SAAA,GAAU,oBAAA,EAAuB,CAAA,GAAE,EAAE,WAAA,CAAY,CAAA,CAAE,UAAU,CAAA,IACzgB,QAAA,KAAW,OAAO,CAAA,CAAE,EAAA,GAAG,CAAA,GAAE,CAAA,CAAE,aAAA,CAAc,CAAA,EAAE,EAAC,EAAA,EAAG,EAAE,EAAA,EAAG,CAAA,IAAG,CAAA,GAAE,CAAA,CAAE,aAAA,CAAc,CAAC,CAAA,EAAE,QAAA,KAAW,CAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,CAAE,QAAA,GAAS,EAAE,QAAA,GAAS,IAAA,GAAG,CAAA,CAAE,IAAA,KAAO,CAAA,CAAE,IAAA,GAAK,CAAA,CAAE,IAAA,CAAA,CAAA,CAAA,GAAQ,CAAA,GAAE,CAAA,CAAE,eAAA,CAAgB,CAAA,EAAE,CAAC,CAAA;AAAE,cAAA,CAAA,CAAE,EAAE,CAAA,GAAE,CAAA;AAAE,cAAA,CAAA,CAAE,EAAE,CAAA,GAAE,CAAA;AAAE,cAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,KAAA,EAAG,KAAE,CAAA;AAAE,cAAA,CAAA,CAAE,SAAA,GAAU,CAAA;AAAE,cAAA,CAAA,EAAE;AAAC,gBAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,gBAAA,QAAO,CAAA;AAAE,kBAAC,KAAK,QAAA;AAAS,oBAAA,CAAA,CAAE,UAAS,CAAC,CAAA;AAAE,oBAAA,CAAA,CAAE,SAAQ,CAAC,CAAA;AAAE,oBAAA,CAAA,GAAE,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,QAAA;AAAA,kBAAS,KAAK,QAAA;AAAA,kBAAS,KAAK,OAAA;AAAQ,oBAAA,CAAA,CAAE,QAAO,CAAC,CAAA;AAAE,oBAAA,CAAA,GAAE,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,OAAA;AAAA,kBAAQ,KAAK,OAAA;AAAQ,oBAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,MAAA,EAAO,KAAI,CAAA,CAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAC,CAAA;AAAE,oBAAA,CAAA,GAAE,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,QAAA;AAAS,oBAAA,CAAA,CAAE,SAAQ,CAAC,CAAA;AAAE,oBAAA,CAAA,GAAE,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,KAAA;AAAA,kBAAM,KAAK,OAAA;AAAA,kBAAQ,KAAK,MAAA;AAAO,oBAAA,CAAA;AAAA,sBAAE,OAAA;AAAA,sBAClf;AAAA,qBAAC;AAAE,oBAAA,CAAA,CAAE,QAAO,CAAC,CAAA;AAAE,oBAAA,CAAA,GAAE,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,SAAA;AAAU,oBAAA,CAAA,CAAE,UAAS,CAAC,CAAA;AAAE,oBAAA,CAAA,GAAE,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,OAAA;AAAQ,oBAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,oBAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,oBAAA,CAAA,CAAE,WAAU,CAAC,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,QAAA;AAAS,oBAAA,CAAA,GAAE,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,QAAA;AAAS,oBAAA,CAAA,CAAE,gBAAc,EAAC,WAAA,EAAY,CAAC,CAAC,EAAE,QAAA,EAAQ;AAAE,oBAAA,CAAA,GAAE,EAAE,EAAC,EAAE,GAAE,EAAC,KAAA,EAAM,QAAO,CAAA;AAAE,oBAAA,CAAA,CAAE,WAAU,CAAC,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,UAAA;AAAW,oBAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,oBAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,oBAAA,CAAA,CAAE,WAAU,CAAC,CAAA;AAAE,oBAAA;AAAA,kBAAM;AAAQ,oBAAA,CAAA,GAAE,CAAA;AAAA;AAAE,gBAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,KAAI,KAAK,CAAA,EAAE,IAAG,CAAA,CAAE,cAAA,CAAe,CAAC,CAAA,EAAE;AAAC,kBAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,kBAAA,OAAA,KAAU,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,GAAE,yBAAA,KAA4B,CAAA,IAAG,CAAA,GAAE,CAAA,GAAE,CAAA,CAAE,MAAA,GAAO,MAAA,EAAO,IAAA,IAAM,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,IAAG,UAAA,KAAa,CAAA,GAAE,QAAA,KAAW,OAAO,CAAA,GAAA,CAAG,UAAA,KAC7e,CAAA,IAAG,EAAA,KAAK,CAAA,KAAI,EAAA,CAAG,GAAE,CAAC,CAAA,GAAE,QAAA,KAAW,OAAO,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,EAAA,GAAG,CAAC,CAAA,GAAE,gCAAA,KAAmC,CAAA,IAAG,0BAAA,KAA6B,CAAA,IAAG,WAAA,KAAc,CAAA,KAAI,GAAG,cAAA,CAAe,CAAC,CAAA,GAAE,IAAA,IAAM,CAAA,IAAG,UAAA,KAAa,CAAA,IAAG,CAAA,CAAE,QAAA,EAAS,CAAC,CAAA,GAAE,IAAA,IAAM,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA,CAAA;AAAA,gBAAE;AAAC,gBAAA,QAAO,CAAA;AAAE,kBAAC,KAAK,OAAA;AAAQ,oBAAA,EAAA,CAAG,CAAC,CAAA;AAAE,oBAAA,EAAA,CAAG,CAAA,EAAE,GAAE,KAAE,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,UAAA;AAAW,oBAAA,EAAA,CAAG,CAAC,CAAA;AAAE,oBAAA,EAAA,CAAG,CAAC,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,QAAA;AAAS,oBAAA,IAAA,IAAM,CAAA,CAAE,SAAO,CAAA,CAAE,YAAA,CAAa,SAAQ,EAAA,GAAG,EAAA,CAAG,CAAA,CAAE,KAAK,CAAC,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,QAAA;AAAS,oBAAA,CAAA,CAAE,QAAA,GAAS,CAAC,CAAC,CAAA,CAAE,QAAA;AAAS,oBAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,oBAAA,IAAA,IAAM,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAC,CAAA,CAAE,QAAA,EAAS,CAAA,EAAE,KAAE,CAAA,GAAE,IAAA,IAAM,CAAA,CAAE,YAAA,IAAc,EAAA;AAAA,sBAAG,CAAA;AAAA,sBAAE,CAAC,CAAC,CAAA,CAAE,QAAA;AAAA,sBAAS,CAAA,CAAE,YAAA;AAAA,sBAClf;AAAA,qBAAE;AAAE,oBAAA;AAAA,kBAAM;AAAQ,oBAAA,UAAA,KAAa,OAAO,CAAA,CAAE,OAAA,KAAU,CAAA,CAAE,OAAA,GAAQ,EAAA,CAAA;AAAA;AAAI,gBAAA,QAAO,CAAA;AAAE,kBAAC,KAAK,QAAA;AAAA,kBAAS,KAAK,OAAA;AAAA,kBAAQ,KAAK,QAAA;AAAA,kBAAS,KAAK,UAAA;AAAW,oBAAA,CAAA,GAAE,CAAC,CAAC,CAAA,CAAE,SAAA;AAAU,oBAAA,MAAM,CAAA;AAAA,kBAAE,KAAK,KAAA;AAAM,oBAAA,CAAA,GAAE,IAAA;AAAG,oBAAA,MAAM,CAAA;AAAA,kBAAE;AAAQ,oBAAA,CAAA,GAAE,KAAA;AAAA;AAAE,cAAC;AAAC,cAAA,CAAA,KAAI,EAAE,KAAA,IAAO,CAAA,CAAA;AAAA,YAAE;AAAC,YAAA,IAAA,KAAO,EAAE,GAAA,KAAM,CAAA,CAAE,KAAA,IAAO,GAAA,EAAI,EAAE,KAAA,IAAO,OAAA,CAAA;AAAA,UAAQ;AAAC,UAAA,CAAA,CAAE,CAAC,CAAA;AAAE,UAAA,OAAO,IAAA;AAAA,QAAK,KAAK,CAAA;AAAE,UAAA,IAAG,CAAA,IAAG,QAAM,CAAA,CAAE,SAAA,KAAa,CAAA,EAAE,CAAA,EAAE,CAAA,CAAE,aAAA,EAAc,CAAC,CAAA;AAAA,eAAM;AAAC,YAAA,IAAG,QAAA,KAAW,OAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,WAAU,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAA,CAAG,GAAG,OAAO,CAAA;AAAE,YAAA,EAAA,CAAG,GAAG,OAAO,CAAA;AAAE,YAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE;AAAC,cAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,cAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,cAAA,CAAA,CAAE,EAAE,CAAA,GAAE,CAAA;AAAE,cAAA,IAAG,CAAA,GAAE,EAAE,SAAA,KAAY,CAAA,EAAA;AAAE,gBAAA,IAAG,IACvf,EAAA,EAAG,IAAA,KAAO,CAAA,EAAE,QAAO,EAAE,GAAA;AAAI,kBAAC,KAAK,CAAA;AAAE,oBAAA,EAAA,CAAG,EAAE,SAAA,EAAU,CAAA,EAAE,CAAA,MAAK,CAAA,CAAE,OAAK,CAAA,CAAE,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,CAAA;AAAE,oBAAA,IAAA,KAAK,CAAA,CAAE,aAAA,CAAc,wBAAA,IAA0B,EAAA,CAAG,CAAA,CAAE,WAAU,CAAA,EAAE,CAAA,MAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAE,CAAA;AAAA;AAAC,cAAA;AAAC,cAAA,CAAA,KAAI,EAAE,KAAA,IAAO,CAAA,CAAA;AAAA,YAAE,OAAM,CAAA,GAAA,CAAG,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,IAAE,CAAA,CAAE,aAAA,EAAe,cAAA,CAAe,CAAC,GAAE,CAAA,CAAE,EAAE,CAAA,GAAE,CAAA,EAAE,EAAE,SAAA,GAAU,CAAA;AAAA,UAAC;AAAC,UAAA,CAAA,CAAE,CAAC,CAAA;AAAE,UAAA,OAAO,IAAA;AAAA,QAAK,KAAK,EAAA;AAAG,UAAA,CAAA,CAAE,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,UAAA,IAAG,IAAA,KAAO,KAAG,IAAA,KAAO,CAAA,CAAE,iBAAe,IAAA,KAAO,CAAA,CAAE,cAAc,UAAA,EAAW;AAAC,YAAA,IAAG,KAAG,IAAA,KAAO,EAAA,IAAI,OAAK,CAAA,CAAE,IAAA,GAAK,MAAI,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,GAAA,CAAA,MAAQ,EAAE,EAAA,IAAK,CAAA,CAAE,KAAA,IAAO,OAAM,CAAA,GAAE,KAAA;AAAA,iBAAA,IAAW,CAAA,GAAE,GAAG,CAAC,CAAA,EAAE,SAAO,CAAA,IAAG,IAAA,KAAO,EAAE,UAAA,EAAW;AAAC,cAAA,IAAG,SAC5f,CAAA,EAAE;AAAC,gBAAA,IAAG,CAAC,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,gBAAA,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,UAAA,GAAW,IAAA;AAAK,gBAAA,IAAG,CAAC,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,gBAAA,CAAA,CAAE,EAAE,CAAA,GAAE,CAAA;AAAA,cAAC,CAAA,MAAM,EAAA,EAAG,EAAE,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,GAAA,CAAA,KAAO,CAAA,CAAE,aAAA,GAAc,IAAA,CAAA,EAAM,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,cAAA,CAAA,CAAE,CAAC,CAAA;AAAE,cAAA,CAAA,GAAE,KAAA;AAAA,YAAE,CAAA,eAAa,EAAA,KAAK,EAAA,CAAG,EAAE,CAAA,EAAE,EAAA,GAAG,OAAM,CAAA,GAAE,IAAA;AAAG,YAAA,IAAG,CAAC,CAAA,EAAE,OAAO,CAAA,CAAE,KAAA,GAAM,QAAM,CAAA,GAAE,IAAA;AAAA,UAAI;AAAC,UAAA,IAAG,OAAK,CAAA,CAAE,KAAA,GAAM,MAAK,OAAO,CAAA,CAAE,QAAM,CAAA,EAAE,CAAA;AAAE,UAAA,CAAA,GAAE,IAAA,KAAO,CAAA;AAAE,UAAA,CAAA,MAAK,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,aAAA,CAAA,IAAgB,MAAI,CAAA,CAAE,KAAA,CAAM,KAAA,IAAO,IAAA,EAAK,CAAA,MAAK,CAAA,CAAE,OAAK,CAAA,CAAA,KAAK,IAAA,KAAO,CAAA,IAAG,CAAA,MAAK,CAAA,CAAE,OAAA,GAAQ,KAAG,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,CAAA,CAAA,GAAG,EAAA,EAAG,CAAA,CAAA;AAAI,UAAA,IAAA,KAAO,CAAA,CAAE,WAAA,KAAc,CAAA,CAAE,KAAA,IAAO,CAAA,CAAA;AAAG,UAAA,CAAA,CAAE,CAAC,CAAA;AAAE,UAAA,OAAO,IAAA;AAAA,QAAK,KAAK,CAAA;AAAE,UAAA,OAAO,EAAA,EAAG,EACxf,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,EAAE,SAAA,CAAU,aAAa,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA;AAAA,QAAK,KAAK,EAAA;AAAG,UAAA,OAAO,GAAG,CAAA,CAAE,IAAA,CAAK,QAAQ,CAAA,EAAE,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA;AAAA,QAAK,KAAK,EAAA;AAAG,UAAA,OAAO,EAAA,CAAG,EAAE,IAAI,CAAA,IAAG,IAAG,EAAE,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA;AAAA,QAAK,KAAK,EAAA;AAAG,UAAA,CAAA,CAAE,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,UAAA,IAAG,IAAA,KAAO,CAAA,EAAE,OAAO,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA;AAAK,UAAA,CAAA,GAAE,CAAA,MAAK,EAAE,KAAA,GAAM,GAAA,CAAA;AAAK,UAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,UAAA,IAAG,SAAO,CAAA,EAAE,IAAG,CAAA,EAAE,EAAA,CAAG,GAAE,KAAE,CAAA;AAAA,eAAM;AAAC,YAAA,IAAG,CAAA,KAAI,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,GAAA,CAAA,EAAK,KAAI,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,SAAO,CAAA,IAAG;AAAC,cAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,cAAA,IAAG,SAAO,CAAA,EAAE;AAAC,gBAAA,CAAA,CAAE,KAAA,IAAO,GAAA;AAAI,gBAAA,EAAA,CAAG,GAAE,KAAE,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,gBAAA,IAAA,KAAO,CAAA,KAAI,CAAA,CAAE,WAAA,GAAY,CAAA,EAAE,EAAE,KAAA,IAAO,CAAA,CAAA;AAAG,gBAAA,CAAA,CAAE,YAAA,GAAa,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,KAAI,CAAA,GAAE,EAAE,KAAA,EAAM,IAAA,KAAO,KAAG,CAAA,GAAE,CAAA,EAAE,IAAE,CAAA,EAAE,CAAA,CAAE,SAAO,QAAA,EAC7e,CAAA,GAAE,EAAE,SAAA,EAAU,IAAA,KAAO,KAAG,CAAA,CAAE,UAAA,GAAW,GAAE,CAAA,CAAE,KAAA,GAAM,GAAE,CAAA,CAAE,KAAA,GAAM,MAAK,CAAA,CAAE,YAAA,GAAa,GAAE,CAAA,CAAE,aAAA,GAAc,MAAK,CAAA,CAAE,aAAA,GAAc,MAAK,CAAA,CAAE,WAAA,GAAY,MAAK,CAAA,CAAE,YAAA,GAAa,MAAK,CAAA,CAAE,SAAA,GAAU,IAAA,KAAO,CAAA,CAAE,UAAA,GAAW,CAAA,CAAE,YAAW,CAAA,CAAE,KAAA,GAAM,EAAE,KAAA,EAAM,CAAA,CAAE,QAAM,CAAA,CAAE,KAAA,EAAM,EAAE,YAAA,GAAa,CAAA,EAAE,EAAE,SAAA,GAAU,IAAA,EAAK,EAAE,aAAA,GAAc,CAAA,CAAE,eAAc,CAAA,CAAE,aAAA,GAAc,CAAA,CAAE,aAAA,EAAc,CAAA,CAAE,WAAA,GAAY,EAAE,WAAA,EAAY,CAAA,CAAE,OAAK,CAAA,CAAE,IAAA,EAAK,IAAE,CAAA,CAAE,YAAA,EAAa,EAAE,YAAA,GAAa,IAAA,KAAO,IAAE,IAAA,GAAK,EAAC,OAAM,CAAA,CAAE,KAAA,EAAM,cAAa,CAAA,CAAE,YAAA,EAAY,CAAA,EAAG,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,gBAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,OAAA,GAAQ,CAAA,GAAE,CAAC,CAAA;AAAE,gBAAA,OAAO,CAAA,CAAE,KAAA;AAAA,cAAK;AAAC,cAAA,CAAA,GAClgB,CAAA,CAAE,OAAA;AAAA,YAAO;AAAC,YAAA,IAAA,KAAO,CAAA,CAAE,IAAA,IAAM,CAAA,EAAE,GAAE,OAAK,CAAA,CAAE,KAAA,IAAO,GAAA,EAAI,CAAA,GAAE,MAAG,EAAA,CAAG,CAAA,EAAE,KAAE,CAAA,EAAE,EAAE,KAAA,GAAM,OAAA,CAAA;AAAA,UAAQ;AAAA,eAAK;AAAC,YAAA,IAAG,CAAC,GAAE,IAAG,CAAA,GAAE,GAAG,CAAC,CAAA,EAAE,SAAO,CAAA,EAAE;AAAC,cAAA,IAAG,CAAA,CAAE,KAAA,IAAO,GAAA,EAAI,CAAA,GAAE,MAAG,CAAA,GAAE,CAAA,CAAE,WAAA,EAAY,IAAA,KAAO,MAAI,CAAA,CAAE,WAAA,GAAY,CAAA,EAAE,CAAA,CAAE,SAAO,CAAA,CAAA,EAAG,EAAA,CAAG,CAAA,EAAE,IAAE,CAAA,EAAE,IAAA,KAAO,CAAA,CAAE,IAAA,IAAM,aAAW,CAAA,CAAE,QAAA,IAAU,CAAC,CAAA,CAAE,aAAW,CAAC,CAAA,EAAE,OAAO,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA;AAAA,YAAI,OAAM,CAAA,GAAE,CAAA,KAAI,CAAA,CAAE,kBAAA,GAAmB,MAAI,UAAA,KAAa,CAAA,KAAI,EAAE,KAAA,IAAO,GAAA,EAAI,IAAE,IAAA,EAAG,EAAA,CAAG,GAAE,KAAE,CAAA,EAAE,EAAE,KAAA,GAAM,OAAA,CAAA;AAAS,YAAA,CAAA,CAAE,WAAA,IAAa,EAAE,OAAA,GAAQ,CAAA,CAAE,OAAM,CAAA,CAAE,KAAA,GAAM,MAAI,CAAA,GAAE,CAAA,CAAE,MAAK,IAAA,KAAO,CAAA,GAAE,EAAE,OAAA,GAAQ,CAAA,GAAE,EAAE,KAAA,GAAM,CAAA,EAAE,EAAE,IAAA,GAAK,CAAA,CAAA;AAAA,UAAE;AAAC,UAAA,IAAG,IAAA,KAAO,CAAA,CAAE,IAAA,EAAK,OAAO,IAAE,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,SAAA,GAC9e,CAAA,EAAE,CAAA,CAAE,IAAA,GAAK,CAAA,CAAE,SAAQ,CAAA,CAAE,kBAAA,GAAmB,CAAA,EAAE,EAAE,CAAA,CAAE,OAAA,GAAQ,IAAA,EAAK,CAAA,GAAE,EAAE,OAAA,EAAQ,CAAA,CAAE,CAAA,EAAE,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,CAAA,GAAE,CAAC,CAAA,EAAE,CAAA;AAAE,UAAA,CAAA,CAAE,CAAC,CAAA;AAAE,UAAA,OAAO,IAAA;AAAA,QAAK,KAAK,EAAA;AAAA,QAAG,KAAK,EAAA;AAAG,UAAA,OAAO,EAAA,EAAG,EAAE,CAAA,GAAE,IAAA,KAAO,EAAE,aAAA,EAAc,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,EAAE,aAAA,KAAgB,CAAA,KAAI,CAAA,CAAE,KAAA,IAAO,OAAM,CAAA,IAAG,CAAA,MAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA,GAAG,CAAA,MAAK,EAAA,GAAG,UAAA,CAAA,KAAc,EAAE,CAAC,CAAA,EAAE,CAAA,CAAE,YAAA,GAAa,MAAI,CAAA,CAAE,KAAA,IAAO,IAAA,CAAA,CAAA,GAAO,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA;AAAA,QAAK,KAAK,EAAA;AAAG,UAAA,OAAO,IAAA;AAAA,QAAK,KAAK,EAAA;AAAG,UAAA,OAAO,IAAA;AAAA;AAAK,MAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAA,EAAI,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,IAAE;AAClX,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,CAAC,CAAA;AAAE,MAAA,QAAO,EAAE,GAAA;AAAI,QAAC,KAAK,CAAA;AAAE,UAAA,OAAO,GAAG,CAAA,CAAE,IAAI,CAAA,IAAG,EAAA,IAAK,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,CAAA,GAAE,SAAO,CAAA,CAAE,KAAA,GAAM,CAAA,GAAE,MAAA,GAAO,KAAI,CAAA,IAAG,IAAA;AAAA,QAAK,KAAK,CAAA;AAAE,UAAA,OAAO,EAAA,EAAG,EAAE,CAAA,CAAE,EAAE,CAAA,EAAE,EAAE,CAAC,CAAA,EAAE,EAAA,EAAG,EAAE,CAAA,GAAE,CAAA,CAAE,OAAM,CAAA,MAAK,CAAA,GAAE,KAAA,CAAA,IAAQ,CAAA,MAAK,CAAA,GAAE,GAAA,CAAA,IAAM,EAAE,KAAA,GAAM,CAAA,GAAE,MAAA,GAAO,GAAA,EAAI,CAAA,IAAG,IAAA;AAAA,QAAK,KAAK,CAAA;AAAE,UAAA,OAAO,EAAA,CAAG,CAAC,CAAA,EAAE,IAAA;AAAA,QAAK,KAAK,EAAA;AAAG,UAAA,CAAA,CAAE,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,UAAA,IAAG,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,UAAA,EAAW;AAAC,YAAA,IAAG,SAAO,CAAA,CAAE,SAAA,QAAgB,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,YAAA,EAAA,EAAG;AAAA,UAAC;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,UAAA,OAAO,IAAE,KAAA,IAAO,CAAA,CAAE,QAAM,CAAA,GAAE,MAAA,GAAO,KAAI,CAAA,IAAG,IAAA;AAAA,QAAK,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,CAAE,CAAC,CAAA,EAAE,IAAA;AAAA,QAAK,KAAK,CAAA;AAAE,UAAA,OAAO,IAAG,EAAE,IAAA;AAAA,QAAK,KAAK,EAAA;AAAG,UAAA,OAAO,EAAA,CAAG,CAAA,CAAE,IAAA,CAAK,QAAQ,CAAA,EAAE,IAAA;AAAA,QAAK,KAAK,EAAA;AAAA,QAAG,KAAK,EAAA;AAAG,UAAA,OAAO,IAAG,EAC7gB,IAAA;AAAA,QAAK,KAAK,EAAA;AAAG,UAAA,OAAO,IAAA;AAAA,QAAK;AAAQ,UAAA,OAAO,IAAA;AAAA;AAAI,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,KAAA;AAAP,IAAA,IAAU,CAAA,GAAE,KAAA;AAAZ,IAAA,IAAe,EAAA,GAAG,UAAA,KAAa,OAAO,OAAA,GAAQ,OAAA,GAAQ,GAAA;AAAtD,IAAA,IAA0D,CAAA,GAAE,IAAA;AAAK,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,GAAA;AAAI,MAAA,IAAG,SAAO,CAAA,EAAE,IAAG,UAAA,KAAa,OAAO,GAAE,IAAG;AAAC,QAAA,CAAA,CAAE,IAAI,CAAA;AAAA,MAAC,SAAO,CAAA,EAAE;AAAC,QAAA,CAAA,CAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,MAAC;AAAA,aAAQ,OAAA,GAAQ,IAAA;AAAA,IAAI;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG;AAAC,QAAA,CAAA,EAAE;AAAA,MAAC,SAAO,CAAA,EAAE;AAAC,QAAA,CAAA,CAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA,GAAG,KAAA;AACxR,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,GAAG,EAAA;AAAG,MAAA,CAAA,GAAE,EAAA,EAAG;AAAE,MAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE;AAAC,QAAA,IAAG,gBAAA,IAAmB,CAAA,EAAE,IAAI,CAAA,GAAE,EAAC,OAAM,CAAA,CAAE,cAAA,EAAe,GAAA,EAAI,CAAA,CAAE,YAAA,EAAY;AAAA,aAAO,CAAA,EAAE;AAAC,UAAA,CAAA,GAAA,CAAG,CAAA,GAAE,CAAA,CAAE,aAAA,KAAgB,CAAA,CAAE,WAAA,IAAa,MAAA;AAAO,UAAA,IAAI,CAAA,GAAE,CAAA,CAAE,YAAA,IAAc,CAAA,CAAE,YAAA,EAAa;AAAE,UAAA,IAAG,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,UAAA,EAAW;AAAC,YAAA,CAAA,GAAE,CAAA,CAAE,UAAA;AAAW,YAAA,IAAI,CAAA,GAAE,CAAA,CAAE,YAAA,EAAa,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,YAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,YAAA,IAAG;AAAC,cAAA,CAAA,CAAE,UAAS,CAAA,CAAE,QAAA;AAAA,YAAQ,SAAO,CAAA,EAAE;AAAC,cAAA,CAAA,GAAE,IAAA;AAAK,cAAA,MAAM,CAAA;AAAA,YAAC;AAAC,YAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,EAAG,CAAA,GAAE,EAAA,EAAG,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,IAAA;AAAK,YAAA,CAAA,EAAE,WAAO;AAAC,cAAA,KAAA,IAAQ,CAAA,MAAI;AAAC,gBAAA,CAAA,KAAI,KAAG,CAAA,KAAI,CAAA,IAAG,MAAI,CAAA,CAAE,QAAA,KAAW,IAAE,CAAA,GAAE,CAAA,CAAA;AAAG,gBAAA,CAAA,KAAI,KAAG,CAAA,KAAI,CAAA,IAAG,MAAI,CAAA,CAAE,QAAA,KAAW,IAAE,CAAA,GAAE,CAAA,CAAA;AAAG,gBAAA,CAAA,KAAI,CAAA,CAAE,QAAA,KAAW,CAAA,IACnf,CAAA,CAAE,SAAA,CAAU,MAAA,CAAA;AAAQ,gBAAA,IAAG,IAAA,MAAQ,CAAA,GAAE,CAAA,CAAE,UAAA,CAAA,EAAY;AAAM,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA;AAAA,cAAC;AAAC,cAAA,WAAO;AAAC,gBAAA,IAAG,CAAA,KAAI,GAAE,MAAM,CAAA;AAAE,gBAAA,CAAA,KAAI,CAAA,IAAG,EAAE,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,CAAA,CAAA;AAAG,gBAAA,CAAA,KAAI,CAAA,IAAG,EAAE,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,CAAA,CAAA;AAAG,gBAAA,IAAG,IAAA,MAAQ,CAAA,GAAE,CAAA,CAAE,WAAA,CAAA,EAAa;AAAM,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA,CAAE,UAAA;AAAA,cAAU;AAAC,cAAA,CAAA,GAAE,CAAA;AAAA,YAAC;AAAC,YAAA,CAAA,GAAE,EAAA,KAAK,KAAG,EAAA,KAAK,CAAA,GAAE,OAAK,EAAC,KAAA,EAAM,CAAA,EAAE,GAAA,EAAI,CAAA,EAAC;AAAA,UAAC,OAAM,CAAA,GAAE,IAAA;AAAA,QAAI;AAAC,QAAA,CAAA,GAAE,CAAA,IAAG,EAAC,KAAA,EAAM,CAAA,EAAE,KAAI,CAAA,EAAC;AAAA,MAAC,OAAM,CAAA,GAAE,IAAA;AAAK,MAAA,EAAA,GAAG,EAAC,WAAA,EAAY,CAAA,EAAE,cAAA,EAAe,CAAA,EAAC;AAAE,MAAA,EAAA,GAAG,KAAA;AAAG,MAAA,KAAI,IAAE,CAAA,EAAE,IAAA,KAAO,KAAG,IAAG,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA,CAAE,OAAM,CAAA,MAAK,CAAA,CAAE,eAAa,IAAA,CAAA,IAAO,IAAA,KAAO,GAAE,CAAA,CAAE,MAAA,GAAO,GAAE,CAAA,GAAE,CAAA;AAAA,WAAO,OAAK,SAAO,CAAA,IAAG;AAAC,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,IAAG;AAAC,UAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,UAAA,IAAG,OAAK,CAAA,CAAE,KAAA,GAAM,IAAA,CAAA,EAAM,QAAO,EAAE,GAAA;AAAI,YAAC,KAAK,CAAA;AAAA,YAAE,KAAK,EAAA;AAAA,YAAG,KAAK,EAAA;AAAG,cAAA;AAAA,YACxf,KAAK,CAAA;AAAE,cAAA,IAAG,SAAO,CAAA,EAAE;AAAC,gBAAA,IAAI,CAAA,GAAE,EAAE,aAAA,EAAc,CAAA,GAAE,EAAE,aAAA,EAAc,CAAA,GAAE,CAAA,CAAE,SAAA,EAAU,CAAA,GAAE,CAAA,CAAE,wBAAwB,CAAA,CAAE,WAAA,KAAc,EAAE,IAAA,GAAK,CAAA,GAAE,GAAG,CAAA,CAAE,IAAA,EAAK,CAAC,CAAA,EAAE,CAAC,CAAA;AAAE,gBAAA,CAAA,CAAE,mCAAA,GAAoC,CAAA;AAAA,cAAC;AAAC,cAAA;AAAA,YAAM,KAAK,CAAA;AAAE,cAAA,IAAI,CAAA,GAAE,EAAE,SAAA,CAAU,aAAA;AAAc,cAAA,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,CAAA,CAAE,WAAA,GAAY,EAAA,GAAG,CAAA,KAAI,CAAA,CAAE,QAAA,IAAU,CAAA,CAAE,eAAA,IAAiB,CAAA,CAAE,WAAA,CAAY,EAAE,eAAe,CAAA;AAAE,cAAA;AAAA,YAAM,KAAK,CAAA;AAAA,YAAE,KAAK,CAAA;AAAA,YAAE,KAAK,CAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA;AAAA,YAAM;AAAQ,cAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA;AAAE,QAAC,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,QAAC;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,CAAE,SAAO,CAAA,CAAE,MAAA;AAAO,UAAA,CAAA,GAAE,CAAA;AAAE,UAAA;AAAA,QAAK;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,MAAM;AAAC,MAAA,CAAA,GAAE,EAAA;AAAG,MAAA,EAAA,GAAG,KAAA;AAAG,MAAA,OAAO,CAAA;AAAA,IAAC;AAC3f,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,MAAA,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,UAAA,GAAW,IAAA;AAAK,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,IAAE,CAAA,CAAE,IAAA;AAAK,QAAA,GAAE;AAAC,UAAA,IAAA,CAAI,CAAA,CAAE,GAAA,GAAI,CAAA,MAAK,CAAA,EAAE;AAAC,YAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,YAAA,CAAA,CAAE,OAAA,GAAQ,MAAA;AAAO,YAAA,MAAA,KAAS,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,UAAC;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAA,QAAI,SAAO,CAAA,KAAI,CAAA;AAAA,MAAE;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,MAAA,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,UAAA,GAAW,IAAA;AAAK,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,IAAE,CAAA,CAAE,IAAA;AAAK,QAAA,GAAE;AAAC,UAAA,IAAA,CAAI,CAAA,CAAE,GAAA,GAAI,CAAA,MAAK,CAAA,EAAE;AAAC,YAAA,IAAI,IAAE,CAAA,CAAE,MAAA;AAAO,YAAA,CAAA,CAAE,UAAQ,CAAA,EAAE;AAAA,UAAC;AAAC,UAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAA,QAAI,SAAO,CAAA,KAAI,CAAA;AAAA,MAAE;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,GAAA;AAAI,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,QAAO,EAAE,GAAA;AAAI,UAAC,KAAK,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA;AAAE,YAAA;AAAA,UAAM;AAAQ,YAAA,CAAA,GAAE,CAAA;AAAA;AAAE,QAAA,UAAA,KAAa,OAAO,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,GAAE,EAAE,OAAA,GAAQ,CAAA;AAAA,MAAC;AAAA,IAAC;AAClf,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAA,KAAO,CAAA,KAAI,CAAA,CAAE,SAAA,GAAU,IAAA,EAAK,GAAG,CAAC,CAAA,CAAA;AAAG,MAAA,CAAA,CAAE,KAAA,GAAM,IAAA;AAAK,MAAA,CAAA,CAAE,SAAA,GAAU,IAAA;AAAK,MAAA,CAAA,CAAE,OAAA,GAAQ,IAAA;AAAK,MAAA,CAAA,KAAI,CAAA,CAAE,GAAA,KAAM,CAAA,GAAE,CAAA,CAAE,SAAA,EAAU,SAAO,CAAA,KAAI,OAAO,CAAA,CAAE,EAAE,CAAA,EAAE,OAAO,EAAE,EAAE,CAAA,EAAE,OAAO,CAAA,CAAE,EAAE,CAAA,EAAE,OAAO,CAAA,CAAE,EAAE,CAAA,EAAE,OAAO,CAAA,CAAE,EAAE,CAAA,CAAA,CAAA;AAAI,MAAA,CAAA,CAAE,SAAA,GAAU,IAAA;AAAK,MAAA,CAAA,CAAE,MAAA,GAAO,IAAA;AAAK,MAAA,CAAA,CAAE,YAAA,GAAa,IAAA;AAAK,MAAA,CAAA,CAAE,aAAA,GAAc,IAAA;AAAK,MAAA,CAAA,CAAE,aAAA,GAAc,IAAA;AAAK,MAAA,CAAA,CAAE,YAAA,GAAa,IAAA;AAAK,MAAA,CAAA,CAAE,SAAA,GAAU,IAAA;AAAK,MAAA,CAAA,CAAE,WAAA,GAAY,IAAA;AAAA,IAAI;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAO,MAAI,CAAA,CAAE,GAAA,IAAK,MAAI,CAAA,CAAE,GAAA,IAAK,MAAI,CAAA,CAAE,GAAA;AAAA,IAAG;AACna,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,EAAE,WAAO;AAAC,QAAA,OAAK,IAAA,KAAO,EAAE,OAAA,IAAS;AAAC,UAAA,IAAG,SAAO,CAAA,CAAE,MAAA,IAAQ,GAAG,CAAA,CAAE,MAAM,GAAE,OAAO,IAAA;AAAK,UAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,QAAM;AAAC,QAAA,CAAA,CAAE,OAAA,CAAQ,SAAO,CAAA,CAAE,MAAA;AAAO,QAAA,KAAI,CAAA,GAAE,CAAA,CAAE,OAAA,EAAQ,CAAA,KAAI,CAAA,CAAE,GAAA,IAAK,CAAA,KAAI,CAAA,CAAE,GAAA,IAAK,EAAA,KAAK,CAAA,CAAE,GAAA,IAAK;AAAC,UAAA,IAAG,CAAA,CAAE,KAAA,GAAM,CAAA,EAAE,SAAS,CAAA;AAAE,UAAA,IAAG,SAAO,CAAA,CAAE,KAAA,IAAO,CAAA,KAAI,CAAA,CAAE,KAAI,SAAS,CAAA;AAAA,eAAO,CAAA,CAAE,KAAA,CAAM,MAAA,GAAO,CAAA,EAAE,IAAE,CAAA,CAAE,KAAA;AAAA,QAAK;AAAC,QAAA,IAAG,EAAE,CAAA,CAAE,KAAA,GAAM,CAAA,CAAA,SAAU,CAAA,CAAE,SAAA;AAAA,MAAS;AAAA,IAAC;AACzT,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,GAAA;AAAI,MAAA,IAAG,CAAA,KAAI,KAAG,CAAA,KAAI,CAAA,MAAI,CAAA,CAAE,SAAA,EAAU,CAAA,GAAE,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,EAAE,UAAA,CAAW,YAAA,CAAa,CAAA,EAAE,CAAC,CAAA,GAAE,CAAA,CAAE,aAAa,CAAA,EAAE,CAAC,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,QAAA,IAAU,IAAE,CAAA,CAAE,UAAA,EAAW,EAAE,YAAA,CAAa,CAAA,EAAE,CAAC,CAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,CAAE,WAAA,CAAY,CAAC,IAAG,CAAA,GAAE,CAAA,CAAE,mBAAA,EAAoB,IAAA,KAAO,CAAA,IAAG,MAAA,KAAS,KAAG,IAAA,KAAO,CAAA,CAAE,OAAA,KAAU,CAAA,CAAE,OAAA,GAAQ,EAAA,CAAA,CAAA;AAAA,WAAA,IAAa,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,SAAO,CAAA,CAAA,EAAG,KAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,GAAE,CAAA,GAAE,CAAA,CAAE,OAAA,EAAQ,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,GAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,IAAO;AAC1X,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,GAAA;AAAI,MAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,MAAI,CAAA,CAAE,SAAA,EAAU,CAAA,GAAE,CAAA,CAAE,aAAa,CAAA,EAAE,CAAC,CAAA,GAAE,CAAA,CAAE,YAAY,CAAC,CAAA;AAAA,WAAA,IAAU,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,SAAO,CAAA,CAAA,EAAG,KAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,GAAE,CAAA,GAAE,CAAA,CAAE,OAAA,EAAQ,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,GAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,IAAO;AAAC,IAAA,IAAIM,EAAAA,GAAE,IAAA;AAAN,IAAA,IAAW,EAAA,GAAG,KAAA;AAAG,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,KAAI,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,IAAO;AACnR,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,IAAI,UAAA,KAAa,OAAO,EAAA,CAAG,sBAAqB,IAAG;AAAC,QAAA,EAAA,CAAG,oBAAA,CAAqB,IAAG,CAAC,CAAA;AAAA,MAAC,SAAO,CAAA,EAAE;AAAA,MAAC;AAAC,MAAA,QAAO,EAAE,GAAA;AAAI,QAAC,KAAK,CAAA;AAAE,UAAA,CAAA,IAAG,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,IAAI,CAAA,GAAEA,IAAE,CAAA,GAAE,EAAA;AAAG,UAAAA,EAAAA,GAAE,IAAA;AAAK,UAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,UAAAA,EAAAA,GAAE,CAAA;AAAE,UAAA,EAAA,GAAG,CAAA;AAAE,UAAA,IAAA,KAAOA,EAAAA,KAAI,MAAI,CAAA,GAAEA,EAAAA,EAAE,IAAE,CAAA,CAAE,SAAA,EAAU,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,CAAA,CAAE,WAAW,WAAA,CAAY,CAAC,IAAE,CAAA,CAAE,WAAA,CAAY,CAAC,CAAA,IAAGA,EAAAA,CAAE,WAAA,CAAY,CAAA,CAAE,SAAS,CAAA,CAAA;AAAG,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,IAAA,KAAOA,EAAAA,KAAI,EAAA,IAAI,CAAA,GAAEA,EAAAA,EAAE,CAAA,GAAE,CAAA,CAAE,SAAA,EAAU,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,EAAA,CAAG,CAAA,CAAE,UAAA,EAAW,CAAC,CAAA,GAAE,CAAA,KAAI,CAAA,CAAE,QAAA,IAAU,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,CAAC,CAAA,IAAG,EAAA,CAAGA,EAAAA,EAAE,CAAA,CAAE,SAAS,CAAA,CAAA;AAAG,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,CAAA,GAAEA,EAAAA;AAAE,UAAA,CAAA,GAAE,EAAA;AAAG,UAAAA,EAAAA,GAAE,EAAE,SAAA,CAAU,aAAA;AAAc,UAAA,EAAA,GAAG,IAAA;AAClf,UAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,UAAAA,EAAAA,GAAE,CAAA;AAAE,UAAA,EAAA,GAAG,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,CAAA;AAAA,QAAE,KAAK,EAAA;AAAA,QAAG,KAAK,EAAA;AAAA,QAAG,KAAK,EAAA;AAAG,UAAA,IAAG,CAAC,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,WAAA,EAAY,IAAA,KAAO,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,UAAA,EAAW,IAAA,KAAO,CAAA,CAAA,CAAA,EAAI;AAAC,YAAA,CAAA,GAAE,IAAE,CAAA,CAAE,IAAA;AAAK,YAAA,GAAE;AAAC,cAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,cAAA,CAAA,GAAE,CAAA,CAAE,GAAA;AAAI,cAAA,MAAA,KAAS,CAAA,KAAI,CAAA,MAAK,CAAA,GAAE,CAAA,CAAA,GAAG,GAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,GAAE,OAAK,CAAA,GAAE,CAAA,CAAA,IAAI,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA,CAAA;AAAG,cAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAA,YAAI,SAAO,CAAA,KAAI,CAAA;AAAA,UAAE;AAAC,UAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,IAAG,CAAC,CAAA,KAAI,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,SAAA,EAAU,UAAA,KAAa,OAAO,CAAA,CAAE,uBAAsB,IAAG;AAAC,YAAA,CAAA,CAAE,KAAA,GAAM,EAAE,aAAA,EAAc,CAAA,CAAE,QAAM,CAAA,CAAE,aAAA,EAAc,EAAE,oBAAA,EAAqB;AAAA,UAAC,SAAO,CAAA,EAAE;AAAC,YAAA,CAAA,CAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,UAAC;AAAC,UAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,CAAA,CAAE,OAAK,CAAA,IAAG,CAAA,GAAA,CAAG,IAAE,CAAA,KAAI,IAAA,KAChf,EAAE,aAAA,EAAc,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,KAAG,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM;AAAQ,UAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA;AAAC,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,CAAA,CAAE,WAAA,GAAY,IAAA;AAAK,QAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,IAAA,KAAO,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,SAAA,GAAU,IAAI,EAAA,EAAA,CAAA;AAAI,QAAA,CAAA,CAAE,OAAA,CAAQ,SAASZ,EAAAA,EAAE;AAAC,UAAA,IAAI,CAAA,GAAE,EAAA,CAAG,IAAA,CAAK,IAAA,EAAK,GAAEA,EAAC,CAAA;AAAE,UAAA,CAAA,CAAE,GAAA,CAAIA,EAAC,CAAA,KAAI,CAAA,CAAE,GAAA,CAAIA,EAAC,CAAA,EAAEA,EAAAA,CAAE,IAAA,CAAK,CAAA,EAAE,CAAC,CAAA,CAAA;AAAA,QAAE,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AACzQ,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAG,IAAA,KAAO,GAAE,KAAA,IAAQ,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA,CAAE,QAAO,CAAA,EAAA,EAAI;AAAC,QAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,QAAA,IAAG;AAAC,UAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA;AAAE,UAAA,CAAA,EAAE,OAAK,SAAO,CAAA,IAAG;AAAC,YAAA,QAAO,EAAE,GAAA;AAAI,cAAC,KAAK,CAAA;AAAE,gBAAAY,KAAE,CAAA,CAAE,SAAA;AAAU,gBAAA,EAAA,GAAG,KAAA;AAAG,gBAAA,MAAM,CAAA;AAAA,cAAE,KAAK,CAAA;AAAE,gBAAAA,EAAAA,GAAE,EAAE,SAAA,CAAU,aAAA;AAAc,gBAAA,EAAA,GAAG,IAAA;AAAG,gBAAA,MAAM,CAAA;AAAA,cAAE,KAAK,CAAA;AAAE,gBAAAA,EAAAA,GAAE,EAAE,SAAA,CAAU,aAAA;AAAc,gBAAA,EAAA,GAAG,IAAA;AAAG,gBAAA,MAAM,CAAA;AAAA;AAAE,YAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,UAAM;AAAC,UAAA,IAAG,SAAOA,EAAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,UAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,UAAAA,EAAAA,GAAE,IAAA;AAAK,UAAA,EAAA,GAAG,KAAA;AAAG,UAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,UAAA,IAAA,KAAO,CAAA,KAAI,EAAE,MAAA,GAAO,IAAA,CAAA;AAAM,UAAA,CAAA,CAAE,MAAA,GAAO,IAAA;AAAA,QAAI,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,CAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,QAAC;AAAA,MAAC;AAAC,MAAA,IAAG,CAAA,CAAE,YAAA,GAAa,KAAA,EAAM,KAAI,IAAE,CAAA,CAAE,KAAA,EAAM,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,IAAE,CAAA,CAAE,OAAA;AAAA,IAAO;AACje,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,CAAE,SAAA,EAAU,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,MAAA,QAAO,EAAE,GAAA;AAAI,QAAC,KAAK,CAAA;AAAA,QAAE,KAAK,EAAA;AAAA,QAAG,KAAK,EAAA;AAAA,QAAG,KAAK,EAAA;AAAG,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA,IAAG,IAAE,CAAA,EAAE;AAAC,YAAA,IAAG;AAAC,cAAA,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,CAAE,MAAM,CAAA,EAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,YAAC,SAAO,CAAA,EAAE;AAAC,cAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,YAAC;AAAC,YAAA,IAAG;AAAC,cAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,CAAE,MAAM,CAAA;AAAA,YAAC,SAAO,CAAA,EAAE;AAAC,cAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,YAAC;AAAA,UAAC;AAAC,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,OAAK,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,EAAE,MAAM,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,OAAK,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,EAAE,MAAM,CAAA;AAAE,UAAA,IAAG,CAAA,CAAE,QAAM,EAAA,EAAG;AAAC,YAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,YAAA,IAAG;AAAC,cAAA,EAAA,CAAG,GAAE,EAAE,CAAA;AAAA,YAAC,SAAO,CAAA,EAAE;AAAC,cAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,YAAC;AAAA,UAAC;AAAC,UAAA,IAAG,IAAE,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,SAAA,EAAU,QAAM,CAAA,CAAA,EAAG;AAAC,YAAA,IAAI,CAAA,GAAE,CAAA,CAAE,aAAA,EAAc,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,aAAA,GAAc,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,IAAE,CAAA,CAAE,WAAA;AACpf,YAAA,CAAA,CAAE,WAAA,GAAY,IAAA;AAAK,YAAA,IAAG,IAAA,KAAO,GAAE,IAAG;AAAC,cAAA,OAAA,KAAU,CAAA,IAAG,YAAU,CAAA,CAAE,IAAA,IAAM,QAAM,CAAA,CAAE,IAAA,IAAM,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAE,cAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,cAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAE,cAAA,KAAI,IAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,KAAG,CAAA,EAAE;AAAC,gBAAA,IAAI,IAAE,CAAA,CAAE,CAAC,GAAE,CAAA,GAAE,CAAA,CAAE,IAAE,CAAC,CAAA;AAAE,gBAAA,OAAA,KAAU,CAAA,GAAE,GAAG,CAAA,EAAE,CAAC,IAAE,yBAAA,KAA4B,CAAA,GAAE,GAAG,CAAA,EAAE,CAAC,IAAE,UAAA,KAAa,CAAA,GAAE,GAAG,CAAA,EAAE,CAAC,IAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,cAAC;AAAC,cAAA,QAAO,CAAA;AAAE,gBAAC,KAAK,OAAA;AAAQ,kBAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,UAAA;AAAW,kBAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,kBAAA;AAAA,gBAAM,KAAK,QAAA;AAAS,kBAAA,IAAI,CAAA,GAAE,EAAE,aAAA,CAAc,WAAA;AAAY,kBAAA,CAAA,CAAE,aAAA,CAAc,WAAA,GAAY,CAAC,CAAC,CAAA,CAAE,QAAA;AAAS,kBAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,kBAAA,IAAA,IAAM,IAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAC,EAAE,QAAA,EAAS,CAAA,EAAE,KAAE,CAAA,GAAE,MAAI,CAAC,CAAC,EAAE,QAAA,KAAW,IAAA,IAAM,EAAE,YAAA,GAAa,EAAA;AAAA,oBAAG,CAAA;AAAA,oBAAE,CAAC,CAAC,CAAA,CAAE,QAAA;AAAA,oBACnf,CAAA,CAAE,YAAA;AAAA,oBAAa;AAAA,mBAAE,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAC,CAAA,CAAE,QAAA,EAAS,CAAA,CAAE,QAAA,GAAS,EAAC,GAAE,EAAA,EAAG,KAAE,CAAA,CAAA;AAAA;AAAG,cAAA,CAAA,CAAE,EAAE,CAAA,GAAE,CAAA;AAAA,YAAC,SAAO,CAAA,EAAE;AAAC,cAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,YAAC;AAAA,UAAC;AAAC,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA,IAAG,IAAE,CAAA,EAAE;AAAC,YAAA,IAAG,SAAO,CAAA,CAAE,SAAA,QAAgB,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,YAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,YAAA,IAAG;AAAC,cAAA,CAAA,CAAE,SAAA,GAAU,CAAA;AAAA,YAAC,SAAO,CAAA,EAAE;AAAC,cAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,YAAC;AAAA,UAAC;AAAC,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA,IAAG,IAAE,CAAA,IAAG,IAAA,KAAO,KAAG,CAAA,CAAE,aAAA,CAAc,cAAa,IAAG;AAAC,YAAA,EAAA,CAAG,EAAE,aAAa,CAAA;AAAA,UAAC,SAAO,CAAA,EAAE;AAAC,YAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,UAAC;AAAC,UAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,UAAA,CAAA,CAAE,KAAA,GAAM,SAAO,CAAA,GAAE,IAAA,KAAO,EAAE,aAAA,EAAc,CAAA,CAAE,UAAU,QAAA,GAAS,CAAA,EAAE,CAAC,CAAA,IAClf,IAAA,KAAO,EAAE,SAAA,IAAW,IAAA,KAAO,EAAE,SAAA,CAAU,aAAA,KAAgB,KAAG,CAAA,EAAE,CAAA,CAAA;AAAI,UAAA,CAAA,GAAE,CAAA,IAAG,GAAG,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,CAAA,GAAE,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,aAAA;AAAc,UAAA,CAAA,CAAE,IAAA,GAAK,CAAA,IAAG,CAAA,GAAA,CAAG,CAAA,GAAE,MAAI,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,IAAG,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA,IAAG,IAAE,IAAA,EAAK;AAAC,YAAA,CAAA,GAAE,SAAO,CAAA,CAAE,aAAA;AAAc,YAAA,IAAA,CAAI,EAAE,SAAA,CAAU,QAAA,GAAS,CAAA,KAAI,CAAC,KAAG,CAAA,MAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA,OAAO,CAAA,GAAE,CAAA,EAAE,IAAE,CAAA,CAAE,KAAA,EAAM,SAAO,CAAA,IAAG;AAAC,cAAA,KAAI,CAAA,GAAE,CAAA,GAAE,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG;AAAC,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,gBAAA,QAAO,EAAE,GAAA;AAAI,kBAAC,KAAK,CAAA;AAAA,kBAAE,KAAK,EAAA;AAAA,kBAAG,KAAK,EAAA;AAAA,kBAAG,KAAK,EAAA;AAAG,oBAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,CAAE,MAAM,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,CAAA;AAAE,oBAAA,EAAA,CAAG,CAAA,EAAE,EAAE,MAAM,CAAA;AAAE,oBAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,oBAAA,IAAG,UAAA,KAAa,OAAO,CAAA,CAAE,oBAAA,EAAqB;AAAC,sBAAA,CAAA,GAAE,CAAA;AAAE,sBAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAO,sBAAA,IAAG;AAAC,wBAAA,CAAA,GAAE,CAAA,EAAE,CAAA,CAAE,KAAA,GACpf,CAAA,CAAE,aAAA,EAAc,EAAE,KAAA,GAAM,CAAA,CAAE,aAAA,EAAc,CAAA,CAAE,oBAAA,EAAqB;AAAA,sBAAC,SAAO,CAAA,EAAE;AAAC,wBAAA,CAAA,CAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,sBAAC;AAAA,oBAAC;AAAC,oBAAA;AAAA,kBAAM,KAAK,CAAA;AAAE,oBAAA,EAAA,CAAG,CAAA,EAAE,EAAE,MAAM,CAAA;AAAE,oBAAA;AAAA,kBAAM,KAAK,EAAA;AAAG,oBAAA,IAAG,IAAA,KAAO,EAAE,aAAA,EAAc;AAAC,sBAAA,EAAA,CAAG,CAAC,CAAA;AAAE,sBAAA;AAAA,oBAAQ;AAAA;AAAE,gBAAA,IAAA,KAAO,KAAG,CAAA,CAAE,MAAA,GAAO,GAAE,CAAA,GAAE,CAAA,IAAG,GAAG,CAAC,CAAA;AAAA,cAAC;AAAC,cAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,YAAO;AAAC,YAAA,CAAA,EAAE,KAAI,CAAA,GAAE,IAAA,EAAK,CAAA,GAAE,CAAA,MAAI;AAAC,cAAA,IAAG,CAAA,KAAI,EAAE,GAAA,EAAI;AAAC,gBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,kBAAA,CAAA,GAAE,CAAA;AAAE,kBAAA,IAAG;AAAC,oBAAA,CAAA,GAAE,EAAE,SAAA,EAAU,CAAA,IAAG,IAAE,CAAA,CAAE,KAAA,EAAM,eAAa,OAAO,CAAA,CAAE,cAAY,CAAA,CAAE,WAAA,CAAY,WAAU,MAAA,EAAO,WAAW,IAAE,CAAA,CAAE,OAAA,GAAQ,WAAS,CAAA,GAAE,CAAA,CAAE,WAAU,CAAA,GAAE,CAAA,CAAE,cAAc,KAAA,EAAM,CAAA,GAAE,WAAS,CAAA,IAAG,IAAA,KAAO,KAAG,CAAA,CAAE,cAAA,CAAe,SAAS,CAAA,GAAE,CAAA,CAAE,UAAQ,IAAA,EAAK,CAAA,CAAE,MAAM,OAAA,GACzf,EAAA,CAAG,WAAU,CAAC,CAAA,CAAA;AAAA,kBAAE,SAAO,CAAA,EAAE;AAAC,oBAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,kBAAC;AAAA,gBAAC;AAAA,cAAC,CAAA,MAAA,IAAS,CAAA,KAAI,CAAA,CAAE,GAAA,EAAI;AAAC,gBAAA,IAAG,IAAA,KAAO,GAAE,IAAG;AAAC,kBAAA,CAAA,CAAE,SAAA,CAAU,SAAA,GAAU,CAAA,GAAE,EAAA,GAAG,CAAA,CAAE,aAAA;AAAA,gBAAa,SAAO,CAAA,EAAE;AAAC,kBAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,gBAAC;AAAA,cAAC,CAAA,MAAA,IAAA,CAAU,EAAA,KAAK,CAAA,CAAE,GAAA,IAAK,OAAK,CAAA,CAAE,GAAA,IAAK,IAAA,KAAO,CAAA,CAAE,aAAA,IAAe,CAAA,KAAI,CAAA,KAAI,IAAA,KAAO,EAAE,KAAA,EAAM;AAAC,gBAAA,CAAA,CAAE,MAAM,MAAA,GAAO,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,gBAAA;AAAA,cAAQ;AAAC,cAAA,IAAG,CAAA,KAAI,GAAE,MAAM,CAAA;AAAE,cAAA,OAAK,IAAA,KAAO,EAAE,OAAA,IAAS;AAAC,gBAAA,IAAG,SAAO,CAAA,CAAE,MAAA,IAAQ,CAAA,CAAE,MAAA,KAAS,GAAE,MAAM,CAAA;AAAE,gBAAA,CAAA,KAAI,MAAI,CAAA,GAAE,IAAA,CAAA;AAAM,gBAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,cAAM;AAAC,cAAA,CAAA,KAAI,MAAI,CAAA,GAAE,IAAA,CAAA;AAAM,cAAA,CAAA,CAAE,OAAA,CAAQ,SAAO,CAAA,CAAE,MAAA;AAAO,cAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,YAAO;AAAA,UAAC;AAAC,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,EAAA,CAAG,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,CAAA,IAAG,GAAG,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA;AAAA,QAAM;AAAQ,UAAA,EAAA;AAAA,YAAG,CAAA;AAAA,YACnf;AAAA,WAAC,EAAE,GAAG,CAAC,CAAA;AAAA;AAAC,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,MAAA,IAAG,IAAE,CAAA,EAAE;AAAC,QAAA,IAAG;AAAC,UAAA,CAAA,EAAE;AAAC,YAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,IAAA,KAAO,CAAA,IAAG;AAAC,cAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE;AAAC,gBAAA,IAAI,CAAA,GAAE,CAAA;AAAE,gBAAA,MAAM,CAAA;AAAA,cAAC;AAAC,cAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,YAAM;AAAC,YAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,UAAE;AAAC,UAAA,QAAO,EAAE,GAAA;AAAI,YAAC,KAAK,CAAA;AAAE,cAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,cAAA,CAAA,CAAE,QAAM,EAAA,KAAK,EAAA,CAAG,GAAE,EAAE,CAAA,EAAE,EAAE,KAAA,IAAO,CAAA,EAAA,CAAA;AAAK,cAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,cAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,cAAA;AAAA,YAAM,KAAK,CAAA;AAAA,YAAE,KAAK,CAAA;AAAE,cAAA,IAAI,IAAE,CAAA,CAAE,SAAA,CAAU,aAAA,EAAc,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,cAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,cAAA;AAAA,YAAM;AAAQ,cAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA;AAAE,QAAC,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,QAAC;AAAC,QAAA,CAAA,CAAE,KAAA,IAAO,EAAA;AAAA,MAAE;AAAC,MAAA,CAAA,GAAE,IAAA,KAAO,EAAE,KAAA,IAAO,KAAA,CAAA;AAAA,IAAM;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,EAAA,CAAG,CAAK,CAAA;AAAA,IAAC;AACvb,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,KAAA,IAAQ,IAAE,CAAA,MAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA,EAAG,SAAO,CAAA,IAAG;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,QAAA,IAAG,EAAA,KAAK,CAAA,CAAE,GAAA,IAAK,CAAA,EAAE;AAAC,UAAA,IAAI,CAAA,GAAE,IAAA,KAAO,CAAA,CAAE,aAAA,IAAe,EAAA;AAAG,UAAA,IAAG,CAAC,CAAA,EAAE;AAAC,YAAA,IAAI,CAAA,GAAE,EAAE,SAAA,EAAU,CAAA,GAAE,SAAO,CAAA,IAAG,IAAA,KAAO,EAAE,aAAA,IAAe,CAAA;AAAE,YAAA,CAAA,GAAE,EAAA;AAAG,YAAA,IAAI,CAAA,GAAE,CAAA;AAAE,YAAA,EAAA,GAAG,CAAA;AAAE,YAAA,IAAA,CAAI,CAAA,GAAE,CAAA,KAAI,CAAC,CAAA,EAAE,KAAI,CAAA,GAAE,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAE,KAAA,EAAM,EAAA,KAAK,CAAA,CAAE,GAAA,IAAK,IAAA,KAAO,CAAA,CAAE,aAAA,GAAc,EAAA,CAAG,CAAC,CAAA,GAAE,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,MAAA,GAAO,CAAA,EAAE,CAAA,GAAE,CAAA,IAAG,GAAG,CAAC,CAAA;AAAE,YAAA,OAAK,IAAA,KAAO,CAAA,IAAG,CAAA,GAAE,CAAA,EAAE,EAAA,CAAG,CAAK,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,YAAA,CAAA,GAAE,CAAA;AAAE,YAAA,EAAA,GAAG,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA;AAAA,UAAC;AAAC,UAAA,EAAA,CAAG,CAAK,CAAA;AAAA,QAAC,CAAA,MAAM,CAAA,MAAK,CAAA,CAAE,YAAA,GAAa,SAAO,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,MAAA,GAAO,GAAE,CAAA,GAAE,CAAA,IAAG,EAAA,CAAG,CAAK,CAAA;AAAA,MAAC;AAAA,IAAC;AACvc,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAK,SAAO,CAAA,IAAG;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,IAAA,CAAA,EAAM;AAAC,UAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,UAAA,IAAG;AAAC,YAAA,IAAG,OAAK,CAAA,CAAE,KAAA,GAAM,IAAA,CAAA,EAAM,QAAO,EAAE,GAAA;AAAI,cAAC,KAAK,CAAA;AAAA,cAAE,KAAK,EAAA;AAAA,cAAG,KAAK,EAAA;AAAG,gBAAA,CAAA,IAAG,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,gBAAA;AAAA,cAAM,KAAK,CAAA;AAAE,gBAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,gBAAA,IAAG,CAAA,CAAE,QAAM,CAAA,IAAG,CAAC,GAAE,IAAG,IAAA,KAAO,CAAA,EAAE,CAAA,CAAE,iBAAA,EAAkB;AAAA,qBAAM;AAAC,kBAAA,IAAI,CAAA,GAAE,CAAA,CAAE,WAAA,KAAc,CAAA,CAAE,IAAA,GAAK,CAAA,CAAE,aAAA,GAAc,EAAA,CAAG,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,aAAa,CAAA;AAAE,kBAAA,CAAA,CAAE,kBAAA,CAAmB,CAAA,EAAE,CAAA,CAAE,aAAA,EAAc,EAAE,mCAAmC,CAAA;AAAA,gBAAC;AAAC,gBAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,gBAAA,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,gBAAA;AAAA,cAAM,KAAK,CAAA;AAAE,gBAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,gBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,kBAAA,CAAA,GAAE,IAAA;AAAK,kBAAA,IAAG,SAAO,CAAA,CAAE,KAAA,EAAM,QAAO,CAAA,CAAE,MAAM,GAAA;AAAI,oBAAC,KAAK,CAAA;AAAE,sBAAA,CAAA,GACjhB,EAAE,KAAA,CAAM,SAAA;AAAU,sBAAA;AAAA,oBAAM,KAAK,CAAA;AAAE,sBAAA,CAAA,GAAE,EAAE,KAAA,CAAM,SAAA;AAAA;AAAU,kBAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,gBAAC;AAAC,gBAAA;AAAA,cAAM,KAAK,CAAA;AAAE,gBAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,gBAAA,IAAG,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,KAAA,GAAM,CAAA,EAAE;AAAC,kBAAA,CAAA,GAAE,CAAA;AAAE,kBAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,kBAAA,QAAO,EAAE,IAAA;AAAK,oBAAC,KAAK,QAAA;AAAA,oBAAS,KAAK,OAAA;AAAA,oBAAQ,KAAK,QAAA;AAAA,oBAAS,KAAK,UAAA;AAAW,sBAAA,CAAA,CAAE,SAAA,IAAW,EAAE,KAAA,EAAM;AAAE,sBAAA;AAAA,oBAAM,KAAK,KAAA;AAAM,sBAAA,CAAA,CAAE,GAAA,KAAM,CAAA,CAAE,GAAA,GAAI,CAAA,CAAE,GAAA,CAAA;AAAA;AAAI,gBAAC;AAAC,gBAAA;AAAA,cAAM,KAAK,CAAA;AAAE,gBAAA;AAAA,cAAM,KAAK,CAAA;AAAE,gBAAA;AAAA,cAAM,KAAK,EAAA;AAAG,gBAAA;AAAA,cAAM,KAAK,EAAA;AAAG,gBAAA,IAAG,IAAA,KAAO,EAAE,aAAA,EAAc;AAAC,kBAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,kBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,oBAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,oBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,sBAAA,IAAI,IAAE,CAAA,CAAE,UAAA;AAAW,sBAAA,IAAA,KAAO,CAAA,IAAG,GAAG,CAAC,CAAA;AAAA,oBAAC;AAAA,kBAAC;AAAA,gBAAC;AAAC,gBAAA;AAAA,cAAM,KAAK,EAAA;AAAA,cAAG,KAAK,EAAA;AAAA,cAAG,KAAK,EAAA;AAAA,cAAG,KAAK,EAAA;AAAA,cAAG,KAAK,EAAA;AAAA,cAAG,KAAK,EAAA;AAAG,gBAAA;AAAA,cAClgB;AAAQ,gBAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA;AAAG,YAAA,CAAA,IAAG,CAAA,CAAE,KAAA,GAAM,GAAA,IAAK,EAAA,CAAG,CAAC,CAAA;AAAA,UAAC,SAAO,CAAA,EAAE;AAAC,YAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,UAAC;AAAA,QAAC;AAAC,QAAA,IAAG,MAAI,CAAA,EAAE;AAAC,UAAA,CAAA,GAAE,IAAA;AAAK,UAAA;AAAA,QAAK;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,CAAE,SAAO,CAAA,CAAE,MAAA;AAAO,UAAA,CAAA,GAAE,CAAA;AAAE,UAAA;AAAA,QAAK;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,MAAM;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAK,SAAO,CAAA,IAAG;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,IAAG,MAAI,CAAA,EAAE;AAAC,UAAA,CAAA,GAAE,IAAA;AAAK,UAAA;AAAA,QAAK;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,CAAE,SAAO,CAAA,CAAE,MAAA;AAAO,UAAA,CAAA,GAAE,CAAA;AAAE,UAAA;AAAA,QAAK;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,MAAM;AAAA,IAAC;AACvS,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAK,SAAO,CAAA,IAAG;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,IAAG;AAAC,UAAA,QAAO,EAAE,GAAA;AAAI,YAAC,KAAK,CAAA;AAAA,YAAE,KAAK,EAAA;AAAA,YAAG,KAAK,EAAA;AAAG,cAAA,IAAI,IAAE,CAAA,CAAE,MAAA;AAAO,cAAA,IAAG;AAAC,gBAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,cAAC,SAAO,CAAA,EAAE;AAAC,gBAAA,CAAA,CAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,cAAC;AAAC,cAAA;AAAA,YAAM,KAAK,CAAA;AAAE,cAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,cAAA,IAAG,UAAA,KAAa,OAAO,CAAA,CAAE,iBAAA,EAAkB;AAAC,gBAAA,IAAI,IAAE,CAAA,CAAE,MAAA;AAAO,gBAAA,IAAG;AAAC,kBAAA,CAAA,CAAE,iBAAA,EAAkB;AAAA,gBAAC,SAAO,CAAA,EAAE;AAAC,kBAAA,CAAA,CAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,gBAAC;AAAA,cAAC;AAAC,cAAA,IAAI,IAAE,CAAA,CAAE,MAAA;AAAO,cAAA,IAAG;AAAC,gBAAA,EAAA,CAAG,CAAC,CAAA;AAAA,cAAC,SAAO,CAAA,EAAE;AAAC,gBAAA,CAAA,CAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,cAAC;AAAC,cAAA;AAAA,YAAM,KAAK,CAAA;AAAE,cAAA,IAAI,IAAE,CAAA,CAAE,MAAA;AAAO,cAAA,IAAG;AAAC,gBAAA,EAAA,CAAG,CAAC,CAAA;AAAA,cAAC,SAAO,CAAA,EAAE;AAAC,gBAAA,CAAA,CAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,cAAC;AAAA;AAAC,QAAC,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,CAAC,CAAA;AAAA,QAAC;AAAC,QAAA,IAAG,MAAI,CAAA,EAAE;AAAC,UAAA,CAAA,GAAE,IAAA;AAAK,UAAA;AAAA,QAAK;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,CAAE,SAAO,CAAA,CAAE,MAAA;AAAO,UAAA,CAAA,GAAE,CAAA;AAAE,UAAA;AAAA,QAAK;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,MAAM;AAAA,IAAC;AAC7d,IAAA,IAAI,KAAG,IAAA,CAAK,IAAA;AAAZ,IAAA,IAAiB,KAAG,EAAA,CAAG,sBAAA;AAAvB,IAAA,IAA8C,KAAG,EAAA,CAAG,iBAAA;AAApD,IAAA,IAAsE,KAAG,EAAA,CAAG,uBAAA;AAA5E,IAAA,IAAoG,CAAA,GAAE,CAAA;AAAtG,IAAA,IAAwG,CAAA,GAAE,IAAA;AAA1G,IAAA,IAA+G,CAAA,GAAE,IAAA;AAAjH,IAAA,IAAsH,CAAA,GAAE,CAAA;AAAxH,IAAA,IAA0H,EAAA,GAAG,CAAA;AAA7H,IAAA,IAA+H,EAAA,GAAG,GAAG,CAAC,CAAA;AAAtI,IAAA,IAAwI,CAAA,GAAE,CAAA;AAA1I,IAAA,IAA4I,EAAA,GAAG,IAAA;AAA/I,IAAA,IAAoJ,EAAA,GAAG,CAAA;AAAvJ,IAAA,IAAyJ,EAAA,GAAG,CAAA;AAA5J,IAAA,IAA8J,EAAA,GAAG,CAAA;AAAjK,IAAA,IAAmK,EAAA,GAAG,IAAA;AAAtK,IAAA,IAA2K,EAAA,GAAG,IAAA;AAA9K,IAAA,IAAmL,EAAA,GAAG,CAAA;AAAtL,IAAA,IAAwL,EAAA,GAAG,QAAA;AAA3L,IAAA,IAAoM,EAAA,GAAG,IAAA;AAAvM,IAAA,IAA4M,EAAA,GAAG,KAAA;AAA/M,IAAA,IAAkN,EAAA,GAAG,IAAA;AAArN,IAAA,IAA0N,EAAA,GAAG,IAAA;AAA7N,IAAA,IAAkO,EAAA,GAAG,KAAA;AAArO,IAAA,IAAwO,EAAA,GAAG,IAAA;AAA3O,IAAA,IAAgP,EAAA,GAAG,CAAA;AAAnP,IAAA,IAAqP,EAAA,GAAG,CAAA;AAAxP,IAAA,IAA0P,EAAA,GAAG,IAAA;AAA7P,IAAA,IAAkQ,EAAA,GAAG,EAAA;AAArQ,IAAA,IAAwQ,EAAA,GAAG,CAAA;AAAE,IAAA,SAAS,CAAA,GAAG;AAAC,MAAA,OAAO,CAAA,MAAK,IAAE,CAAA,CAAA,GAAG,CAAA,KAAI,EAAA,KAAK,EAAA,GAAG,EAAA,GAAG,EAAA,GAAG,CAAA,EAAE;AAAA,IAAC;AAChU,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,MAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA,EAAG,OAAO,CAAA;AAAE,MAAA,IAAG,OAAK,CAAA,GAAE,CAAA,CAAA,IAAI,MAAI,CAAA,EAAE,OAAO,IAAE,CAAC,CAAA;AAAE,MAAA,IAAG,IAAA,KAAO,GAAG,UAAA,EAAW,OAAO,MAAI,EAAA,KAAK,EAAA,GAAG,IAAG,CAAA,EAAG,EAAA;AAAG,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG,CAAA,KAAI,GAAE,OAAO,CAAA;AAAE,MAAA,CAAA,GAAE,MAAA,CAAO,KAAA;AAAM,MAAA,CAAA,GAAE,MAAA,KAAS,CAAA,GAAE,EAAA,GAAG,EAAA,CAAG,EAAE,IAAI,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,GAAG,EAAA,EAAG,MAAM,EAAA,GAAG,CAAA,EAAE,KAAG,IAAA,EAAK,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,IAAG,CAAA,MAAK,CAAA,GAAE,CAAA,CAAA,IAAI,CAAA,KAAI,GAAE,CAAA,KAAI,CAAA,KAAI,CAAA,MAAK,CAAA,GAAE,OAAK,EAAA,IAAI,CAAA,CAAA,EAAG,CAAA,KAAI,CAAA,IAAG,GAAG,CAAA,EAAE,CAAC,CAAA,CAAA,EAAG,EAAA,CAAG,GAAE,CAAC,CAAA,EAAE,CAAA,KAAI,CAAA,IAAG,MAAI,CAAA,IAAG,CAAA,MAAK,CAAA,CAAE,IAAA,GAAK,OAAK,EAAA,GAAG,CAAA,EAAE,GAAE,GAAA,EAAI,MAAI,EAAA,EAAG,CAAA;AAAA,IAAE;AAC1Y,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,YAAA;AAAa,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,IAAI,IAAE,EAAA,CAAG,CAAA,EAAE,CAAA,KAAI,CAAA,GAAE,IAAE,CAAC,CAAA;AAAE,MAAA,IAAG,CAAA,KAAI,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,CAAE,YAAA,GAAa,IAAA,EAAK,CAAA,CAAE,gBAAA,GAAiB,CAAA;AAAA,WAAA,IAAU,IAAE,CAAA,GAAE,CAAC,CAAA,EAAE,CAAA,CAAE,qBAAmB,CAAA,EAAE;AAAC,QAAA,IAAA,IAAM,CAAA,IAAG,GAAG,CAAC,CAAA;AAAE,QAAA,IAAG,CAAA,KAAI,GAAE,CAAA,KAAI,CAAA,CAAE,MAAI,EAAA,CAAG,EAAA,CAAG,KAAK,IAAA,EAAK,CAAC,CAAC,CAAA,GAAE,EAAA,CAAG,GAAG,IAAA,CAAK,IAAA,EAAK,CAAC,CAAC,CAAA,EAAE,GAAG,WAAU;AAAC,UAAA,CAAA,MAAK,CAAA,GAAE,MAAI,EAAA,EAAG;AAAA,QAAC,CAAC,GAAE,CAAA,GAAE,IAAA;AAAA,aAAS;AAAC,UAAA,QAAO,EAAA,CAAG,CAAC,CAAA;AAAE,YAAC,KAAK,CAAA;AAAE,cAAA,CAAA,GAAE,EAAA;AAAG,cAAA;AAAA,YAAM,KAAK,CAAA;AAAE,cAAA,CAAA,GAAE,EAAA;AAAG,cAAA;AAAA,YAAM,KAAK,EAAA;AAAG,cAAA,CAAA,GAAE,EAAA;AAAG,cAAA;AAAA,YAAM,KAAK,SAAA;AAAU,cAAA,CAAA,GAAE,EAAA;AAAG,cAAA;AAAA,YAAM;AAAQ,cAAA,CAAA,GAAE,EAAA;AAAA;AAAG,UAAA,CAAA,GAAE,GAAG,CAAA,EAAE,EAAA,CAAG,IAAA,CAAK,IAAA,EAAK,CAAC,CAAC,CAAA;AAAA,QAAC;AAAC,QAAA,CAAA,CAAE,gBAAA,GAAiB,CAAA;AAAE,QAAA,CAAA,CAAE,YAAA,GAAa,CAAA;AAAA,MAAC;AAAA,IAAC;AAC7c,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,GAAG,EAAA;AAAG,MAAA,EAAA,GAAG,CAAA;AAAE,MAAA,IAAG,OAAK,CAAA,GAAE,CAAA,CAAA,QAAS,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,IAAI,IAAE,CAAA,CAAE,YAAA;AAAa,MAAA,IAAG,EAAA,EAAG,IAAG,CAAA,CAAE,YAAA,KAAe,GAAE,OAAO,IAAA;AAAK,MAAA,IAAI,IAAE,EAAA,CAAG,CAAA,EAAE,CAAA,KAAI,CAAA,GAAE,IAAE,CAAC,CAAA;AAAE,MAAA,IAAG,CAAA,KAAI,GAAE,OAAO,IAAA;AAAK,MAAA,IAAG,CAAA,MAAK,CAAA,GAAE,EAAA,CAAA,IAAK,CAAA,MAAK,CAAA,GAAE,CAAA,CAAE,YAAA,CAAA,IAAe,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAA,WAAM;AAAC,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,IAAG,CAAA;AAAE,QAAA,IAAI,IAAE,EAAA,EAAG;AAAE,QAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,EAAE,EAAA,GAAG,IAAA,EAAK,EAAA,GAAG,CAAA,EAAE,GAAE,GAAA,EAAI,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAE,QAAA;AAAG,UAAA,IAAG;AAAC,YAAA,EAAA,EAAG;AAAE,YAAA;AAAA,UAAK,SAAO,CAAA,EAAE;AAAC,YAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,UAAC;AAAA,eAAO,CAAA;AAAG,QAAA,EAAA,EAAG;AAAE,QAAA,EAAA,CAAG,OAAA,GAAQ,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,IAAA,KAAO,IAAE,CAAA,GAAE,CAAA,IAAG,IAAE,IAAA,EAAK,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA,CAAA;AAAA,MAAE;AAAC,MAAA,IAAG,MAAI,CAAA,EAAE;AAAC,QAAA,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,CAAA,CAAA;AAAI,QAAA,IAAG,MAAI,CAAA,EAAE,MAAM,CAAA,GAAE,EAAA,EAAG,GAAG,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAC,CAAA,EAAE,GAAG,CAAA,EAAE,CAAA,EAAG,CAAA,EAAE,CAAA;AAAE,QAAA,IAAG,CAAA,KAAI,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAA,aACjf;AAAC,UAAA,CAAA,GAAE,EAAE,OAAA,CAAQ,SAAA;AAAU,UAAA,IAAG,CAAA,MAAK,IAAE,EAAA,CAAA,IAAK,CAAC,GAAG,CAAC,CAAA,KAAI,IAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,KAAI,MAAI,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,KAAI,MAAI,CAAA,GAAE,CAAA,EAAE,IAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,CAAA,CAAA,EAAI,CAAA,KAAI,IAAG,MAAM,CAAA,GAAE,IAAG,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAC,CAAA,EAAE,GAAG,CAAA,EAAE,CAAA,EAAG,CAAA,EAAE,CAAA;AAAE,UAAA,CAAA,CAAE,YAAA,GAAa,CAAA;AAAE,UAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,UAAA,QAAO,CAAA;AAAE,YAAC,KAAK,CAAA;AAAA,YAAE,KAAK,CAAA;AAAE,cAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,YAAE,KAAK,CAAA;AAAE,cAAA,EAAA,CAAG,CAAA,EAAE,IAAG,EAAE,CAAA;AAAE,cAAA;AAAA,YAAM,KAAK,CAAA;AAAE,cAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,cAAA,IAAA,CAAI,CAAA,GAAE,eAAa,CAAA,KAAI,CAAA,GAAE,KAAG,GAAA,GAAI,CAAA,EAAE,EAAE,EAAA,GAAG,CAAA,CAAA,EAAG;AAAC,gBAAA,IAAG,CAAA,KAAI,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE;AAAM,gBAAA,CAAA,GAAE,CAAA,CAAE,cAAA;AAAe,gBAAA,IAAA,CAAI,CAAA,GAAE,OAAK,CAAA,EAAE;AAAC,kBAAA,CAAA,EAAE;AAAE,kBAAA,CAAA,CAAE,WAAA,IAAa,EAAE,cAAA,GAAe,CAAA;AAAE,kBAAA;AAAA,gBAAK;AAAC,gBAAA,CAAA,CAAE,aAAA,GAAc,GAAG,EAAA,CAAG,IAAA,CAAK,MAAK,CAAA,EAAE,EAAA,EAAG,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,gBAAA;AAAA,cAAK;AAAC,cAAA,EAAA,CAAG,CAAA,EAAE,IAAG,EAAE,CAAA;AAAE,cAAA;AAAA,YAAM,KAAK,CAAA;AAAE,cAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,cAAA,IAAA,CAAI,CAAA,GAAE,aAChf,CAAA,EAAE;AAAM,cAAA,CAAA,GAAE,CAAA,CAAE,UAAA;AAAW,cAAA,KAAI,CAAA,GAAE,EAAA,EAAG,CAAA,GAAE,CAAA,IAAG;AAAC,gBAAA,IAAI,CAAA,GAAE,EAAA,GAAG,EAAA,CAAG,CAAC,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA,IAAG,CAAA;AAAE,gBAAA,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,gBAAA,CAAA,GAAE,MAAI,CAAA,GAAE,CAAA,CAAA;AAAG,gBAAA,CAAA,IAAG,CAAC,CAAA;AAAA,cAAC;AAAC,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA,CAAA,GAAE,GAAE,GAAE,CAAA;AAAE,cAAA,CAAA,GAAA,CAAG,GAAA,GAAI,IAAE,GAAA,GAAI,GAAA,GAAI,IAAE,GAAA,GAAI,IAAA,GAAK,CAAA,GAAE,IAAA,GAAK,IAAA,GAAK,CAAA,GAAE,OAAK,GAAA,GAAI,CAAA,GAAE,MAAI,IAAA,GAAK,CAAA,GAAE,OAAK,IAAA,GAAK,EAAA,CAAG,CAAA,GAAE,IAAI,CAAA,IAAG,CAAA;AAAE,cAAA,IAAG,KAAG,CAAA,EAAE;AAAC,gBAAA,CAAA,CAAE,aAAA,GAAc,GAAG,EAAA,CAAG,IAAA,CAAK,MAAK,CAAA,EAAE,EAAA,EAAG,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,gBAAA;AAAA,cAAK;AAAC,cAAA,EAAA,CAAG,CAAA,EAAE,IAAG,EAAE,CAAA;AAAE,cAAA;AAAA,YAAM,KAAK,CAAA;AAAE,cAAA,EAAA,CAAG,CAAA,EAAE,IAAG,EAAE,CAAA;AAAE,cAAA;AAAA,YAAM;AAAQ,cAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA;AAAE,QAAC;AAAA,MAAC;AAAC,MAAA,EAAA,CAAG,CAAA,EAAE,GAAG,CAAA;AAAE,MAAA,OAAO,EAAE,YAAA,KAAe,CAAA,GAAE,GAAG,IAAA,CAAK,IAAA,EAAK,CAAC,CAAA,GAAE,IAAA;AAAA,IAAI;AACrX,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA;AAAG,MAAA,CAAA,CAAE,QAAQ,aAAA,CAAc,YAAA,KAAe,GAAG,CAAA,EAAE,CAAC,EAAE,KAAA,IAAO,GAAA,CAAA;AAAK,MAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,KAAI,CAAA,KAAI,IAAE,EAAA,EAAG,EAAA,GAAG,GAAE,IAAA,KAAO,CAAA,IAAG,GAAG,CAAC,CAAA,CAAA;AAAG,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAA,KAAO,KAAG,EAAA,GAAG,CAAA,GAAE,GAAG,IAAA,CAAK,KAAA,CAAM,IAAG,CAAC,CAAA;AAAA,IAAC;AAC5L,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,KAAA,IAAQ,IAAE,CAAA,MAAI;AAAC,QAAA,IAAG,CAAA,CAAE,QAAM,KAAA,EAAM;AAAC,UAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,UAAA,IAAG,IAAA,KAAO,CAAA,KAAI,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,IAAA,KAAO,CAAA,CAAA,EAAG,KAAA,IAAQ,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,QAAO,CAAA,EAAA,EAAI;AAAC,YAAA,IAAI,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,EAAE,IAAE,CAAA,CAAE,WAAA;AAAY,YAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,YAAA,IAAG;AAAC,cAAA,IAAG,CAAC,EAAA,CAAG,CAAA,EAAE,EAAE,CAAC,GAAE,OAAM,KAAA;AAAA,YAAE,SAAO,CAAA,EAAE;AAAC,cAAA,OAAM,KAAA;AAAA,YAAE;AAAA,UAAC;AAAA,QAAC;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,QAAA,IAAG,CAAA,CAAE,eAAa,KAAA,IAAO,IAAA,KAAO,GAAE,CAAA,CAAE,MAAA,GAAO,GAAE,CAAA,GAAE,CAAA;AAAA,aAAM;AAAC,UAAA,IAAG,MAAI,CAAA,EAAE;AAAM,UAAA,OAAK,IAAA,KAAO,EAAE,OAAA,IAAS;AAAC,YAAA,IAAG,SAAO,CAAA,CAAE,MAAA,IAAQ,CAAA,CAAE,MAAA,KAAS,GAAE,OAAM,IAAA;AAAG,YAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,UAAM;AAAC,UAAA,CAAA,CAAE,OAAA,CAAQ,SAAO,CAAA,CAAE,MAAA;AAAO,UAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,QAAO;AAAA,MAAC;AAAC,MAAA,OAAM,IAAA;AAAA,IAAE;AACla,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,IAAG,CAAC,EAAA;AAAG,MAAA,CAAA,IAAG,CAAC,EAAA;AAAG,MAAA,CAAA,CAAE,cAAA,IAAgB,CAAA;AAAE,MAAA,CAAA,CAAE,eAAa,CAAC,CAAA;AAAE,MAAA,KAAI,CAAA,GAAE,CAAA,CAAE,eAAA,EAAgB,CAAA,GAAE,CAAA,IAAG;AAAC,QAAA,IAAI,IAAE,EAAA,GAAG,EAAA,CAAG,CAAC,CAAA,EAAE,IAAE,CAAA,IAAG,CAAA;AAAE,QAAA,CAAA,CAAE,CAAC,CAAA,GAAE,EAAA;AAAG,QAAA,CAAA,IAAG,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,OAAK,CAAA,GAAE,CAAA,CAAA,QAAS,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,EAAA,EAAG;AAAE,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,IAAG,CAAA,MAAK,IAAE,CAAA,CAAA,EAAG,OAAO,GAAG,CAAA,EAAE,CAAA,EAAG,CAAA,EAAE,IAAA;AAAK,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,IAAG,CAAA,KAAI,CAAA,CAAE,GAAA,IAAK,CAAA,KAAI,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,QAAA,CAAA,KAAI,MAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA,CAAA;AAAA,MAAE;AAAC,MAAA,IAAG,MAAI,CAAA,EAAE,MAAM,CAAA,GAAE,EAAA,EAAG,GAAG,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAC,CAAA,EAAE,GAAG,CAAA,EAAE,CAAA,EAAG,CAAA,EAAE,CAAA;AAAE,MAAA,IAAG,MAAI,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,YAAA,GAAa,EAAE,OAAA,CAAQ,SAAA;AAAU,MAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,IAAG,EAAE,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,GAAG,CAAA;AAAE,MAAA,OAAO,IAAA;AAAA,IAAI;AACvd,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,IAAG,CAAA;AAAE,MAAA,IAAG;AAAC,QAAA,OAAO,EAAE,CAAC,CAAA;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,CAAA,GAAE,CAAA,EAAE,MAAI,CAAA,KAAI,EAAA,GAAG,GAAE,GAAE,GAAA,EAAI,MAAI,EAAA,EAAG,CAAA;AAAA,MAAE;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAA,KAAO,MAAI,CAAA,KAAI,EAAA,CAAG,OAAK,CAAA,MAAK,CAAA,GAAE,MAAI,EAAA,EAAG;AAAE,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,IAAG,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,UAAA,EAAW,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG;AAAC,QAAA,IAAG,GAAG,UAAA,GAAW,IAAA,EAAK,IAAE,CAAA,EAAE,CAAA,SAAS,CAAA,EAAE;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,CAAA,GAAE,CAAA,EAAE,GAAG,UAAA,GAAW,CAAA,EAAE,IAAE,CAAA,EAAE,CAAA,MAAK,CAAA,GAAE,CAAA,CAAA,IAAI,EAAA,EAAG;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,EAAA,GAAG,EAAA,CAAG,OAAA;AAAQ,MAAA,CAAA,CAAE,EAAE,CAAA;AAAA,IAAC;AAChT,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,CAAE,YAAA,GAAa,IAAA;AAAK,MAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,MAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,MAAA,EAAA,KAAK,CAAA,KAAI,CAAA,CAAE,aAAA,GAAc,EAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AAAG,MAAA,IAAG,SAAO,CAAA,EAAE,KAAI,IAAE,CAAA,CAAE,MAAA,EAAO,SAAO,CAAA,IAAG;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,EAAA,CAAG,CAAC,CAAA;AAAE,QAAA,QAAO,EAAE,GAAA;AAAI,UAAC,KAAK,CAAA;AAAE,YAAA,CAAA,GAAE,EAAE,IAAA,CAAK,iBAAA;AAAkB,YAAA,IAAA,KAAO,CAAA,IAAG,MAAA,KAAS,CAAA,IAAG,EAAA,EAAG;AAAE,YAAA;AAAA,UAAM,KAAK,CAAA;AAAE,YAAA,EAAA,EAAG;AAAE,YAAA,CAAA,CAAE,EAAE,CAAA;AAAE,YAAA,CAAA,CAAE,CAAC,CAAA;AAAE,YAAA,EAAA,EAAG;AAAE,YAAA;AAAA,UAAM,KAAK,CAAA;AAAE,YAAA,EAAA,CAAG,CAAC,CAAA;AAAE,YAAA;AAAA,UAAM,KAAK,CAAA;AAAE,YAAA,EAAA,EAAG;AAAE,YAAA;AAAA,UAAM,KAAK,EAAA;AAAG,YAAA,CAAA,CAAE,CAAC,CAAA;AAAE,YAAA;AAAA,UAAM,KAAK,EAAA;AAAG,YAAA,CAAA,CAAE,CAAC,CAAA;AAAE,YAAA;AAAA,UAAM,KAAK,EAAA;AAAG,YAAA,EAAA,CAAG,CAAA,CAAE,KAAK,QAAQ,CAAA;AAAE,YAAA;AAAA,UAAM,KAAK,EAAA;AAAA,UAAG,KAAK,EAAA;AAAG,YAAA,EAAA,EAAG;AAAA;AAAE,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,MAAM;AAAC,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,GAAE,EAAA,CAAG,CAAA,CAAE,OAAA,EAAQ,IAAI,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,GAAG,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,EAAA,GAAG,IAAA;AAAK,MAAA,EAAA,GAAG,KAAG,EAAA,GAAG,CAAA;AAAE,MAAA,EAAA,GAAG,EAAA,GAAG,IAAA;AAAK,MAAA,IAAG,SAAO,EAAA,EAAG;AAAC,QAAA,KAAI,CAAA,GAC1f,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,QAAO,CAAA,EAAA,EAAI,IAAG,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,WAAA,EAAY,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,CAAE,WAAA,GAAY,IAAA;AAAK,UAAA,IAAI,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,UAAA,IAAG,SAAO,CAAA,EAAE;AAAC,YAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,YAAA,CAAA,CAAE,IAAA,GAAK,CAAA;AAAE,YAAA,CAAA,CAAE,IAAA,GAAK,CAAA;AAAA,UAAC;AAAC,UAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAA,QAAC;AAAC,QAAA,EAAA,GAAG,IAAA;AAAA,MAAI;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AAC3K,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,GAAE;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,IAAG;AAAC,UAAA,EAAA,EAAG;AAAE,UAAA,EAAA,CAAG,OAAA,GAAQ,EAAA;AAAG,UAAA,IAAG,EAAA,EAAG;AAAC,YAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,CAAE,aAAA,EAAc,IAAA,KAAO,CAAA,IAAG;AAAC,cAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,cAAA,IAAA,KAAO,CAAA,KAAI,EAAE,OAAA,GAAQ,IAAA,CAAA;AAAM,cAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAA,YAAI;AAAC,YAAA,EAAA,GAAG,KAAA;AAAA,UAAE;AAAC,UAAA,EAAA,GAAG,CAAA;AAAE,UAAA,CAAA,GAAE,IAAE,CAAA,GAAE,IAAA;AAAK,UAAA,EAAA,GAAG,KAAA;AAAG,UAAA,EAAA,GAAG,CAAA;AAAE,UAAA,EAAA,CAAG,OAAA,GAAQ,IAAA;AAAK,UAAA,IAAG,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,MAAA,EAAO;AAAC,YAAA,CAAA,GAAE,CAAA;AAAE,YAAA,EAAA,GAAG,CAAA;AAAE,YAAA,CAAA,GAAE,IAAA;AAAK,YAAA;AAAA,UAAK;AAAC,UAAA,CAAA,EAAE;AAAC,YAAA,IAAI,IAAE,CAAA,EAAE,CAAA,GAAE,EAAE,MAAA,EAAO,CAAA,GAAE,GAAE,CAAA,GAAE,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA;AAAE,YAAA,CAAA,CAAE,KAAA,IAAO,KAAA;AAAM,YAAA,IAAG,IAAA,KAAO,KAAG,QAAA,KAAW,OAAO,KAAG,UAAA,KAAa,OAAO,EAAE,IAAA,EAAK;AAAC,cAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,EAAE,IAAE,CAAA,CAAE,GAAA;AAAI,cAAA,IAAG,CAAA,MAAK,EAAE,IAAA,GAAK,CAAA,CAAA,KAAK,MAAI,CAAA,IAAG,EAAA,KAAK,CAAA,IAAG,EAAA,KAAK,CAAA,CAAA,EAAG;AAAC,gBAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,gBAAA,CAAA,IAAG,EAAE,WAAA,GAAY,CAAA,CAAE,WAAA,EAAY,CAAA,CAAE,gBAAc,CAAA,CAAE,aAAA,EACxe,CAAA,CAAE,KAAA,GAAM,EAAE,KAAA,KAAQ,CAAA,CAAE,WAAA,GAAY,IAAA,EAAK,EAAE,aAAA,GAAc,IAAA,CAAA;AAAA,cAAK;AAAC,cAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,cAAA,IAAG,SAAO,CAAA,EAAE;AAAC,gBAAA,CAAA,CAAE,KAAA,IAAO,CAAA,GAAA;AAAK,gBAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,gBAAA,CAAA,CAAE,IAAA,GAAK,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,gBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,kBAAA,IAAI,oBAAE,IAAI,GAAA,EAAA;AAAI,kBAAA,CAAA,CAAE,IAAI,CAAC,CAAA;AAAE,kBAAA,CAAA,CAAE,WAAA,GAAY,CAAA;AAAA,gBAAC,CAAA,MAAM,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA;AAAE,gBAAA,MAAM,CAAA;AAAA,cAAC,CAAA,MAAK;AAAC,gBAAA,IAAG,CAAA,MAAK,IAAE,CAAA,CAAA,EAAG;AAAC,kBAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,kBAAA,EAAA,EAAG;AAAE,kBAAA,MAAM,CAAA;AAAA,gBAAC;AAAC,gBAAA,CAAA,GAAE,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,cAAC;AAAA,YAAC,CAAA,MAAA,IAAS,CAAA,IAAG,CAAA,CAAE,IAAA,GAAK,CAAA,EAAE;AAAC,cAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,cAAA,IAAG,SAAO,CAAA,EAAE;AAAC,gBAAA,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,KAAA,CAAA,KAAS,CAAA,CAAE,KAAA,IAAO,GAAA,CAAA;AAAK,gBAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,gBAAA,EAAA,CAAG,EAAA,CAAG,CAAA,EAAE,CAAC,CAAC,CAAA;AAAE,gBAAA,MAAM,CAAA;AAAA,cAAC;AAAA,YAAC;AAAC,YAAA,CAAA,GAAE,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAE,YAAA,CAAA,KAAI,MAAI,CAAA,GAAE,CAAA,CAAA;AAAG,YAAA,IAAA,KAAO,KAAG,EAAA,GAAG,CAAC,CAAC,CAAA,GAAE,EAAA,CAAG,KAAK,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA;AAAE,YAAA,GAAE;AAAC,cAAA,QAAO,EAAE,GAAA;AAAI,gBAAC,KAAK,CAAA;AAAE,kBAAA,CAAA,CAAE,KAAA,IAAO,KAAA;AACpf,kBAAA,CAAA,IAAG,CAAC,CAAA;AAAE,kBAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,kBAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,kBAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,kBAAA,MAAM,CAAA;AAAA,gBAAE,KAAK,CAAA;AAAE,kBAAA,CAAA,GAAE,CAAA;AAAE,kBAAA,IAAI,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,kBAAA,IAAG,CAAA,MAAK,EAAE,KAAA,GAAM,GAAA,CAAA,KAAO,eAAa,OAAO,CAAA,CAAE,4BAA0B,IAAA,KAAO,CAAA,IAAG,eAAa,OAAO,CAAA,CAAE,sBAAoB,IAAA,KAAO,EAAA,IAAI,CAAC,EAAA,CAAG,GAAA,CAAI,CAAC,CAAA,CAAA,CAAA,EAAI;AAAC,oBAAA,CAAA,CAAE,KAAA,IAAO,KAAA;AAAM,oBAAA,CAAA,IAAG,CAAC,CAAA;AAAE,oBAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,oBAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,oBAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,oBAAA,MAAM,CAAA;AAAA,kBAAC;AAAA;AAAE,cAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,YAAM,SAAO,IAAA,KAAO,CAAA;AAAA,UAAE;AAAC,UAAA,EAAA,CAAG,CAAC,CAAA;AAAA,QAAC,SAAO,EAAA,EAAG;AAAC,UAAA,CAAA,GAAE,EAAA;AAAG,UAAA,CAAA,KAAI,CAAA,IAAG,IAAA,KAAO,CAAA,KAAI,CAAA,GAAE,IAAE,CAAA,CAAE,MAAA,CAAA;AAAQ,UAAA;AAAA,QAAQ;AAAC,QAAA;AAAA,MAAK,CAAA,QAAO,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,IAAI,IAAE,EAAA,CAAG,OAAA;AAAQ,MAAA,EAAA,CAAG,OAAA,GAAQ,EAAA;AAAG,MAAA,OAAO,IAAA,KAAO,IAAE,EAAA,GAAG,CAAA;AAAA,IAAC;AACrd,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,IAAG,MAAI,CAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,GAAE,CAAA,GAAE,CAAA;AAAE,MAAA,IAAA,KAAO,CAAA,IAAG,OAAK,EAAA,GAAG,SAAA,CAAA,IAAY,OAAK,EAAA,GAAG,SAAA,CAAA,IAAY,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,IAAG,CAAA;AAAE,MAAA,IAAI,IAAE,EAAA,EAAG;AAAE,MAAA,IAAG,CAAA,KAAI,KAAG,CAAA,KAAI,CAAA,OAAK,IAAA,EAAK,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA;AAAG,QAAA,IAAG;AAAC,UAAA,EAAA,EAAG;AAAE,UAAA;AAAA,QAAK,SAAO,CAAA,EAAE;AAAC,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,QAAC;AAAA,aAAO,CAAA;AAAG,MAAA,EAAA,EAAG;AAAE,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,EAAA,CAAG,OAAA,GAAQ,CAAA;AAAE,MAAA,IAAG,SAAO,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,IAAA;AAAK,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,OAAK,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,OAAK,SAAO,CAAA,IAAG,CAAC,EAAA,EAAG,OAAM,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,CAAE,SAAA,EAAU,GAAE,EAAE,CAAA;AAAE,MAAA,CAAA,CAAE,gBAAc,CAAA,CAAE,YAAA;AAAa,MAAA,IAAA,KAAO,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,GAAE,CAAA,GAAE,CAAA;AAAE,MAAA,EAAA,CAAG,OAAA,GAAQ,IAAA;AAAA,IAAI;AAC1d,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,GAAE;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAO,QAAA,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,KAAA,CAAA,EAAO;AAAC,UAAA,IAAG,IAAE,EAAA,CAAG,CAAA,EAAE,GAAE,EAAE,CAAA,EAAE,SAAO,CAAA,EAAE;AAAC,YAAA,CAAA,GAAE,CAAA;AAAE,YAAA;AAAA,UAAM;AAAA,QAAC,CAAA,MAAK;AAAC,UAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,IAAG,SAAO,CAAA,EAAE;AAAC,YAAA,CAAA,CAAE,KAAA,IAAO,KAAA;AAAM,YAAA,CAAA,GAAE,CAAA;AAAE,YAAA;AAAA,UAAM;AAAC,UAAA,IAAG,IAAA,KAAO,GAAE,CAAA,CAAE,KAAA,IAAO,OAAM,CAAA,CAAE,YAAA,GAAa,CAAA,EAAE,CAAA,CAAE,SAAA,GAAU,IAAA;AAAA,eAAS;AAAC,YAAA,CAAA,GAAE,CAAA;AAAE,YAAA,CAAA,GAAE,IAAA;AAAK,YAAA;AAAA,UAAM;AAAA,QAAC;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,CAAA,GAAE,CAAA;AAAE,UAAA;AAAA,QAAM;AAAC,QAAA,CAAA,GAAE,CAAA,GAAE,CAAA;AAAA,MAAC,SAAO,IAAA,KAAO,CAAA;AAAG,MAAA,CAAA,KAAI,MAAI,CAAA,GAAE,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,UAAA;AAAW,MAAA,IAAG;AAAC,QAAA,EAAA,CAAG,UAAA,GAAW,MAAK,CAAA,GAAE,CAAA,EAAE,GAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,EAAA,CAAG,UAAA,GAAW,GAAE,CAAA,GAAE,CAAA;AAAA,MAAC;AAAC,MAAA,OAAO,IAAA;AAAA,IAAI;AAChc,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA;AAAG,QAAA,EAAA,EAAG;AAAA,aAAQ,IAAA,KAAO,EAAA;AAAI,MAAA,IAAG,OAAK,CAAA,GAAE,CAAA,CAAA,QAAS,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,MAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,MAAA,IAAG,IAAA,KAAO,GAAE,OAAO,IAAA;AAAK,MAAA,CAAA,CAAE,YAAA,GAAa,IAAA;AAAK,MAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,MAAA,IAAG,MAAI,CAAA,CAAE,OAAA,QAAc,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,YAAA,GAAa,IAAA;AAAK,MAAA,CAAA,CAAE,gBAAA,GAAiB,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,CAAA,CAAE,KAAA,GAAM,CAAA,CAAE,UAAA;AAAW,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,KAAI,CAAA,KAAI,CAAA,GAAE,CAAA,GAAE,IAAA,EAAK,CAAA,GAAE,CAAA,CAAA;AAAG,MAAA,CAAA,MAAK,CAAA,CAAE,YAAA,GAAa,IAAA,CAAA,IAAO,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,IAAA,CAAA,IAAO,EAAA,KAAK,EAAA,GAAG,IAAA,EAAG,EAAA,CAAG,EAAA,EAAG,WAAU;AAAC,QAAA,EAAA,EAAG;AAAE,QAAA,OAAO,IAAA;AAAA,MAAI,CAAC,CAAA,CAAA;AAAG,MAAA,CAAA,GAAE,CAAA,MAAK,EAAE,KAAA,GAAM,KAAA,CAAA;AAAO,MAAA,IAAG,CAAA,MAAK,CAAA,CAAE,YAAA,GAAa,KAAA,CAAA,IAAQ,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,EAAA,CAAG,UAAA;AAAW,QAAA,EAAA,CAAG,UAAA,GAAW,IAAA;AAChf,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,IAAG,CAAA;AAAE,QAAA,EAAA,CAAG,OAAA,GAAQ,IAAA;AAAK,QAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,QAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,QAAA,EAAA,CAAG,EAAE,CAAA;AAAE,QAAA,EAAA,GAAG,CAAC,CAAC,EAAA;AAAG,QAAA,EAAA,GAAG,EAAA,GAAG,IAAA;AAAK,QAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAE,QAAA,EAAA,CAAG,CAAK,CAAA;AAAE,QAAA,EAAA,EAAG;AAAE,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAE,CAAA;AAAE,QAAA,EAAA,CAAG,UAAA,GAAW,CAAA;AAAA,MAAC,CAAA,QAAQ,OAAA,GAAQ,CAAA;AAAE,MAAA,EAAA,KAAK,EAAA,GAAG,KAAA,EAAG,EAAA,GAAG,CAAA,EAAE,EAAA,GAAG,CAAA,CAAA;AAAG,MAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,MAAA,CAAA,KAAI,MAAI,EAAA,GAAG,IAAA,CAAA;AAAM,MAAA,EAAA,CAAG,CAAA,CAAE,SAAW,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,GAAG,CAAA;AAAE,MAAA,IAAG,IAAA,KAAO,CAAA,EAAE,KAAI,CAAA,GAAE,CAAA,CAAE,kBAAA,EAAmB,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,CAAA,EAAA,EAAI,CAAA,GAAE,EAAE,CAAC,CAAA,EAAE,CAAA,CAAE,CAAA,CAAE,KAAA,EAAM,EAAC,cAAA,EAAe,CAAA,CAAE,KAAA,EAAM,MAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAA;AAAE,MAAA,IAAG,IAAG,MAAM,EAAA,GAAG,OAAG,CAAA,GAAE,EAAA,EAAG,KAAG,IAAA,EAAK,CAAA;AAAE,MAAA,CAAA,MAAK,EAAA,GAAG,CAAA,CAAA,IAAI,CAAA,KAAI,CAAA,CAAE,OAAK,EAAA,EAAG;AAAE,MAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,MAAA,CAAA,MAAK,CAAA,GAAE,KAAG,CAAA,KAAI,EAAA,GAAG,QAAM,EAAA,GAAG,CAAA,EAAE,EAAA,GAAG,CAAA,CAAA,GAAG,EAAA,GAAG,CAAA;AAAE,MAAA,EAAA,EAAG;AAAE,MAAA,OAAO,IAAA;AAAA,IAAI;AACre,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,IAAG,SAAO,EAAA,EAAG;AAAC,QAAA,IAAI,IAAE,EAAA,CAAG,EAAE,GAAE,CAAA,GAAE,EAAA,CAAG,YAAW,CAAA,GAAE,CAAA;AAAE,QAAA,IAAG;AAAC,UAAA,EAAA,CAAG,UAAA,GAAW,IAAA;AAAK,UAAA,CAAA,GAAE,EAAA,GAAG,IAAE,EAAA,GAAG,CAAA;AAAE,UAAA,IAAG,IAAA,KAAO,EAAA,EAAG,IAAI,CAAA,GAAE,KAAA;AAAA,eAAO;AAAC,YAAA,CAAA,GAAE,EAAA;AAAG,YAAA,EAAA,GAAG,IAAA;AAAK,YAAA,EAAA,GAAG,CAAA;AAAE,YAAA,IAAG,OAAK,CAAA,GAAE,CAAA,CAAA,QAAS,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,YAAA,IAAI,CAAA,GAAE,CAAA;AAAE,YAAA,CAAA,IAAG,CAAA;AAAE,YAAA,KAAI,CAAA,GAAE,CAAA,CAAE,OAAA,EAAQ,IAAA,KAAO,CAAA,IAAG;AAAC,cAAA,IAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,cAAA,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,EAAA,CAAA,EAAI;AAAC,gBAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,gBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,kBAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,QAAO,CAAA,EAAA,EAAI;AAAC,oBAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,oBAAA,KAAI,CAAA,GAAE,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG;AAAC,sBAAA,IAAI,CAAA,GAAE,CAAA;AAAE,sBAAA,QAAO,EAAE,GAAA;AAAI,wBAAC,KAAK,CAAA;AAAA,wBAAE,KAAK,EAAA;AAAA,wBAAG,KAAK,EAAA;AAAG,0BAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA;AAAE,sBAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,sBAAA,IAAG,IAAA,KAAO,CAAA,EAAE,CAAA,CAAE,MAAA,GAAO,GAAE,CAAA,GAAE,CAAA;AAAA,2BAAO,OAAK,SAAO,CAAA,IAAG;AAAC,wBAAA,CAAA,GAAE,CAAA;AAAE,wBAAA,IAAI,CAAA,GAAE,CAAA,CAAE,OAAA,EAAQ,CAAA,GAAE,CAAA,CAAE,MAAA;AAAO,wBAAA,EAAA,CAAG,CAAC,CAAA;AAAE,wBAAA,IAAG,MACnf,CAAA,EAAE;AAAC,0BAAA,CAAA,GAAE,IAAA;AAAK,0BAAA;AAAA,wBAAK;AAAC,wBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,0BAAA,CAAA,CAAE,MAAA,GAAO,CAAA;AAAE,0BAAA,CAAA,GAAE,CAAA;AAAE,0BAAA;AAAA,wBAAK;AAAC,wBAAA,CAAA,GAAE,CAAA;AAAA,sBAAC;AAAA,oBAAC;AAAA,kBAAC;AAAC,kBAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,kBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,oBAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,oBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,sBAAA,CAAA,CAAE,KAAA,GAAM,IAAA;AAAK,sBAAA,GAAE;AAAC,wBAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,wBAAA,CAAA,CAAE,OAAA,GAAQ,IAAA;AAAK,wBAAA,CAAA,GAAE,CAAA;AAAA,sBAAC,SAAO,IAAA,KAAO,CAAA;AAAA,oBAAE;AAAA,kBAAC;AAAC,kBAAA,CAAA,GAAE,CAAA;AAAA,gBAAC;AAAA,cAAC;AAAC,cAAA,IAAG,CAAA,MAAK,EAAE,YAAA,GAAa,IAAA,CAAA,IAAO,SAAO,CAAA,EAAE,CAAA,CAAE,MAAA,GAAO,CAAA,EAAE,CAAA,GAAE,CAAA;AAAA,mBAAO,CAAA,EAAE,OAAK,IAAA,KAAO,CAAA,IAAG;AAAC,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,IAAG,OAAK,CAAA,CAAE,KAAA,GAAM,IAAA,CAAA,EAAM,QAAO,EAAE,GAAA;AAAI,kBAAC,KAAK,CAAA;AAAA,kBAAE,KAAK,EAAA;AAAA,kBAAG,KAAK,EAAA;AAAG,oBAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,CAAE,MAAM,CAAA;AAAA;AAAE,gBAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,gBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,kBAAA,CAAA,CAAE,SAAO,CAAA,CAAE,MAAA;AAAO,kBAAA,CAAA,GAAE,CAAA;AAAE,kBAAA,MAAM,CAAA;AAAA,gBAAC;AAAC,gBAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,cAAM;AAAA,YAAC;AAAC,YAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,YAAA,KAAI,CAAA,GAAE,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG;AAAC,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA,IAAI,IAAE,CAAA,CAAE,KAAA;AAAM,cAAA,IAAG,CAAA,MAAK,EAAE,YAAA,GAAa,IAAA,CAAA,IAAO,SAClf,CAAA,EAAE,CAAA,CAAE,MAAA,GAAO,CAAA,EAAE,CAAA,GAAE,CAAA;AAAA,mBAAO,CAAA,EAAE,KAAI,CAAA,GAAE,CAAA,EAAE,SAAO,CAAA,IAAG;AAAC,gBAAA,CAAA,GAAE,CAAA;AAAE,gBAAA,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,IAAA,CAAA,EAAM,IAAG;AAAC,kBAAA,QAAO,EAAE,GAAA;AAAI,oBAAC,KAAK,CAAA;AAAA,oBAAE,KAAK,EAAA;AAAA,oBAAG,KAAK,EAAA;AAAG,sBAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA;AAAC,gBAAC,SAAO,EAAA,EAAG;AAAC,kBAAA,CAAA,CAAE,CAAA,EAAE,CAAA,CAAE,MAAA,EAAO,EAAE,CAAA;AAAA,gBAAC;AAAC,gBAAA,IAAG,MAAI,CAAA,EAAE;AAAC,kBAAA,CAAA,GAAE,IAAA;AAAK,kBAAA,MAAM,CAAA;AAAA,gBAAC;AAAC,gBAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,gBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,kBAAA,CAAA,CAAE,SAAO,CAAA,CAAE,MAAA;AAAO,kBAAA,CAAA,GAAE,CAAA;AAAE,kBAAA,MAAM,CAAA;AAAA,gBAAC;AAAC,gBAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,cAAM;AAAA,YAAC;AAAC,YAAA,CAAA,GAAE,CAAA;AAAE,YAAA,EAAA,EAAG;AAAE,YAAA,IAAG,EAAA,IAAI,UAAA,KAAa,OAAO,EAAA,CAAG,uBAAsB,IAAG;AAAC,cAAA,EAAA,CAAG,qBAAA,CAAsB,IAAG,CAAC,CAAA;AAAA,YAAC,SAAO,EAAA,EAAG;AAAA,YAAC;AAAC,YAAA,CAAA,GAAE,IAAA;AAAA,UAAE;AAAC,UAAA,OAAO,CAAA;AAAA,QAAC,CAAA,SAAC;AAAQ,UAAA,CAAA,GAAE,CAAA,EAAE,GAAG,UAAA,GAAW,CAAA;AAAA,QAAC;AAAA,MAAC;AAAC,MAAA,OAAM,KAAA;AAAA,IAAE;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,EAAE;AAAE,MAAA,IAAA,KAAO,CAAA,KAAI,GAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAC,CAAA,CAAA;AAAA,IAAE;AACze,IAAA,SAAS,CAAA,CAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,MAAI,CAAA,CAAE,GAAA,EAAI,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,WAAO,OAAK,SAAO,CAAA,IAAG;AAAC,QAAA,IAAG,CAAA,KAAI,EAAE,GAAA,EAAI;AAAC,UAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,UAAA;AAAA,QAAK,CAAA,MAAA,IAAS,CAAA,KAAI,CAAA,CAAE,GAAA,EAAI;AAAC,UAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,UAAA,IAAG,UAAA,KAAa,OAAO,CAAA,CAAE,IAAA,CAAK,4BAA0B,UAAA,KAAa,OAAO,CAAA,CAAE,iBAAA,KAAoB,SAAO,EAAA,IAAI,CAAC,EAAA,CAAG,GAAA,CAAI,CAAC,CAAA,CAAA,EAAG;AAAC,YAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA,EAAE;AAAE,YAAA,IAAA,KAAO,CAAA,KAAI,GAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAC,CAAA,CAAA;AAAG,YAAA;AAAA,UAAK;AAAA,QAAC;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,MAAM;AAAA,IAAC;AACnV,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,EAAE;AAAE,MAAA,CAAA,CAAE,WAAA,IAAa,EAAE,cAAA,GAAe,CAAA;AAAE,MAAA,CAAA,KAAI,MAAI,CAAA,GAAE,CAAA,MAAK,MAAI,CAAA,KAAI,CAAA,IAAG,MAAI,CAAA,IAAA,CAAI,CAAA,GAAE,eAAa,CAAA,IAAG,GAAA,GAAI,GAAE,GAAE,EAAA,GAAG,GAAG,CAAA,EAAE,CAAC,IAAE,EAAA,IAAI,CAAA,CAAA;AAAG,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,KAAI,CAAA,KAAI,CAAA,MAAK,CAAA,CAAE,IAAA,GAAK,KAAG,CAAA,GAAE,CAAA,IAAG,CAAA,GAAE,EAAA,EAAG,EAAA,KAAK,CAAA,EAAE,CAAA,MAAK,EAAA,GAAG,eAAa,EAAA,GAAG,OAAA,CAAA,CAAA,CAAA;AAAW,MAAA,IAAI,IAAE,CAAA,EAAE;AAAE,MAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,IAAA,KAAO,CAAA,KAAI,GAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAC,CAAA,CAAA;AAAA,IAAE;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,CAAE,aAAA,EAAc,CAAA,GAAE,CAAA;AAAE,MAAA,IAAA,KAAO,CAAA,KAAI,IAAE,CAAA,CAAE,SAAA,CAAA;AAAW,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,IAAC;AACjZ,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,QAAO,EAAE,GAAA;AAAI,QAAC,KAAK,EAAA;AAAG,UAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,UAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,UAAA,IAAA,KAAO,CAAA,KAAI,IAAE,CAAA,CAAE,SAAA,CAAA;AAAW,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,UAAA;AAAA,QAAM;AAAQ,UAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA;AAAG,MAAA,IAAA,KAAO,CAAA,IAAG,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,IAAI,EAAA;AAClN,IAAA,EAAA,GAAG,SAAS,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,IAAA,KAAO,GAAE,IAAG,CAAA,CAAE,kBAAgB,CAAA,CAAE,YAAA,IAAc,EAAA,CAAG,OAAA,EAAQ,EAAA,GAAG,IAAA;AAAA,WAAO;AAAC,QAAA,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,CAAA,CAAA,IAAI,OAAK,CAAA,CAAE,KAAA,GAAM,GAAA,CAAA,EAAK,OAAO,EAAA,GAAG,KAAA,EAAG,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,QAAA,EAAA,GAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,MAAA,CAAA,GAAQ,IAAA,GAAG,KAAA;AAAA,MAAE;AAAA,WAAM,EAAA,GAAG,KAAA,EAAG,CAAA,IAAG,CAAA,MAAK,CAAA,CAAE,KAAA,GAAM,OAAA,CAAA,IAAU,EAAA,CAAG,CAAA,EAAE,EAAA,EAAG,CAAA,CAAE,KAAK,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,QAAO,EAAE,GAAA;AAAI,QAAC,KAAK,CAAA;AAAE,UAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,UAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,OAAO,CAAA;AAAE,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,GAAG,IAAA,EAAK,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,UAAA,IAAI,IAAE,EAAA,EAAG;AAAE,UAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,UAAA,QAAA,KAAW,OAAO,CAAA,IAAG,IAAA,KAAO,CAAA,IAAG,UAAA,KAAa,OAAO,CAAA,CAAE,MAAA,IAAQ,MAAA,KAAS,CAAA,CAAE,YAAU,CAAA,CAAE,GAAA,GAAI,GAAE,CAAA,CAAE,aAAA,GAAc,MAAK,CAAA,CAAE,WAAA,GAC1e,IAAA,EAAK,EAAA,CAAG,CAAC,CAAA,IAAG,CAAA,GAAE,MAAG,EAAA,CAAG,CAAC,KAAG,CAAA,GAAE,KAAA,EAAG,CAAA,CAAE,aAAA,GAAc,SAAO,CAAA,CAAE,KAAA,IAAO,WAAS,CAAA,CAAE,KAAA,GAAM,EAAE,KAAA,GAAM,IAAA,EAAK,EAAA,CAAG,CAAC,GAAE,CAAA,CAAE,OAAA,GAAQ,IAAG,CAAA,CAAE,SAAA,GAAU,GAAE,CAAA,CAAE,eAAA,GAAgB,CAAA,EAAE,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,GAAG,IAAA,EAAK,CAAA,EAAE,CAAA,EAAE,IAAA,EAAG,GAAE,CAAC,CAAA,KAAI,EAAE,GAAA,GAAI,CAAA,EAAE,KAAG,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE,GAAG,IAAA,EAAK,CAAA,EAAE,GAAE,CAAC,CAAA,EAAE,IAAE,CAAA,CAAE,KAAA,CAAA;AAAO,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,CAAA,GAAE,CAAA,CAAE,WAAA;AAAY,UAAA,CAAA,EAAE;AAAC,YAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,YAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,YAAA,CAAA,GAAE,CAAA,CAAE,EAAE,QAAQ,CAAA;AAAE,YAAA,CAAA,CAAE,IAAA,GAAK,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA,CAAE,GAAA,GAAI,EAAA,CAAG,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,YAAA,QAAO,CAAA;AAAE,cAAC,KAAK,CAAA;AAAE,gBAAA,CAAA,GAAE,EAAA,CAAG,IAAA,EAAK,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,gBAAA,MAAM,CAAA;AAAA,cAAE,KAAK,CAAA;AAAE,gBAAA,CAAA,GAAE,EAAA,CAAG,IAAA,EAAK,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,gBAAA,MAAM,CAAA;AAAA,cAAE,KAAK,EAAA;AAAG,gBAAA,CAAA,GAAE,EAAA,CAAG,IAAA,EAAK,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,gBAAA,MAAM,CAAA;AAAA,cAAE,KAAK,EAAA;AAAG,gBAAA,CAAA,GAAE,EAAA,CAAG,MAAK,CAAA,EAAE,CAAA,EAAE,GAAG,CAAA,CAAE,IAAA,EAAK,CAAC,CAAA,EAAE,CAAC,CAAA;AAAE,gBAAA,MAAM,CAAA;AAAA;AAAE,YAAA,MAAM,KAAA,CAAM,CAAA;AAAA,cAAE,GAAA;AAAA,cACvgB,CAAA;AAAA,cAAE;AAAA,aAAG,CAAA;AAAA,UAAE;AAAC,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,CAAA,GAAE,EAAE,IAAA,EAAK,CAAA,GAAE,EAAE,YAAA,EAAa,CAAA,GAAE,EAAE,WAAA,KAAc,CAAA,GAAE,IAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,CAAA,GAAE,EAAE,IAAA,EAAK,CAAA,GAAE,EAAE,YAAA,EAAa,CAAA,GAAE,EAAE,WAAA,KAAc,CAAA,GAAE,IAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,CAAA,EAAE;AAAC,YAAA,EAAA,CAAG,CAAC,CAAA;AAAE,YAAA,IAAG,SAAO,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,YAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,YAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,YAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,YAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,IAAA,EAAK,CAAC,CAAA;AAAE,YAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,YAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,YAAA,IAAG,CAAA,CAAE,YAAA,EAAa,IAAG,CAAA,GAAE,EAAC,OAAA,EAAQ,CAAA,EAAE,YAAA,EAAa,KAAA,EAAG,KAAA,EAAM,CAAA,CAAE,KAAA,EAAM,yBAAA,EAA0B,CAAA,CAAE,yBAAA,EAA0B,WAAA,EAAY,CAAA,CAAE,WAAA,EAAW,EAAE,CAAA,CAAE,WAAA,CAAY,SAAA,GAChf,CAAA,EAAE,CAAA,CAAE,aAAA,GAAc,CAAA,EAAE,CAAA,CAAE,KAAA,GAAM,GAAA,EAAI;AAAC,cAAA,CAAA,GAAE,GAAG,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,GAAE,CAAC,CAAA;AAAE,cAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,cAAA,MAAM,CAAA;AAAA,YAAC,CAAA,MAAA,IAAS,MAAI,CAAA,EAAE;AAAC,cAAA,CAAA,GAAE,GAAG,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,GAAE,CAAC,CAAA;AAAE,cAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,cAAA,MAAM,CAAA;AAAA,YAAC,CAAA,MAAM,KAAI,EAAA,GAAG,EAAA,CAAG,EAAE,SAAA,CAAU,aAAA,CAAc,UAAU,CAAA,EAAE,EAAA,GAAG,CAAA,EAAE,CAAA,GAAE,IAAA,EAAG,KAAG,IAAA,EAAK,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,CAAC,CAAA,EAAE,EAAE,KAAA,GAAM,CAAA,EAAE,CAAA,IAAG,CAAA,CAAE,QAAM,CAAA,CAAE,KAAA,GAAM,EAAA,GAAG,IAAA,EAAK,IAAE,CAAA,CAAE,OAAA;AAAA,iBAAY;AAAC,cAAA,EAAA,EAAG;AAAE,cAAA,IAAG,MAAI,CAAA,EAAE;AAAC,gBAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,gBAAA,MAAM,CAAA;AAAA,cAAC;AAAC,cAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,YAAC;AAAC,YAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAA,UAAK;AAAC,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,EAAA,CAAG,CAAC,CAAA,EAAE,IAAA,KAAO,KAAG,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,IAAE,CAAA,CAAE,YAAA,EAAa,IAAE,IAAA,KAAO,CAAA,GAAE,EAAE,aAAA,GAAc,IAAA,EAAK,CAAA,GAAE,CAAA,CAAE,QAAA,EAAS,EAAA,CAAG,GAAE,CAAC,CAAA,GAAE,IAAE,IAAA,GAAK,IAAA,KAAO,KAAG,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,KAAI,CAAA,CAAE,KAAA,IAAO,KACnf,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,CAAE,KAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,OAAO,IAAA,KAAO,CAAA,IAAG,EAAA,CAAG,CAAC,CAAA,EAAE,IAAA;AAAA,QAAK,KAAK,EAAA;AAAG,UAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,CAAE,SAAA,CAAU,aAAa,GAAE,CAAA,GAAE,CAAA,CAAE,YAAA,EAAa,IAAA,KAAO,CAAA,GAAE,CAAA,CAAE,QAAM,EAAA,CAAG,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,CAAC,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,CAAE,KAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,GAAE,EAAE,IAAA,EAAK,CAAA,GAAE,EAAE,YAAA,EAAa,CAAA,GAAE,EAAE,WAAA,KAAc,CAAA,GAAE,IAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,GAAG,CAAA,EAAE,CAAA,EAAE,EAAE,YAAA,EAAa,CAAC,GAAE,CAAA,CAAE,KAAA;AAAA,QAAM,KAAK,CAAA;AAAE,UAAA,OAAO,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,CAAE,aAAa,QAAA,EAAS,CAAC,GAAE,CAAA,CAAE,KAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,OAAO,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,CAAE,aAAa,QAAA,EAAS,CAAC,GAAE,CAAA,CAAE,KAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,CAAA,EAAE;AAAC,YAAA,CAAA,GAAE,EAAE,IAAA,CAAK,QAAA;AAAS,YAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,YAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAClf,YAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,YAAA,CAAA,CAAE,EAAA,EAAG,EAAE,aAAa,CAAA;AAAE,YAAA,CAAA,CAAE,aAAA,GAAc,CAAA;AAAE,YAAA,IAAG,SAAO,CAAA,EAAE,IAAG,GAAG,CAAA,CAAE,KAAA,EAAM,CAAC,CAAA,EAAE;AAAC,cAAA,IAAG,EAAE,QAAA,KAAW,CAAA,CAAE,QAAA,IAAU,CAAC,GAAG,OAAA,EAAQ;AAAC,gBAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,gBAAA,MAAM,CAAA;AAAA,cAAC;AAAA,YAAC,CAAA,MAAM,KAAI,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,IAAA,KAAO,CAAA,KAAI,CAAA,CAAE,MAAA,GAAO,CAAA,CAAA,EAAG,IAAA,KAAO,CAAA,IAAG;AAAC,cAAA,IAAI,IAAE,CAAA,CAAE,YAAA;AAAa,cAAA,IAAG,SAAO,CAAA,EAAE;AAAC,gBAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAM,gBAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,CAAE,YAAA,EAAa,IAAA,KAAO,CAAA,IAAG;AAAC,kBAAA,IAAG,CAAA,CAAE,YAAU,CAAA,EAAE;AAAC,oBAAA,IAAG,CAAA,KAAI,EAAE,GAAA,EAAI;AAAC,sBAAA,CAAA,GAAE,EAAA,CAAG,EAAA,EAAG,CAAA,GAAE,CAAC,CAAC,CAAA;AAAE,sBAAA,CAAA,CAAE,GAAA,GAAI,CAAA;AAAE,sBAAA,IAAI,IAAE,CAAA,CAAE,WAAA;AAAY,sBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,wBAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAO,wBAAA,IAAI,IAAE,CAAA,CAAE,OAAA;AAAQ,wBAAA,IAAA,KAAO,CAAA,GAAE,EAAE,IAAA,GAAK,CAAA,IAAG,EAAE,IAAA,GAAK,CAAA,CAAE,IAAA,EAAK,CAAA,CAAE,IAAA,GAAK,CAAA,CAAA;AAAG,wBAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAA,sBAAC;AAAA,oBAAC;AAAC,oBAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,oBAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,oBAAA,IAAA,KAAO,CAAA,KAAI,EAAE,KAAA,IAAO,CAAA,CAAA;AAAG,oBAAA,EAAA;AAAA,sBAAG,CAAA,CAAE,MAAA;AAAA,sBAClf,CAAA;AAAA,sBAAE;AAAA,qBAAC;AAAE,oBAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,oBAAA;AAAA,kBAAK;AAAC,kBAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAA,gBAAI;AAAA,cAAC,CAAA,MAAA,IAAS,EAAA,KAAK,CAAA,CAAE,GAAA,EAAI,CAAA,GAAE,EAAE,IAAA,KAAO,CAAA,CAAE,IAAA,GAAK,IAAA,GAAK,CAAA,CAAE,KAAA;AAAA,mBAAA,IAAc,EAAA,KAAK,EAAE,GAAA,EAAI;AAAC,gBAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAO,gBAAA,IAAG,SAAO,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,gBAAA,CAAA,CAAE,KAAA,IAAO,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,gBAAA,IAAA,KAAO,CAAA,KAAI,EAAE,KAAA,IAAO,CAAA,CAAA;AAAG,gBAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,gBAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAA,cAAO,CAAA,UAAQ,CAAA,CAAE,KAAA;AAAM,cAAA,IAAG,IAAA,KAAO,CAAA,EAAE,CAAA,CAAE,MAAA,GAAO,CAAA;AAAA,mBAAO,KAAI,CAAA,GAAE,CAAA,EAAE,IAAA,KAAO,CAAA,IAAG;AAAC,gBAAA,IAAG,MAAI,CAAA,EAAE;AAAC,kBAAA,CAAA,GAAE,IAAA;AAAK,kBAAA;AAAA,gBAAK;AAAC,gBAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,gBAAA,IAAG,SAAO,CAAA,EAAE;AAAC,kBAAA,CAAA,CAAE,SAAO,CAAA,CAAE,MAAA;AAAO,kBAAA,CAAA,GAAE,CAAA;AAAE,kBAAA;AAAA,gBAAK;AAAC,gBAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,cAAM;AAAC,cAAA,CAAA,GAAE,CAAA;AAAA,YAAC;AAAC,YAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,CAAE,QAAA,EAAS,CAAC,CAAA;AAAE,YAAA,CAAA,GAAE,CAAA,CAAE,KAAA;AAAA,UAAK;AAAC,UAAA,OAAO,CAAA;AAAA,QAAE,KAAK,CAAA;AAAE,UAAA,OAAO,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,CAAA,GAAE,CAAA,CAAE,YAAA,CAAa,QAAA,EAAS,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,EAAE,CAAA,CAAE,KAAA,IAAO,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EACrf,CAAA,CAAE,KAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,GAAE,EAAE,IAAA,EAAK,CAAA,GAAE,GAAG,CAAA,EAAE,CAAA,CAAE,YAAY,CAAA,EAAE,CAAA,GAAE,GAAG,CAAA,CAAE,IAAA,EAAK,CAAC,CAAA,EAAE,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,GAAG,CAAA,EAAE,CAAA,EAAE,EAAE,IAAA,EAAK,CAAA,CAAE,cAAa,CAAC,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,GAAE,CAAA,CAAE,IAAA,EAAK,CAAA,GAAE,CAAA,CAAE,cAAa,CAAA,GAAE,CAAA,CAAE,WAAA,KAAc,CAAA,GAAE,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA,EAAE,EAAE,GAAA,GAAI,CAAA,EAAE,EAAA,CAAG,CAAC,CAAA,IAAG,CAAA,GAAE,MAAG,EAAA,CAAG,CAAC,CAAA,IAAG,CAAA,GAAE,KAAA,EAAG,EAAA,CAAG,GAAE,CAAC,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,IAAA,EAAK,CAAA,EAAE,CAAA,EAAE,IAAA,EAAG,CAAA,EAAE,CAAC,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA;AAAE,MAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAA,EAAI,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,IAAE,CAAA;AAAE,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,OAAO,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,IAAC;AACjZ,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAA,CAAK,GAAA,GAAI,CAAA;AAAE,MAAA,IAAA,CAAK,GAAA,GAAI,CAAA;AAAE,MAAA,IAAA,CAAK,OAAA,GAAQ,IAAA,CAAK,KAAA,GAAM,IAAA,CAAK,MAAA,GAAO,KAAK,SAAA,GAAU,IAAA,CAAK,IAAA,GAAK,IAAA,CAAK,WAAA,GAAY,IAAA;AAAK,MAAA,IAAA,CAAK,KAAA,GAAM,CAAA;AAAE,MAAA,IAAA,CAAK,GAAA,GAAI,IAAA;AAAK,MAAA,IAAA,CAAK,YAAA,GAAa,CAAA;AAAE,MAAA,IAAA,CAAK,eAAa,IAAA,CAAK,aAAA,GAAc,IAAA,CAAK,WAAA,GAAY,KAAK,aAAA,GAAc,IAAA;AAAK,MAAA,IAAA,CAAK,IAAA,GAAK,CAAA;AAAE,MAAA,IAAA,CAAK,YAAA,GAAa,KAAK,KAAA,GAAM,CAAA;AAAE,MAAA,IAAA,CAAK,SAAA,GAAU,IAAA;AAAK,MAAA,IAAA,CAAK,UAAA,GAAW,KAAK,KAAA,GAAM,CAAA;AAAE,MAAA,IAAA,CAAK,SAAA,GAAU,IAAA;AAAA,IAAI;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,OAAO,IAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,SAAA;AAAU,MAAA,OAAM,EAAE,CAAC,CAAA,IAAG,CAAC,CAAA,CAAE,gBAAA,CAAA;AAAA,IAAiB;AACpd,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,eAAa,OAAO,CAAA,SAAS,EAAA,CAAG,CAAC,IAAE,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG,MAAA,KAAS,CAAA,IAAG,IAAA,KAAO,CAAA,EAAE;AAAC,QAAA,CAAA,GAAE,CAAA,CAAE,QAAA;AAAS,QAAA,IAAG,CAAA,KAAI,IAAG,OAAO,EAAA;AAAG,QAAA,IAAG,CAAA,KAAI,IAAG,OAAO,EAAA;AAAA,MAAE;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AAC/I,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,MAAA,IAAA,KAAO,KAAG,CAAA,GAAE,EAAA,CAAG,EAAE,GAAA,EAAI,CAAA,EAAE,EAAE,GAAA,EAAI,CAAA,CAAE,IAAI,CAAA,EAAE,CAAA,CAAE,cAAY,CAAA,CAAE,WAAA,EAAY,EAAE,IAAA,GAAK,CAAA,CAAE,MAAK,CAAA,CAAE,SAAA,GAAU,EAAE,SAAA,EAAU,CAAA,CAAE,YAAU,CAAA,EAAE,CAAA,CAAE,YAAU,CAAA,KAAI,CAAA,CAAE,eAAa,CAAA,EAAE,CAAA,CAAE,OAAK,CAAA,CAAE,IAAA,EAAK,EAAE,KAAA,GAAM,CAAA,EAAE,EAAE,YAAA,GAAa,CAAA,EAAE,EAAE,SAAA,GAAU,IAAA,CAAA;AAAM,MAAA,CAAA,CAAE,KAAA,GAAM,EAAE,KAAA,GAAM,QAAA;AAAS,MAAA,CAAA,CAAE,aAAW,CAAA,CAAE,UAAA;AAAW,MAAA,CAAA,CAAE,QAAM,CAAA,CAAE,KAAA;AAAM,MAAA,CAAA,CAAE,QAAM,CAAA,CAAE,KAAA;AAAM,MAAA,CAAA,CAAE,gBAAc,CAAA,CAAE,aAAA;AAAc,MAAA,CAAA,CAAE,gBAAc,CAAA,CAAE,aAAA;AAAc,MAAA,CAAA,CAAE,cAAY,CAAA,CAAE,WAAA;AAAY,MAAA,CAAA,GAAE,CAAA,CAAE,YAAA;AAAa,MAAA,CAAA,CAAE,YAAA,GAAa,IAAA,KAAO,CAAA,GAAE,IAAA,GAAK,EAAC,OAAM,CAAA,CAAE,KAAA,EAAM,YAAA,EAAa,CAAA,CAAE,YAAA,EAAY;AAC3f,MAAA,CAAA,CAAE,UAAQ,CAAA,CAAE,OAAA;AAAQ,MAAA,CAAA,CAAE,QAAM,CAAA,CAAE,KAAA;AAAM,MAAA,CAAA,CAAE,MAAI,CAAA,CAAE,GAAA;AAAI,MAAA,OAAO,CAAA;AAAA,IAAC;AACxD,IAAA,SAAS,GAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG,eAAa,OAAO,CAAA,EAAE,EAAA,CAAG,CAAC,MAAI,CAAA,GAAE,CAAA,CAAA;AAAA,WAAA,IAAW,QAAA,KAAW,OAAO,CAAA,EAAE,CAAA,GAAE,CAAA;AAAA,WAAO,CAAA,UAAS,CAAA;AAAE,QAAC,KAAK,EAAA;AAAG,UAAA,OAAO,EAAA,CAAG,CAAA,CAAE,QAAA,EAAS,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,CAAA,GAAE,CAAA;AAAE,UAAA,CAAA,IAAG,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,GAAE,EAAA,CAAG,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,CAAA,GAAE,CAAC,CAAA,EAAE,CAAA,CAAE,WAAA,GAAY,EAAA,EAAG,CAAA,CAAE,QAAM,CAAA,EAAE,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,GAAE,EAAA,CAAG,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,CAAE,WAAA,GAAY,EAAA,EAAG,CAAA,CAAE,KAAA,GAAM,CAAA,EAAE,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,CAAA,GAAE,EAAA,CAAG,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,CAAA,CAAE,WAAA,GAAY,EAAA,EAAG,CAAA,CAAE,KAAA,GAAM,CAAA,EAAE,CAAA;AAAA,QAAE,KAAK,EAAA;AAAG,UAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,QAAE;AAAQ,UAAA,IAAG,aAAW,OAAO,CAAA,IAAG,SAAO,CAAA,EAAE,QAAO,EAAE,QAAA;AAAS,YAAC,KAAK,EAAA;AAAG,cAAA,CAAA,GAAE,EAAA;AAAG,cAAA,MAAM,CAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA,CAAA,GAAE,CAAA;AAAE,cAAA,MAAM,CAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA,CAAA,GAAE,EAAA;AACpf,cAAA,MAAM,CAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA,CAAA,GAAE,EAAA;AAAG,cAAA,MAAM,CAAA;AAAA,YAAE,KAAK,EAAA;AAAG,cAAA,CAAA,GAAE,EAAA;AAAG,cAAA,CAAA,GAAE,IAAA;AAAK,cAAA,MAAM,CAAA;AAAA;AAAE,UAAA,MAAM,KAAA,CAAM,EAAE,GAAA,EAAI,IAAA,IAAM,IAAE,CAAA,GAAE,OAAO,CAAA,EAAE,EAAE,CAAC,CAAA;AAAA;AAAG,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,WAAA,GAAY,CAAA;AAAE,MAAA,CAAA,CAAE,IAAA,GAAK,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAA,CAAG,EAAA,EAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,WAAA,GAAY,EAAA;AAAG,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,CAAA,CAAE,SAAA,GAAU,EAAC,QAAA,EAAS,KAAA,EAAE;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,IAAA,EAAK,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAC5W,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,IAAA,KAAO,CAAA,CAAE,QAAA,GAAS,CAAA,CAAE,QAAA,GAAS,EAAC,EAAE,CAAA,CAAE,GAAA,EAAI,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,KAAA,GAAM,CAAA;AAAE,MAAA,CAAA,CAAE,SAAA,GAAU,EAAC,aAAA,EAAc,CAAA,CAAE,eAAc,eAAA,EAAgB,IAAA,EAAK,cAAA,EAAe,CAAA,CAAE,cAAA,EAAc;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AACtL,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAA,CAAK,GAAA,GAAI,CAAA;AAAE,MAAA,IAAA,CAAK,aAAA,GAAc,CAAA;AAAE,MAAA,IAAA,CAAK,eAAa,IAAA,CAAK,SAAA,GAAU,IAAA,CAAK,OAAA,GAAQ,KAAK,eAAA,GAAgB,IAAA;AAAK,MAAA,IAAA,CAAK,aAAA,GAAc,EAAA;AAAG,MAAA,IAAA,CAAK,YAAA,GAAa,IAAA,CAAK,cAAA,GAAe,IAAA,CAAK,OAAA,GAAQ,IAAA;AAAK,MAAA,IAAA,CAAK,gBAAA,GAAiB,CAAA;AAAE,MAAA,IAAA,CAAK,UAAA,GAAW,GAAG,CAAC,CAAA;AAAE,MAAA,IAAA,CAAK,eAAA,GAAgB,GAAG,EAAE,CAAA;AAAE,MAAA,IAAA,CAAK,cAAA,GAAe,IAAA,CAAK,aAAA,GAAc,IAAA,CAAK,gBAAA,GAAiB,IAAA,CAAK,YAAA,GAAa,IAAA,CAAK,WAAA,GAAY,IAAA,CAAK,cAAA,GAAe,IAAA,CAAK,YAAA,GAAa,CAAA;AAAE,MAAA,IAAA,CAAK,aAAA,GAAc,GAAG,CAAC,CAAA;AAAE,MAAA,IAAA,CAAK,gBAAA,GAAiB,CAAA;AAAE,MAAA,IAAA,CAAK,kBAAA,GAAmB,CAAA;AAAE,MAAA,IAAA,CAAK,+BAAA,GAC/e,IAAA;AAAA,IAAI;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,IAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,KAAI,KAAG,CAAA,GAAE,CAAA,EAAE,SAAK,CAAA,KAAI,CAAA,IAAG,MAAI,CAAA,GAAE,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,IAAA,EAAK,IAAA,EAAK,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,OAAA,GAAQ,CAAA;AAAE,MAAA,CAAA,CAAE,SAAA,GAAU,CAAA;AAAE,MAAA,CAAA,CAAE,aAAA,GAAc,EAAC,OAAA,EAAQ,CAAA,EAAE,YAAA,EAAa,CAAA,EAAE,KAAA,EAAM,IAAA,EAAK,WAAA,EAAY,IAAA,EAAK,yBAAA,EAA0B,IAAA,EAAI;AAAE,MAAA,EAAA,CAAG,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,GAAE,SAAA,CAAU,MAAA,IAAQ,MAAA,KAAS,UAAU,CAAC,CAAA,GAAE,SAAA,CAAU,CAAC,CAAA,GAAE,IAAA;AAAK,MAAA,OAAM,EAAC,QAAA,EAAS,EAAA,EAAG,GAAA,EAAI,QAAM,CAAA,GAAE,IAAA,GAAK,EAAA,GAAG,CAAA,EAAE,QAAA,EAAS,CAAA,EAAE,aAAA,EAAc,CAAA,EAAE,gBAAe,CAAA,EAAC;AAAA,IAAC;AACpa,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAG,CAAC,GAAE,OAAO,EAAA;AAAG,MAAA,CAAA,GAAE,CAAA,CAAE,eAAA;AAAgB,MAAA,CAAA,EAAE;AAAC,QAAA,IAAG,EAAA,CAAG,CAAC,CAAA,KAAI,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,GAAA,EAAI,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,GAAE;AAAC,UAAA,QAAO,EAAE,GAAA;AAAI,YAAC,KAAK,CAAA;AAAE,cAAA,CAAA,GAAE,EAAE,SAAA,CAAU,OAAA;AAAQ,cAAA,MAAM,CAAA;AAAA,YAAE,KAAK,CAAA;AAAE,cAAA,IAAG,EAAA,CAAG,CAAA,CAAE,IAAI,CAAA,EAAE;AAAC,gBAAA,CAAA,GAAE,EAAE,SAAA,CAAU,yCAAA;AAA0C,gBAAA,MAAM,CAAA;AAAA,cAAC;AAAA;AAAE,UAAA,CAAA,GAAE,CAAA,CAAE,MAAA;AAAA,QAAM,SAAO,IAAA,KAAO,CAAA;AAAG,QAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAA,MAAE;AAAC,MAAA,IAAG,CAAA,KAAI,EAAE,GAAA,EAAI;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,IAAA;AAAK,QAAA,IAAG,GAAG,CAAC,CAAA,SAAS,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAA,MAAC;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC;AACpW,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAA,EAAE,IAAA,EAAG,GAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,OAAA,GAAQ,GAAG,IAAI,CAAA;AAAE,MAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,CAAA,GAAE,CAAA,EAAE;AAAE,MAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,QAAA,GAAS,MAAA,KAAS,CAAA,IAAG,IAAA,KAAO,IAAE,CAAA,GAAE,IAAA;AAAK,MAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,QAAQ,KAAA,GAAM,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,EAAE,OAAA,EAAQ,CAAA,GAAE,GAAE,EAAE,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,IAAA,KAAO,EAAE,OAAA,GAAQ,CAAA,CAAE,OAAA,GAAQ,CAAA,GAAE,EAAE,cAAA,GAAe,CAAA;AAAE,MAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,OAAA,GAAQ,EAAC,OAAA,EAAQ,CAAA,EAAC;AAAE,MAAA,CAAA,GAAE,MAAA,KAAS,IAAE,IAAA,GAAK,CAAA;AAAE,MAAA,IAAA,KAAO,CAAA,KAAI,EAAE,QAAA,GAAS,CAAA,CAAA;AAAG,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,IAAA,KAAO,CAAA,KAAI,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA,CAAA;AAAG,MAAA,OAAO,CAAA;AAAA,IAAC;AAC3b,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,IAAG,CAAC,CAAA,CAAE,KAAA,EAAM,OAAO,IAAA;AAAK,MAAA,QAAO,CAAA,CAAE,MAAM,GAAA;AAAI,QAAC,KAAK,CAAA;AAAE,UAAA,OAAO,EAAE,KAAA,CAAM,SAAA;AAAA,QAAU;AAAQ,UAAA,OAAO,EAAE,KAAA,CAAM,SAAA;AAAA;AAAS,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,CAAA,CAAE,aAAA;AAAc,MAAA,IAAG,IAAA,KAAO,CAAA,IAAG,IAAA,KAAO,CAAA,CAAE,UAAA,EAAW;AAAC,QAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,QAAA,CAAA,CAAE,SAAA,GAAU,CAAA,KAAI,CAAA,IAAG,CAAA,GAAE,IAAE,CAAA,GAAE,CAAA;AAAA,MAAC;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,CAAG,GAAE,CAAA,EAAE;AAAC,MAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,MAAA,CAAC,CAAA,GAAE,CAAA,CAAE,SAAA,KAAY,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,SAAS,EAAA,GAAI;AAAC,MAAA,OAAO,IAAA;AAAA,IAAI;AAAC,IAAA,IAAI,KAAG,UAAA,KAAa,OAAO,WAAA,GAAY,WAAA,GAAY,SAAS,CAAA,EAAE;AAAC,MAAA,OAAA,CAAQ,MAAM,CAAC,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAA,CAAK,aAAA,GAAc,CAAA;AAAA,IAAC;AAC5b,IAAA,EAAA,CAAG,UAAU,MAAA,GAAO,EAAA,CAAG,SAAA,CAAU,MAAA,GAAO,SAAS,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,IAAA,CAAK,aAAA;AAAc,MAAA,IAAG,SAAO,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,IAAA,EAAK,IAAI,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,EAAA,CAAG,SAAA,CAAU,OAAA,GAAQ,EAAA,CAAG,SAAA,CAAU,UAAQ,WAAU;AAAC,MAAA,IAAI,IAAE,IAAA,CAAK,aAAA;AAAc,MAAA,IAAG,SAAO,CAAA,EAAE;AAAC,QAAA,IAAA,CAAK,aAAA,GAAc,IAAA;AAAK,QAAA,IAAI,IAAE,CAAA,CAAE,aAAA;AAAc,QAAA,EAAA,CAAG,WAAU;AAAC,UAAA,EAAA,CAAG,IAAA,EAAK,CAAA,EAAE,IAAA,EAAK,IAAI,CAAA;AAAA,QAAC,CAAC,CAAA;AAAE,QAAA,CAAA,CAAE,EAAE,CAAA,GAAE,IAAA;AAAA,MAAI;AAAA,IAAC,CAAA;AAAE,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,IAAA,CAAK,aAAA,GAAc,CAAA;AAAA,IAAC;AAC9V,IAAA,EAAA,CAAG,SAAA,CAAU,0BAAA,GAA2B,SAAS,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,EAAE;AAAC,QAAA,IAAI,IAAE,EAAA,EAAG;AAAE,QAAA,CAAA,GAAE,EAAC,SAAA,EAAU,IAAA,EAAK,MAAA,EAAO,CAAA,EAAE,UAAS,CAAA,EAAC;AAAE,QAAA,KAAA,IAAQ,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,EAAA,CAAG,MAAA,IAAQ,CAAA,KAAI,CAAA,IAAG,CAAA,GAAE,EAAA,CAAG,CAAC,CAAA,CAAE,QAAA,EAAS,CAAA,EAAA,EAAI;AAAC,QAAA,EAAA,CAAG,MAAA,CAAO,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAE,QAAA,CAAA,KAAI,CAAA,IAAG,GAAG,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC,CAAA;AAAE,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAM,EAAE,CAAC,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,YAAU,CAAA,KAAI,CAAA,CAAE,QAAA,IAAU,EAAA,KAAK,CAAA,CAAE,QAAA,CAAA;AAAA,IAAS;AAAC,IAAA,SAAS,GAAG,CAAA,EAAE;AAAC,MAAA,OAAM,EAAE,CAAC,CAAA,IAAG,CAAA,KAAI,CAAA,CAAE,YAAU,CAAA,KAAI,CAAA,CAAE,QAAA,IAAU,EAAA,KAAK,EAAE,QAAA,KAAW,CAAA,KAAI,CAAA,CAAE,QAAA,IAAU,mCAAiC,CAAA,CAAE,SAAA,CAAA,CAAA;AAAA,IAAW;AAAC,IAAA,SAAS,EAAA,GAAI;AAAA,IAAC;AACxa,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAA,EAAE;AAAC,QAAA,IAAG,UAAA,KAAa,OAAO,CAAA,EAAE;AAAC,UAAA,IAAI,CAAA,GAAE,CAAA;AAAE,UAAA,CAAA,GAAE,WAAU;AAAC,YAAA,IAAIb,EAAAA,GAAE,GAAG,CAAC,CAAA;AAAE,YAAA,CAAA,CAAE,KAAKA,EAAC,CAAA;AAAA,UAAC,CAAA;AAAA,QAAC;AAAC,QAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,IAAA,EAAK,KAAA,EAAG,KAAA,EAAG,EAAA,EAAG,EAAE,CAAA;AAAE,QAAA,CAAA,CAAE,mBAAA,GAAoB,CAAA;AAAE,QAAA,CAAA,CAAE,EAAE,IAAE,CAAA,CAAE,OAAA;AAAQ,QAAA,EAAA,CAAG,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,CAAA,CAAE,aAAW,CAAC,CAAA;AAAE,QAAA,EAAA,EAAG;AAAE,QAAA,OAAO,CAAA;AAAA,MAAC;AAAC,MAAA,OAAK,CAAA,GAAE,CAAA,CAAE,SAAA,IAAW,CAAA,CAAE,YAAY,CAAC,CAAA;AAAE,MAAA,IAAG,UAAA,KAAa,OAAO,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,CAAA,GAAE,WAAU;AAAC,UAAA,IAAIA,EAAAA,GAAE,GAAG,CAAC,CAAA;AAAE,UAAA,CAAA,CAAE,KAAKA,EAAC,CAAA;AAAA,QAAC,CAAA;AAAA,MAAC;AAAC,MAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,KAAA,EAAG,MAAK,IAAA,EAAK,KAAA,EAAG,KAAA,EAAG,EAAA,EAAG,EAAE,CAAA;AAAE,MAAA,CAAA,CAAE,mBAAA,GAAoB,CAAA;AAAE,MAAA,CAAA,CAAE,EAAE,IAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,EAAA,CAAG,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,CAAA,CAAE,aAAW,CAAC,CAAA;AAAE,MAAA,EAAA,CAAG,WAAU;AAAC,QAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,MAAC,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA;AAAA,IAAC;AAC9d,IAAA,SAAS,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,IAAE,CAAA,CAAE,mBAAA;AAAoB,MAAA,IAAG,CAAA,EAAE;AAAC,QAAA,IAAI,CAAA,GAAE,CAAA;AAAE,QAAA,IAAG,UAAA,KAAa,OAAO,CAAA,EAAE;AAAC,UAAA,IAAI,CAAA,GAAE,CAAA;AAAE,UAAA,CAAA,GAAE,WAAU;AAAC,YAAA,IAAIA,EAAAA,GAAE,GAAG,CAAC,CAAA;AAAE,YAAA,CAAA,CAAE,KAAKA,EAAC,CAAA;AAAA,UAAC,CAAA;AAAA,QAAC;AAAC,QAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,MAAC,OAAM,CAAA,GAAE,EAAA,CAAG,GAAE,CAAA,EAAE,CAAA,EAAE,GAAE,CAAC,CAAA;AAAE,MAAA,OAAO,GAAG,CAAC,CAAA;AAAA,IAAC;AAAC,IAAA,EAAA,GAAG,SAAS,CAAA,EAAE;AAAC,MAAA,QAAO,EAAE,GAAA;AAAI,QAAC,KAAK,CAAA;AAAE,UAAA,IAAI,IAAE,CAAA,CAAE,SAAA;AAAU,UAAA,IAAG,CAAA,CAAE,OAAA,CAAQ,aAAA,CAAc,YAAA,EAAa;AAAC,YAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,CAAE,YAAY,CAAA;AAAE,YAAA,CAAA,KAAI,MAAI,EAAA,CAAG,CAAA,EAAE,IAAE,CAAC,CAAA,EAAE,GAAG,CAAA,EAAE,CAAA,EAAG,CAAA,EAAE,OAAK,CAAA,GAAE,CAAA,CAAA,KAAK,KAAG,CAAA,EAAE,GAAE,KAAI,EAAA,EAAG,CAAA,CAAA;AAAA,UAAG;AAAC,UAAA;AAAA,QAAM,KAAK,EAAA;AAAG,UAAA,EAAA,CAAG,WAAU;AAAC,YAAA,IAAIC,EAAAA,GAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAE,YAAA,IAAG,SAAOA,EAAAA,EAAE;AAAC,cAAA,IAAIM,KAAE,CAAA,EAAE;AAAE,cAAA,EAAA,CAAGN,EAAAA,EAAE,CAAA,EAAE,CAAA,EAAEM,EAAC,CAAA;AAAA,YAAC;AAAA,UAAC,CAAC,CAAA,EAAE,EAAA,CAAG,CAAA,EAAE,CAAC,CAAA;AAAA;AAAC,IAAC,CAAA;AAC/b,IAAA,EAAA,GAAG,SAAS,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,KAAK,EAAE,GAAA,EAAI;AAAC,QAAA,IAAI,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,SAAS,CAAA;AAAE,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,IAAI,IAAE,CAAA,EAAE;AAAE,UAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,SAAA,EAAU,CAAC,CAAA;AAAA,QAAC;AAAC,QAAA,EAAA,CAAG,GAAE,SAAS,CAAA;AAAA,MAAC;AAAA,IAAC,CAAA;AAAE,IAAA,EAAA,GAAG,SAAS,CAAA,EAAE;AAAC,MAAA,IAAG,EAAA,KAAK,EAAE,GAAA,EAAI;AAAC,QAAA,IAAI,IAAE,EAAA,CAAG,CAAC,GAAE,CAAA,GAAE,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,QAAA,IAAG,SAAO,CAAA,EAAE;AAAC,UAAA,IAAI,IAAE,CAAA,EAAE;AAAE,UAAA,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,CAAC,CAAA;AAAA,QAAC;AAAC,QAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,MAAC;AAAA,IAAC,CAAA;AAAE,IAAA,EAAA,GAAG,WAAU;AAAC,MAAA,OAAO,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,EAAA,GAAG,SAAS,GAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA;AAAE,MAAA,IAAG;AAAC,QAAA,OAAO,CAAA,GAAE,GAAE,CAAA,EAAE;AAAA,MAAC,CAAA,SAAC;AAAQ,QAAA,CAAA,GAAE,CAAA;AAAA,MAAC;AAAA,IAAC,CAAA;AAClS,IAAA,EAAA,GAAG,SAAS,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,QAAO,CAAA;AAAE,QAAC,KAAK,OAAA;AAAQ,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA,CAAA,GAAE,CAAA,CAAE,IAAA;AAAK,UAAA,IAAG,OAAA,KAAU,CAAA,CAAE,IAAA,IAAM,IAAA,IAAM,CAAA,EAAE;AAAC,YAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,CAAE,UAAA,QAAc,CAAA,CAAE,UAAA;AAAW,YAAA,CAAA,GAAE,CAAA,CAAE,iBAAiB,aAAA,GAAc,IAAA,CAAK,UAAU,EAAA,GAAG,CAAC,IAAE,iBAAiB,CAAA;AAAE,YAAA,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,QAAO,CAAA,EAAA,EAAI;AAAC,cAAA,IAAI,CAAA,GAAE,EAAE,CAAC,CAAA;AAAE,cAAA,IAAG,CAAA,KAAI,CAAA,IAAG,CAAA,CAAE,IAAA,KAAO,EAAE,IAAA,EAAK;AAAC,gBAAA,IAAI,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,gBAAA,IAAG,CAAC,CAAA,EAAE,MAAM,KAAA,CAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAE,gBAAA,EAAA,CAAG,CAAC,CAAA;AAAE,gBAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAA,cAAC;AAAA,YAAC;AAAA,UAAC;AAAC,UAAA;AAAA,QAAM,KAAK,UAAA;AAAW,UAAA,EAAA,CAAG,GAAE,CAAC,CAAA;AAAE,UAAA;AAAA,QAAM,KAAK,QAAA;AAAS,UAAA,CAAA,GAAE,CAAA,CAAE,KAAA,EAAM,IAAA,IAAM,CAAA,IAAG,EAAA,CAAG,CAAA,EAAE,CAAC,CAAC,CAAA,CAAE,QAAA,EAAS,CAAA,EAAE,KAAE,CAAA;AAAA;AAAC,IAAC,CAAA;AAAE,IAAA,EAAA,GAAG,EAAA;AAAG,IAAA,EAAA,GAAG,EAAA;AACpa,IAAA,IAAI,EAAA,GAAG,EAAC,qBAAA,EAAsB,KAAA,EAAG,MAAA,EAAO,CAAC,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,EAAA,EAAG,EAAE,CAAA,EAAC;AAA3D,IAAA,IAA6D,EAAA,GAAG,EAAC,uBAAA,EAAwB,EAAA,EAAG,YAAW,CAAA,EAAE,OAAA,EAAQ,QAAA,EAAS,mBAAA,EAAoB,WAAA,EAAW;AACzJ,IAAA,IAAI,KAAG,EAAC,UAAA,EAAW,EAAA,CAAG,UAAA,EAAW,SAAQ,EAAA,CAAG,OAAA,EAAQ,mBAAA,EAAoB,EAAA,CAAG,qBAAoB,cAAA,EAAe,EAAA,CAAG,cAAA,EAAe,iBAAA,EAAkB,MAAK,2BAAA,EAA4B,IAAA,EAAK,2BAAA,EAA4B,IAAA,EAAK,eAAc,IAAA,EAAK,uBAAA,EAAwB,IAAA,EAAK,uBAAA,EAAwB,MAAK,eAAA,EAAgB,IAAA,EAAK,kBAAA,EAAmB,IAAA,EAAK,gBAAe,IAAA,EAAK,oBAAA,EAAqB,GAAG,sBAAA,EAAuB,uBAAA,EAAwB,SAAS,CAAA,EAAE;AAAC,MAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,OAAO,IAAA,KAAO,CAAA,GAAE,IAAA,GAAK,CAAA,CAAE,SAAA;AAAA,IAAS,GAAE,uBAAA,EAAwB,EAAA,CAAG,uBAAA,IAC/f,EAAA,EAAG,6BAA4B,IAAA,EAAK,eAAA,EAAgB,IAAA,EAAK,YAAA,EAAa,MAAK,iBAAA,EAAkB,IAAA,EAAK,eAAA,EAAgB,IAAA,EAAK,mBAAkB,iCAAA,EAAiC;AAAE,IAAA,IAAG,WAAA,KAAc,OAAO,8BAAA,EAA+B;AAAK,MAAA,EAAA,GAAG,8BAAA;AAA+B,MAAA,IAAG,CAAC,EAAA,CAAG,UAAA,IAAY,EAAA,CAAG,eAAc,IAAG;AAAC,QAAA,EAAA,GAAG,EAAA,CAAG,MAAA,CAAO,EAAE,CAAA,EAAE,EAAA,GAAG,EAAA;AAAA,MAAE,SAAO,CAAA,EAAE;AAAA,MAAC;AAAA,IAAC;AAA3G,IAAA,IAAA,EAAA;AAA4G,IAAA,OAAA,CAAQ,kDAAA,GAAmD,EAAA;AAC/Y,IAAA,OAAA,CAAQ,YAAA,GAAa,SAAS,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,CAAA,GAAE,CAAA,GAAE,SAAA,CAAU,MAAA,IAAQ,MAAA,KAAS,UAAU,CAAC,CAAA,GAAE,SAAA,CAAU,CAAC,CAAA,GAAE,IAAA;AAAK,MAAA,IAAG,CAAC,GAAG,CAAC,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,IAAA,EAAK,CAAC,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,OAAA,CAAQ,UAAA,GAAW,SAAS,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAC,GAAG,CAAC,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,KAAA,EAAG,CAAA,GAAE,EAAA,EAAG,CAAA,GAAE,EAAA;AAAG,MAAA,IAAA,KAAO,KAAG,MAAA,KAAS,CAAA,KAAI,SAAK,CAAA,CAAE,mBAAA,KAAsB,IAAE,IAAA,CAAA,EAAI,MAAA,KAAS,CAAA,CAAE,gBAAA,KAAmB,IAAE,CAAA,CAAE,gBAAA,CAAA,EAAkB,WAAS,CAAA,CAAE,kBAAA,KAAqB,IAAE,CAAA,CAAE,kBAAA,CAAA,CAAA;AAAqB,MAAA,CAAA,GAAE,EAAA,CAAG,GAAE,CAAA,EAAE,KAAA,EAAG,MAAK,IAAA,EAAK,CAAA,EAAE,KAAA,EAAG,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,EAAE,IAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,EAAA,CAAG,CAAA,KAAI,CAAA,CAAE,QAAA,GAAS,CAAA,CAAE,aAAW,CAAC,CAAA;AAAE,MAAA,OAAO,IAAI,GAAG,CAAC,CAAA;AAAA,IAAC,CAAA;AACrf,IAAA,OAAA,CAAQ,WAAA,GAAY,SAAS,CAAA,EAAE;AAAC,MAAA,IAAG,IAAA,IAAM,GAAE,OAAO,IAAA;AAAK,MAAA,IAAG,CAAA,KAAI,CAAA,CAAE,QAAA,EAAS,OAAO,CAAA;AAAE,MAAA,IAAI,IAAE,CAAA,CAAE,eAAA;AAAgB,MAAA,IAAG,WAAS,CAAA,EAAE;AAAC,QAAA,IAAG,UAAA,KAAa,OAAO,CAAA,CAAE,MAAA,QAAa,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,QAAA,CAAA,GAAE,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,CAAE,KAAK,GAAG,CAAA;AAAE,QAAA,MAAM,KAAA,CAAM,CAAA,CAAE,GAAA,EAAI,CAAC,CAAC,CAAA;AAAA,MAAE;AAAC,MAAA,CAAA,GAAE,GAAG,CAAC,CAAA;AAAE,MAAA,CAAA,GAAE,IAAA,KAAO,CAAA,GAAE,IAAA,GAAK,CAAA,CAAE,SAAA;AAAU,MAAA,OAAO,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,OAAA,CAAQ,SAAA,GAAU,SAAS,CAAA,EAAE;AAAC,MAAA,OAAO,GAAG,CAAC,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,OAAA,CAAQ,OAAA,GAAQ,SAAS,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAC,GAAG,CAAC,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,OAAO,EAAA,CAAG,IAAA,EAAK,CAAA,EAAE,CAAA,EAAE,MAAG,CAAC,CAAA;AAAA,IAAC,CAAA;AAC/Y,IAAA,OAAA,CAAQ,WAAA,GAAY,SAAS,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAC,GAAG,CAAC,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,IAAI,CAAA,GAAE,IAAA,IAAM,CAAA,IAAG,CAAA,CAAE,eAAA,IAAiB,MAAK,CAAA,GAAE,KAAA,EAAG,CAAA,GAAE,EAAA,EAAG,CAAA,GAAE,EAAA;AAAG,MAAA,IAAA,KAAO,KAAG,MAAA,KAAS,CAAA,KAAI,SAAK,CAAA,CAAE,mBAAA,KAAsB,IAAE,IAAA,CAAA,EAAI,MAAA,KAAS,CAAA,CAAE,gBAAA,KAAmB,IAAE,CAAA,CAAE,gBAAA,CAAA,EAAkB,WAAS,CAAA,CAAE,kBAAA,KAAqB,IAAE,CAAA,CAAE,kBAAA,CAAA,CAAA;AAAqB,MAAA,CAAA,GAAE,EAAA,CAAG,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,CAAA,EAAE,IAAA,IAAM,CAAA,GAAE,CAAA,GAAE,IAAA,EAAK,CAAA,EAAE,KAAA,EAAG,CAAA,EAAE,CAAC,CAAA;AAAE,MAAA,CAAA,CAAE,EAAE,IAAE,CAAA,CAAE,OAAA;AAAQ,MAAA,EAAA,CAAG,CAAC,CAAA;AAAE,MAAA,IAAG,CAAA,EAAE,KAAI,CAAA,GAAE,CAAA,EAAE,CAAA,GAAE,CAAA,CAAE,MAAA,EAAO,CAAA,EAAA,EAAI,CAAA,GAAE,CAAA,CAAE,CAAC,CAAA,EAAE,IAAE,CAAA,CAAE,WAAA,EAAY,CAAA,GAAE,CAAA,CAAE,CAAA,CAAE,OAAO,CAAA,EAAE,IAAA,IAAM,CAAA,CAAE,+BAAA,GAAgC,CAAA,CAAE,+BAAA,GAAgC,CAAC,CAAA,EAAE,CAAC,CAAA,GAAE,EAAE,+BAAA,CAAgC,IAAA;AAAA,QAAK,CAAA;AAAA,QACvhB;AAAA,OAAC;AAAE,MAAA,OAAO,IAAI,GAAG,CAAC,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,OAAA,CAAQ,MAAA,GAAO,SAAS,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAC,GAAG,CAAC,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,OAAO,EAAA,CAAG,IAAA,EAAK,CAAA,EAAE,CAAA,EAAE,OAAG,CAAC,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,OAAA,CAAQ,sBAAA,GAAuB,SAAS,CAAA,EAAE;AAAC,MAAA,IAAG,CAAC,GAAG,CAAC,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAE,MAAA,OAAO,CAAA,CAAE,mBAAA,IAAqB,EAAA,CAAG,WAAU;AAAC,QAAA,EAAA,CAAG,IAAA,EAAK,IAAA,EAAK,CAAA,EAAE,KAAA,EAAG,WAAU;AAAC,UAAA,CAAA,CAAE,mBAAA,GAAoB,IAAA;AAAK,UAAA,CAAA,CAAE,EAAE,CAAA,GAAE,IAAA;AAAA,QAAI,CAAC,CAAA;AAAA,MAAC,CAAC,GAAE,IAAA,IAAI,KAAA;AAAA,IAAE,CAAA;AAAE,IAAA,OAAA,CAAQ,uBAAA,GAAwB,EAAA;AAC/U,IAAA,OAAA,CAAQ,mCAAA,GAAoC,SAAS,CAAA,EAAE,CAAA,EAAE,GAAE,CAAA,EAAE;AAAC,MAAA,IAAG,CAAC,GAAG,CAAC,CAAA,QAAQ,KAAA,CAAM,CAAA,CAAE,GAAG,CAAC,CAAA;AAAE,MAAA,IAAG,IAAA,IAAM,KAAG,MAAA,KAAS,CAAA,CAAE,iBAAgB,MAAM,KAAA,CAAM,CAAA,CAAE,EAAE,CAAC,CAAA;AAAE,MAAA,OAAO,EAAA,CAAG,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE,OAAG,CAAC,CAAA;AAAA,IAAC,CAAA;AAAE,IAAA,OAAA,CAAQ,OAAA,GAAQ,iCAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACjU7L,IAAA,iBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,uCAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAEA,IAAA,SAAS,QAAA,GAAW;AAElB,MAAA,IACE,OAAO,8BAAA,KAAmC,WAAA,IAC1C,OAAO,8BAAA,CAA+B,aAAa,UAAA,EACnD;AACA,QAAA;AAAA,MACF;AAWA,MAAA,IAAI;AAEF,QAAA,8BAAA,CAA+B,SAAS,QAAQ,CAAA;AAAA,MAClD,SAAS,GAAA,EAAK;AAGZ,QAAA,OAAA,CAAQ,MAAM,GAAG,CAAA;AAAA,MACnB;AAAA,IACF;AAEA,IAA2C;AAGzC,MAAA,QAAA,EAAS;AACT,MAAA,MAAA,CAAO,OAAA,GAAU,gCAAA,EAAA;AAAA,IACnB;AAEA,EAAA;AAAA,CAAA,CAAA;;;ACrCA,IAAA,cAAA,GAAA,UAAA,CAAA;AAAA,EAAA,wCAAA,CAAA,OAAA,EAAA;AAEA,IAAA,IAAI,CAAA,GAAI,iBAAA,EAAA;AACR,IAA2C;AACzC,MAAA,OAAA,CAAQ,aAAa,CAAA,CAAE,UAAA;AACvB,MAAA,OAAA,CAAQ,cAAc,CAAA,CAAE,WAAA;AAAA,IAC1B;AACM,EAAA;AAAA,CAAA,CAAA;;;ACPN,IAAA,wCAAA,GAAA,UAAA,CAAA;AAAA,EAAA,kEAAA,CAAA,OAAA,EAAA;AASa,IAAA,IAAI,CAAA,GAAE,aAAA,EAAA;AAAN,IAAA,IAAuB,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,eAAe,CAAA;AAAnD,IAAA,IAAqD,CAAA,mBAAE,MAAA,CAAO,GAAA,CAAI,gBAAgB,CAAA;AAAlF,IAAA,IAAoF,CAAA,GAAE,OAAO,SAAA,CAAU,cAAA;AAAvG,IAAA,IAAsH,CAAA,GAAE,EAAE,kDAAA,CAAmD,iBAAA;AAA7K,IAAA,IAA+L,CAAA,GAAE,EAAC,GAAA,EAAI,IAAA,EAAG,KAAI,IAAA,EAAG,MAAA,EAAO,IAAA,EAAG,QAAA,EAAS,IAAA,EAAE;AAClP,IAAA,SAAS,CAAA,CAAE,CAAA,EAAE,CAAA,EAAE,CAAA,EAAE;AAAC,MAAA,IAAI,GAAE,CAAA,GAAE,EAAC,EAAE,CAAA,GAAE,MAAK,CAAA,GAAE,IAAA;AAAK,MAAA,MAAA,KAAS,CAAA,KAAI,IAAE,EAAA,GAAG,CAAA,CAAA;AAAG,MAAA,MAAA,KAAS,CAAA,CAAE,GAAA,KAAM,CAAA,GAAE,EAAA,GAAG,CAAA,CAAE,GAAA,CAAA;AAAK,MAAA,MAAA,KAAS,CAAA,CAAE,GAAA,KAAM,CAAA,GAAE,CAAA,CAAE,GAAA,CAAA;AAAK,MAAA,KAAI,KAAK,CAAA,EAAE,CAAA,CAAE,IAAA,CAAK,CAAA,EAAE,CAAC,CAAA,IAAG,CAAC,CAAA,CAAE,cAAA,CAAe,CAAC,CAAA,KAAI,CAAA,CAAE,CAAC,CAAA,GAAE,EAAE,CAAC,CAAA,CAAA;AAAG,MAAA,IAAG,KAAG,CAAA,CAAE,YAAA,EAAa,KAAI,CAAA,IAAK,IAAE,CAAA,CAAE,YAAA,EAAa,CAAA,EAAE,MAAA,KAAS,EAAE,CAAC,CAAA,KAAI,EAAE,CAAC,CAAA,GAAE,EAAE,CAAC,CAAA,CAAA;AAAG,MAAA,OAAM,EAAC,QAAA,EAAS,CAAA,EAAE,IAAA,EAAK,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,GAAA,EAAI,CAAA,EAAE,KAAA,EAAM,CAAA,EAAE,MAAA,EAAO,EAAE,OAAA,EAAO;AAAA,IAAC;AAAC,IAAA,OAAA,CAAQ,QAAA,GAAS,CAAA;AAAE,IAAA,OAAA,CAAQ,GAAA,GAAI,CAAA;AAAE,IAAA,OAAA,CAAQ,IAAA,GAAK,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACV1W,IAAA,mBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,yCAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AAEA,IAA2C;AACzC,MAAA,MAAA,CAAO,OAAA,GAAU,wCAAA,EAAA;AAAA,IACnB;AAEA,EAAA;AAAA,CAAA,CAAA;;;ACSA,IAAAO,cAAAA,GAA8B,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;AAC9B,IAAA,aAAA,GAAsC,OAAA,CAAA,cAAA,EAAA,EAAA,CAAA,CAAA;;;AChBtC,IAAA,YAAA,GAA0D,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;AAoBjD,IAAA,kBAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AART,IAAM,gBAAA,GAAA,IAAmB,4BAAgC,IAAI,CAAA;AAOtD,SAAS,iBAAA,CAAkB,EAAE,SAAA,EAAW,QAAA,EAAS,EAA2B;AACjF,EAAA,mDAAQ,gBAAA,CAAiB,QAAA,EAAjB,EAA0B,KAAA,EAAO,WAAY,QAAA,EAAS,CAAA;AAChE;AAGO,SAAS,YAAA,GAA0B;AACxC,EAAA,MAAM,SAAA,GAAA,IAAY,yBAAW,gBAAgB,CAAA;AAC7C,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,MAAM,IAAI,MAAM,2DAA2D,CAAA;AAAA,EAC7E;AACA,EAAA,OAAO,SAAA;AACT;;;AC9BA,IAAAA,cAAAA,GAAyB,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;;;;;;ACQZ,IAAA,WAAA,GAAc,CAAC,MAAA,KAC1B,MAAA,CAAO,QAAQ,oBAAA,EAAsB,OAAO,EAAE,WAAA,EAAY;AAsB/C,IAAA,YAAA,GAAe,IAA2C,OAAA,KACrE,OAAA,CACG,OAAO,CAAC,SAAA,EAAW,OAAO,KAAA,KAAU;AACnC,EAAA,OAAO,QAAQ,SAAS,CAAA,IAAK,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,KAAM,KAAA;AAC5D,CAAC,CAAA,CACA,KAAK,GAAG,CAAA;;;;;;ACpCb,IAAe,iBAAA,GAAA;EACb,KAAA,EAAO,4BAAA;EACP,KAAA,EAAO,EAAA;EACP,MAAA,EAAQ,EAAA;EACR,OAAA,EAAS,WAAA;EACT,IAAA,EAAM,MAAA;EACN,MAAA,EAAQ,cAAA;EACR,WAAA,EAAa,CAAA;EACb,aAAA,EAAe,OAAA;EACf,cAAA,EAAgB;AAClB,CAAA;;;ACcA,IAAM,IAAA,GAAA,IAAO,aAAA,CAAA,UAAA;EACX,CACE;IACE,KAAA,GAAQ,cAAA;IACR,IAAA,GAAO,EAAA;IACP,WAAA,GAAc,CAAA;AACd,IAAA,mBAAA;IACA,SAAA,GAAY,EAAA;AACZ,IAAA,QAAA;AACA,IAAA,QAAA;IACA,GAAG;AAAA,GAAA,EAEL,GAAA,KACG;AACI,IAAA,OAAA,IAAA,aAAA,CAAA,aAAA;AACL,MAAA,KAAA;AACA,MAAA;AACE,QAAA,GAAA;QACA,GAAG,iBAAA;QACH,KAAA,EAAO,IAAA;QACP,MAAA,EAAQ,IAAA;QACR,MAAA,EAAQ,KAAA;AACR,QAAA,WAAA,EAAa,sBAAuB,MAAA,CAAO,WAAW,IAAI,EAAA,GAAM,MAAA,CAAO,IAAI,CAAA,GAAI,WAAA;QAC/E,SAAA,EAAW,YAAA,CAAa,UAAU,SAAS,CAAA;QAC3C,GAAG;AACL,OAAA;AACA,MAAA;QACE,GAAG,QAAA,CAAS,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAA,IAAM,aAAA,CAAA,aAAA,EAAc,GAAA,EAAK,KAAK,CAAC,CAAA;AAC3D,QAAA,GAAI,MAAM,OAAA,CAAQ,QAAQ,CAAA,GAAI,QAAA,GAAW,CAAC,QAAQ;AACpD;AAAA,KAAA;AAEJ,EAAA;AACF,CAAA;;;AC7CM,IAAA,gBAAA,GAAmB,CAAC,QAAA,EAAkB,QAAA,KAAuB;AACjE,EAAA,MAAM,SAAA,GAAA,IAAY,aAAA,CAAA,UAAA;AAAuC,IAAA,CAAC,EAAE,SAAA,EAAW,GAAG,OAAS,EAAA,GAAA,KAAA,IACjF,6BAAc,IAAA,EAAM;AAClB,MAAA,GAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA,EAAW,aAAa,CAAA,OAAA,EAAU,WAAA,CAAY,QAAQ,CAAC,IAAI,SAAS,CAAA;MACpE,GAAG;KACJ;AAAA,GAAA;AAGO,EAAA,SAAA,CAAA,WAAA,GAAc,GAAG,QAAQ,CAAA,CAAA;AAE5B,EAAA,OAAA,SAAA;AACT,CAAA;;;ACXM,IAAA,cAAA,GAAiB,iBAAiB,gBAAA,EAAkB;AACxD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,cAAA,EAAgB,GAAA,EAAK,UAAU,CAAA;AAC7C,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,SAAA,EAAW,GAAA,EAAK,UAAU,CAAA;AACxC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,gBAAA,EAAkB,GAAA,EAAK,UAAU,CAAA;AAC/C,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,UAAA,EAAY,GAAA,EAAK,UAAU;AAC3C,CAAC,CAAA;;;ACLK,IAAA,SAAA,GAAY,iBAAiB,WAAA,EAAa;AAC9C,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,gBAAA,EAAkB,GAAA,EAAK,UAAU,CAAA;AAC/C,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,UAAA,EAAY,GAAA,EAAK,UAAU;AAC3C,CAAC,CAAA;;;ACHK,IAAA,UAAA,GAAa,iBAAiB,YAAA,EAAc;AAChD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,UAAA,EAAY,GAAA,EAAK,UAAU,CAAA;AACzC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,eAAA,EAAiB,GAAA,EAAK,UAAU;AAChD,CAAC,CAAA;;;ACHK,IAAA,aAAA,GAAgB,iBAAiB,eAAA,EAAiB;AACtD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,8DAAA,EAAgE,GAAA,EAAK,UAAU,CAAA;AAC7F,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,SAAA,EAAW,GAAA,EAAK,UAAU,CAAA;AACxC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,QAAA,EAAU,GAAA,EAAK,UAAU,CAAA;AACvC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,SAAA,EAAW,GAAA,EAAK,UAAU,CAAA;AACxC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,uBAAA,EAAyB,GAAA,EAAK,UAAU,CAAA;EACtD,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,MAAM,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU;AAC1D,CAAC,CAAA;;;ACPD,IAAM,KAAA,GAAQ,gBAAA,CAAiB,OAAA,EAAS,CAAC,CAAC,MAAA,EAAQ,EAAE,CAAA,EAAG,iBAAA,EAAmB,GAAA,EAAK,QAAA,EAAU,CAAC,CAAC,CAAA;;;ACArF,IAAA,WAAA,GAAc,iBAAiB,aAAA,EAAe;AAClD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,cAAA,EAAgB,GAAA,EAAK,UAAU;AAC/C,CAAC,CAAA;;;ACFK,IAAA,YAAA,GAAe,iBAAiB,cAAA,EAAgB;AACpD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,eAAA,EAAiB,GAAA,EAAK,UAAU;AAChD,CAAC,CAAA;;;ACFK,IAAA,UAAA,GAAa,iBAAiB,YAAA,EAAc;EAChD,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,MAAM,CAAA,EAAG,IAAA,EAAM,GAAA,EAAK,QAAA,EAAU,CAAA;AACzD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,sCAAA,EAAwC,GAAA,EAAK,UAAU,CAAA;AACrE,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,YAAA,EAAc,GAAA,EAAK,UAAU;AAC7C,CAAC,CAAA;;;ACJK,IAAA,KAAA,GAAQ,iBAAiB,OAAA,EAAS;EACtC,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,MAAM,CAAA,EAAG,IAAA,EAAM,GAAA,EAAK,QAAA,EAAU,CAAA;AACzD,EAAA,CAAC,YAAY,EAAE,MAAA,EAAQ,kBAAA,EAAoB,GAAA,EAAK,UAAU;AAC5D,CAAC,CAAA;;;ACHK,IAAA,MAAA,GAAS,iBAAiB,QAAA,EAAU;AACxC,EAAA;AACE,IAAA,MAAA;AACA,IAAA;MACE,CAAA,EAAG,uHAAA;MACH,GAAA,EAAK;AACP;AACF,GAAA;AACA,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,WAAA,EAAa,GAAA,EAAK,UAAU,CAAA;AAC1C,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,WAAA,EAAa,GAAA,EAAK,UAAU;AAC5C,CAAC,CAAA;;;ACVK,IAAA,YAAA,GAAe,iBAAiB,cAAA,EAAgB;AACpD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,WAAA,EAAa,GAAA,EAAK,UAAU,CAAA;AAC1C,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,aAAA,EAAe,GAAA,EAAK,UAAU,CAAA;AAC5C,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,0DAAA,EAA4D,GAAA,EAAK,UAAU;AAC3F,CAAC,CAAA;;;ACJK,IAAA,OAAA,GAAU,iBAAiB,SAAA,EAAW;AAC1C,EAAA,CAAC,MAAA,EAAQ,EAAE,KAAA,EAAO,IAAA,EAAM,QAAQ,IAAA,EAAM,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,UAAU,CAAA;AAC9E,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,SAAA,EAAW,GAAA,EAAK,UAAU,CAAA;AACxC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,UAAA,EAAY,GAAA,EAAK,UAAU,CAAA;AACzC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,SAAA,EAAW,GAAA,EAAK,UAAU,CAAA;AACxC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,UAAA,EAAY,GAAA,EAAK,UAAU;AAC3C,CAAC,CAAA;;;ACNK,IAAA,IAAA,GAAO,iBAAiB,MAAA,EAAQ;AACpC,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU,CAAA;AAC/D,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,GAAA,EAAK,QAAA,EAAU,CAAA;AACjE,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,IAAA,EAAM,GAAA,EAAK,QAAA,EAAU,CAAA;AAChE,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,IAAA,EAAM,GAAA,EAAK,QAAA,EAAU;AACnE,CAAC,CAAA;;;ACLK,IAAA,UAAA,GAAa,iBAAiB,YAAA,EAAc;AAChD,EAAA;AACE,IAAA,MAAA;AACA,IAAA;MACE,CAAA,EAAG,6HAAA;MACH,GAAA,EAAK;AACP;AACF;AACF,CAAC,CAAA;;;ACRK,IAAA,YAAA,GAAe,iBAAiB,cAAA,EAAgB;AACpD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,6BAAA,EAA+B,GAAA,EAAK,UAAU;AAC9D,CAAC,CAAA;;;ACFK,IAAA,MAAA,GAAS,iBAAiB,QAAA,EAAU;AACxC,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,IAAA,EAAM,GAAA,EAAK,QAAA,EAAU,CAAA;AAChE,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,uCAAA,EAAyC,GAAA,EAAK,UAAU,CAAA;AACtE,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,wBAAA,EAA0B,GAAA,EAAK,UAAU,CAAA;AACvD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,gCAAA,EAAkC,GAAA,EAAK,UAAU,CAAA;AAC/D,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,4BAAA,EAA8B,GAAA,EAAK,UAAU,CAAA;AAC3D,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,GAAA,EAAK,QAAA,EAAU;AACpE,CAAC,CAAA;;;ACPK,IAAA,GAAA,GAAM,iBAAiB,KAAA,EAAO;AAClC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,sDAAA,EAAwD,GAAA,EAAK,UAAU,CAAA;AACrF,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,4BAAA,EAA8B,GAAA,EAAK,UAAU,CAAA;AAC3D,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,GAAA,EAAK,QAAA,EAAU;AACpE,CAAC,CAAA;;;ACJK,IAAA,iBAAA,GAAoB,iBAAiB,mBAAA,EAAqB;AAC9D,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,yDAAA,EAA2D,GAAA,EAAK,UAAU,CAAA;AACxF,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,mBAAA,EAAqB,GAAA,EAAK,UAAU,CAAA;AAClD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,SAAA,EAAW,GAAA,EAAK,UAAU,CAAA;AACxC,EAAA,CAAC,MAAA,EAAQ,EAAE,KAAA,EAAO,GAAA,EAAK,QAAQ,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,UAAU;AACjF,CAAC,CAAA;;;ACLK,IAAA,KAAA,GAAQ,iBAAiB,OAAA,EAAS;AACtC,EAAA,CAAC,MAAA,EAAQ,EAAE,CAAA,EAAG,IAAA,EAAM,GAAG,GAAA,EAAK,KAAA,EAAO,GAAA,EAAK,MAAA,EAAQ,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,UAAU,CAAA;AAC9E,EAAA,CAAC,MAAA,EAAQ,EAAE,CAAA,EAAG,GAAA,EAAK,GAAG,GAAA,EAAK,KAAA,EAAO,GAAA,EAAK,MAAA,EAAQ,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,UAAU;AAC/E,CAAC,CAAA;;;ACHK,IAAA,aAAA,GAAgB,iBAAiB,eAAA,EAAiB;AACtD,EAAA,CAAC,YAAY,EAAE,MAAA,EAAQ,gBAAA,EAAkB,GAAA,EAAK,UAAU,CAAA;AACxD,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU,CAAA;AAChE,EAAA;AACE,IAAA,MAAA;AACA,IAAA;MACE,CAAA,EAAG,+RAAA;MACH,GAAA,EAAK;AACP;AACF;AACF,CAAC,CAAA;;;ACVK,IAAA,WAAA,GAAc,iBAAiB,aAAA,EAAe;AAClD,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU,CAAA;AAChE,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU,CAAA;AAChE,EAAA;AACE,IAAA,MAAA;AACA,IAAA;MACE,CAAA,EAAG,+RAAA;MACH,GAAA,EAAK;AACP;AACF;AACF,CAAC,CAAA;;;ACVK,IAAA,QAAA,GAAW,iBAAiB,UAAA,EAAY;AAC5C,EAAA;AACE,IAAA,MAAA;AACA,IAAA;MACE,CAAA,EAAG,uTAAA;MACH,GAAA,EAAK;AACP;AACF,GAAA;AACA,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,IAAA,EAAM,GAAA,EAAK,QAAA,EAAU;AAClE,CAAC,CAAA;;;ACTK,IAAA,aAAA,GAAgB,iBAAiB,eAAA,EAAiB;AACtD,EAAA,CAAC,YAAY,EAAE,MAAA,EAAQ,gBAAA,EAAkB,GAAA,EAAK,UAAU,CAAA;AACxD,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU,CAAA;AAChE,EAAA;AACE,IAAA,MAAA;AACA,IAAA;MACE,CAAA,EAAG,+RAAA;MACH,GAAA,EAAK;AACP;AACF;AACF,CAAC,CAAA;;;ACVK,IAAA,KAAA,GAAQ,iBAAiB,OAAA,EAAS;AACtC,EAAA;AACE,IAAA,MAAA;AACA,IAAA;MACE,CAAA,EAAG,+RAAA;MACH,GAAA,EAAK;AACP;AACF;AACF,CAAC,CAAA;;;ACRK,IAAA,IAAA,GAAO,iBAAiB,MAAA,EAAQ;AACpC,EAAA,CAAC,WAAW,EAAE,MAAA,EAAQ,oBAAA,EAAsB,GAAA,EAAK,UAAU;AAC7D,CAAC,CAAA;;;ACFK,IAAA,MAAA,GAAS,iBAAiB,QAAA,EAAU;EACxC,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,MAAM,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU,CAAA;AACxD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,gBAAA,EAAkB,GAAA,EAAK,UAAU;AACjD,CAAC,CAAA;;;ACHK,IAAA,QAAA,GAAW,iBAAiB,UAAA,EAAY;AAC5C,EAAA;AACE,IAAA,MAAA;AACA,IAAA;MACE,CAAA,EAAG,ujBAAA;MACH,GAAA,EAAK;AACP;AACF,GAAA;EACA,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,MAAM,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU;AAC1D,CAAC,CAAA;;;ACTK,IAAA,KAAA,GAAQ,iBAAiB,OAAA,EAAS;AACtC,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU,CAAA;AAChE,EAAA,CAAC,MAAA,EAAQ,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,IAAA,EAAM,GAAA,EAAK,QAAA,EAAU,CAAA;EAClE,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,MAAM,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU;AAC1D,CAAC,CAAA;;;ACJK,IAAA,aAAA,GAAgB,iBAAiB,eAAA,EAAiB;AACtD,EAAA;AACE,IAAA,MAAA;AACA,IAAA;MACE,CAAA,EAAG,0EAAA;MACH,GAAA,EAAK;AACP;AACF,GAAA;AACA,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,SAAA,EAAW,GAAA,EAAK,UAAU,CAAA;AACxC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,YAAA,EAAc,GAAA,EAAK,UAAU;AAC7C,CAAC,CAAA;;;ACVK,IAAA,IAAA,GAAO,iBAAiB,MAAA,EAAQ;AACpC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,2CAAA,EAA6C,GAAA,EAAK,UAAU,CAAA;EAC1E,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,KAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,QAAA,EAAU;AACzD,CAAC,CAAA;;;ACHK,IAAA,KAAA,GAAQ,iBAAiB,OAAA,EAAS;AACtC,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,2CAAA,EAA6C,GAAA,EAAK,UAAU,CAAA;EAC1E,CAAC,QAAA,EAAU,EAAE,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,KAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,OAAA,EAAS,CAAA;AACrD,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,4BAAA,EAA8B,GAAA,EAAK,UAAU,CAAA;AAC3D,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,2BAAA,EAA6B,GAAA,EAAK,UAAU;AAC5D,CAAC,CAAA;;;ACLK,IAAA,CAAA,GAAI,iBAAiB,GAAA,EAAK;AAC9B,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,YAAA,EAAc,GAAA,EAAK,UAAU,CAAA;AAC3C,EAAA,CAAC,QAAQ,EAAE,CAAA,EAAG,YAAA,EAAc,GAAA,EAAK,UAAU;AAC7C,CAAC,CAAA;;;ACfD,IAAAA,aAAAA,GAA0D,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;AAoBnD,SAAS,YAAA,GAA2C;AACzD,EAAA,MAAM,QAAQ,YAAA,EAAa;AAC3B,EAAA,OAAA,IAAO,aAAA,CAAA,oBAAA;AAAA,IAAA,IACL,aAAA,CAAA,WAAA;AAAA,MACE,CAAC,EAAA,KAAmB;AAClB,QAAA,MAAM,QAAA,GAAW,KAAA,CAAM,EAAA,CAAA,OAAA,cAAyB,MAAM,IAAI,CAAA;AAC1D,QAAA,MAAM,QAAA,GAAW,KAAA,CAAM,EAAA,CAAA,cAAA,qBAAgC,MAAM,IAAI,CAAA;AACjE,QAAA,OAAO,MAAM;AACX,UAAA,QAAA,EAAS;AACT,UAAA,QAAA,EAAS;AAAA,QACX,CAAA;AAAA,MACF,CAAA;AAAA,MACA,CAAC,KAAK;AAAA,KACR;AAAA,IAAA,IACA,2BAAY,MAAM,KAAA,CAAM,SAAA,EAAW,CAAC,KAAK,CAAC;AAAA,GAC5C;AACF;AAEO,SAAS,iBAAA,GAAoC;AAClD,EAAA,MAAM,QAAQ,YAAA,EAAa;AAC3B,EAAA,OAAA,IAAO,aAAA,CAAA,oBAAA;AAAA,IAAA,IACL,aAAA,CAAA,WAAA,EAAY,CAAC,EAAA,KAAmB,KAAA,CAAM,EAAA,CAAA,cAAA,qBAAgC,MAAM,EAAA,EAAI,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAAA,IAAA,IAC1F,2BAAY,MAAM,KAAA,CAAM,KAAA,EAAO,CAAC,KAAK,CAAC;AAAA,GACxC;AACF;AAOO,SAAS,WAAA,GAAuB;AACrC,EAAA,MAAM,QAAQ,YAAA,EAAa;AAC3B,EAAA,OAAA,IAAO,aAAA,CAAA,oBAAA;AAAA,IAAA,IACL,aAAA,CAAA,WAAA,EAAY,CAAC,EAAA,KAAmB,KAAA,CAAM,EAAA,CAAA,eAAA,sBAAiC,MAAM,EAAA,EAAI,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAAA,IAAA,IAC3F,2BAAY,MAAM,KAAA,CAAM,QAAA,EAAU,CAAC,KAAK,CAAC;AAAA,GAC3C;AACF;AAOO,SAAS,aAAA,GAA6B;AAC3C,EAAA,MAAM,QAAQ,YAAA,EAAa;AAC3B,EAAA,OAAA,IAAO,aAAA,CAAA,oBAAA;AAAA,IAAA,IACL,aAAA,CAAA,WAAA,EAAY,CAAC,EAAA,KAAmB,KAAA,CAAM,EAAA,CAAA,mBAAA,0BAAqC,MAAM,EAAA,EAAI,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAAA,IAAA,IAC/F,2BAAY,MAAM,KAAA,CAAM,UAAA,EAAY,CAAC,KAAK,CAAC;AAAA,GAC7C;AACF;AAYO,SAAS,YAAY,MAAA,EAA2C;AACrE,EAAA,MAAM,QAAQ,YAAA,EAAa;AAC3B,EAAA,OAAA,IAAO,aAAA,CAAA,oBAAA;AAAA,IAAA,IACL,aAAA,CAAA,WAAA;AAAA,MACE,CAAC,EAAA,KAAmB;AAClB,QAAA,IAAI,CAAC,MAAA,EAAQ,OAAO,MAAM;AAAA,QAAC,CAAA;AAC3B,QAAA,OAAO,KAAA,CAAM,EAAA,CAAA,iBAAA,wBAAmC,MAAM,EAAA,EAAI,CAAA;AAAA,MAC5D,CAAA;AAAA,MACA,CAAC,OAAO,MAAM;AAAA,KAChB;AAAA,IAAA,IACA,2BAAY,MAAM,KAAA,CAAM,QAAA,EAAU,CAAC,KAAK,CAAC;AAAA,GAC3C;AACF;AAYA,IAAM,WAAA,GAAoC;AAAA,EAAA,cAAA;AAAA,EAAA,OAAA;AAAA,EAAA,MAAA;AAAA,EAAA,QAAA;AAAA,EAAA,oBAAA;AAAA,EAAA,cAAA;AAAA,EAAA,OAAA;AAQ1C,CAAA;AASO,SAAS,QAAQ,IAAA,EAAoC;AAC1D,EAAA,MAAM,KAAA,GAAA,IAAQ,sBAA8C,IAAI,CAAA;AAEhE,EAAA,MAAM,SAAA,GAAA,IAAY,aAAA,CAAA,WAAA;AAAA,IAChB,CAAC,EAAA,KAAmB;AAClB,MAAA,IAAI,CAAC,IAAA,EAAM,OAAO,MAAM;AAAA,MAAC,CAAA;AACzB,MAAA,MAAM,SAAS,WAAA,CAAY,GAAA;AAAA,QAAI,CAAC,KAAA,KAC9B,IAAA,CAAK,EAAA,CAAG,OAAO,MAAM;AACnB,UAAA,KAAA,CAAM,OAAA,GAAU,IAAA;AAChB,UAAA,EAAA,EAAG;AAAA,QACL,CAAC;AAAA,OACH;AACA,MAAA,OAAO,MAAM;AACX,QAAA,KAAA,MAAW,GAAA,IAAO,QAAQ,GAAA,EAAI;AAAA,MAChC,CAAA;AAAA,IACF,CAAA;AAAA,IACA,CAAC,IAAI;AAAA,GACP;AAEA,EAAA,MAAM,WAAA,GAAA,IAAc,2BAAY,MAAuB;AACrD,IAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,IAAA,IAAI,MAAM,OAAA,EAAS,IAAA,KAAS,IAAA,EAAM,OAAO,MAAM,OAAA,CAAQ,IAAA;AACvD,IAAA,MAAM,IAAA,GAAiB;AAAA,MACrB,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,UAAU,IAAA,CAAK,QAAA;AAAA,MACf,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,cAAc,IAAA,CAAK,YAAA;AAAA,MACnB,YAAY,IAAA,CAAK;AAAA,KACnB;AACA,IAAA,KAAA,CAAM,OAAA,GAAU,EAAE,IAAA,EAAM,IAAA,EAAK;AAC7B,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,OAAA,IAAO,aAAA,CAAA,oBAAA,EAAqB,WAAW,WAAW,CAAA;AACpD;AAWO,SAAS,UAAA,GAA2B;AACzC,EAAA,MAAM,QAAQ,YAAA,EAAa;AAC3B,EAAA,MAAM,KAAA,GAAA,IAAQ,sBAA2D,IAAI,CAAA;AAE7E,EAAA,MAAM,SAAA,GAAA,IAAY,aAAA,CAAA,WAAA;AAAA,IAChB,CAAC,EAAA,KACC,KAAA,CAAM,EAAA,CAAA,cAAA,qBAAgC,MAAM;AAC1C,MAAA,KAAA,CAAM,OAAA,GAAU,IAAA;AAChB,MAAA,EAAA,EAAG;AAAA,IACL,CAAC,CAAA;AAAA,IACH,CAAC,KAAK;AAAA,GACR;AAEA,EAAA,MAAM,WAAA,GAAA,IAAc,2BAAY,MAAoB;AAClD,IAAA,MAAM,QAAQ,KAAA,CAAM,KAAA;AACpB,IAAA,IAAI,MAAM,OAAA,EAAS,KAAA,KAAU,KAAA,EAAO,OAAO,MAAM,OAAA,CAAQ,IAAA;AACzD,IAAA,MAAM,IAAA,GAAqB;AAAA,MACzB,QAAQ,KAAA,CAAM,MAAA;AAAA,MACd,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,gBAAgB,KAAA,CAAM,cAAA;AAAA,MACtB,iBAAiB,KAAA,CAAM,eAAA;AAAA,MACvB,iBAAiB,KAAA,CAAM,eAAA;AAAA,MACvB,QAAA,EAAU,CAAC,QAAA,KAAa,KAAA,CAAM,SAAS,QAAQ,CAAA;AAAA,MAC/C,SAAA,EAAW,CAAC,QAAA,KAAa,KAAA,CAAM,UAAU,QAAQ,CAAA;AAAA,MACjD,iBAAA,EAAmB,CAAC,QAAA,KAAa,KAAA,CAAM,kBAAkB,QAAQ,CAAA;AAAA,MACjE,OAAA,EAAS,MAAM,KAAA,CAAM,OAAA;AAAQ,KAC/B;AACA,IAAA,KAAA,CAAM,OAAA,GAAU,EAAE,KAAA,EAAO,IAAA,EAAK;AAC9B,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,OAAA,IAAO,aAAA,CAAA,oBAAA,EAAqB,WAAW,WAAW,CAAA;AACpD;;;AC1MA,IAAAA,aAAAA,GAAkD,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;;;ACAlD,IAAAA,aAAAA,GAAyE,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;;;AC+BzE,IAAM,MAAA,GACJ,s1CAAA;AAkBK,IAAM,aAA0C,IAAI,GAAA;AAAA,EACzD,OAAO,KAAA,CAAM,GAAG,EAAE,GAAA,CAAI,CAAC,UAAU,CAAC,KAAA,CAAM,MAAM,CAAA,EAAG,CAAC,GAAG,MAAA,CAAO,KAAA,CAAM,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAA;AAGO,IAAM,eAAA,GAAkB,IAAA;AAI/B,IAAM,gBAAgB,MAAM;AAC1B,EAAA,IAAI;AACF,IAAA,OAAO,IAAI,KAAK,YAAA,CAAa,CAAC,IAAI,CAAA,EAAG,EAAE,IAAA,EAAM,QAAA,EAAU,CAAA;AAAA,EACzD,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF,CAAA,GAAG;AAGI,SAAS,YAAY,OAAA,EAAyB;AACnD,EAAA,IAAI;AACF,IAAA,OAAO,YAAA,EAAc,EAAA,CAAG,OAAO,CAAA,IAAK,OAAA;AAAA,EACtC,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,OAAA;AAAA,EACT;AACF;AASO,IAAM,SAAA,GAAsC,CAAC,GAAG,UAAA,CAAW,SAAS,CAAA,CACxE,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,IAAI,CAAA,MAAO,EAAE,IAAA,EAAM,IAAA,EAAM,WAAA,CAAY,IAAI,CAAA,EAAG,IAAA,EAAK,CAAE,CAAA,CAC/D,KAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,IAAA,CAAK,aAAA,CAAc,CAAA,CAAE,IAAA,EAAM,IAAI,CAAC,CAAA;AAW7C,SAAS,MAAA,CAAO,SAAiB,QAAA,EAA0B;AAChE,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,QAAA,IAAY,EAAE,EAAE,IAAA,EAAK;AAC1C,EAAA,IAAI,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA,EAAG,OAAO,GAAA,GAAM,KAAA,CAAM,KAAA,CAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AAExE,EAAA,MAAM,MAAA,GAAS,MAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA,CAAE,OAAA,CAAQ,OAAO,EAAE,CAAA;AACzD,EAAA,IAAI,CAAC,QAAQ,OAAO,EAAA;AACpB,EAAA,MAAM,IAAA,GAAO,UAAA,CAAW,GAAA,CAAI,OAAO,CAAA;AACnC,EAAA,OAAO,IAAA,KAAS,SAAY,CAAA,CAAA,EAAI,MAAM,KAAK,CAAA,CAAA,EAAI,IAAI,GAAG,MAAM,CAAA,CAAA;AAC9D;;;AD/Cc,IAAAC,mBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAxCd,IAAI,KAAA,GAAwB,IAAA;AAC5B,IAAI,YAAA,GAAwC,IAAA;AAE5C,SAAS,SAAA,GAA8B;AACrC,EAAA,YAAA,KAAiB,OAAO,oBAA8B,CAAA,CACnD,IAAA,CAAK,CAAC,CAAA,KAAO,KAAA,GAAQ,CAAa,CAAA,CAClC,KAAA,CAAM,MAAO,KAAA,GAAQ,EAAG,CAAA;AAC3B,EAAA,OAAO,YAAA;AACT;AAEA,SAAS,QAAA,GAA2B;AAClC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAA,IAAI,wBAAyB,KAAK,CAAA;AACxD,EAAA,IAAA,aAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,KAAA,EAAO;AACX,IAAA,IAAI,KAAA,GAAQ,IAAA;AACZ,IAAA,KAAK,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM;AAC3B,MAAA,IAAI,KAAA,WAAgB,CAAC,CAAA;AAAA,IACvB,CAAC,CAAA;AACD,IAAA,OAAO,MAAM;AACX,MAAA,KAAA,GAAQ,KAAA;AAAA,IACV,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AACV,EAAA,OAAO,KAAA;AACT;AAYA,SAAS,WAAA,CAAY,EAAE,IAAA,EAAK,EAA+B;AACzD,EAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,EAAA,MAAM,IAAA,GAAO,QAAQ,IAAI,CAAA;AACzB,EAAA,oDACG,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,YAAA,EAAY,CAAC,IAAA,EAAM,aAAA,EAAW,IAAA,EAAC,IAAA,EAAK,gBAC3D,QAAA,EAAA,IAAA,mBAAO,IAAA,mBAAA,CAAA,GAAA,EAAC,QAAK,SAAA,EAAU,aAAA,EAAc,IAAK,IAAA,EAC7C,CAAA;AAEJ;AAYO,SAAS,aAAA,CAAc;AAAA,EAC5B,KAAA;AAAA,EACA;AACF,CAAA,EAAkE;AAChE,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAA,IAAI,wBAAS,KAAK,CAAA;AACtC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAA,IAAI,wBAAS,EAAE,CAAA;AACrC,EAAA,MAAM,OAAA,GAAA,IAAU,sBAAuB,IAAI,CAAA;AAC3C,EAAA,MAAM,QAAA,GAAA,IAAW,sBAAyB,IAAI,CAAA;AAE9C,EAAA,MAAM,OAAA,GAAA,IAAU,uBAAQ,MAAM;AAC5B,IAAA,MAAM,CAAA,GAAI,MAAM,IAAA,EAAK,CAAE,aAAY,CAAE,OAAA,CAAQ,OAAO,EAAE,CAAA;AACtD,IAAA,IAAI,CAAC,GAAG,OAAO,SAAA;AACf,IAAA,OAAO,SAAA,CAAU,MAAA;AAAA,MACf,CAAC,MACC,CAAA,CAAE,IAAA,CAAK,aAAY,CAAE,QAAA,CAAS,CAAC,CAAA,IAC/B,CAAA,CAAE,KAAK,WAAA,EAAY,CAAE,SAAS,CAAC,CAAA,IAC/B,OAAO,CAAA,CAAE,IAAI,CAAA,CAAE,UAAA,CAAW,CAAC;AAAA,KAC/B;AAAA,EACF,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAKV,EAAA,IAAA,aAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,OAAA,EAAS,WAAA,EAAY,IAAK,QAAA;AAC/C,IAAA,MAAM,MAAA,GAAS,CAAC,CAAA,KAAa;AAC3B,MAAA,IAAI,CAAC,QAAQ,OAAA,EAAS,QAAA,CAAS,EAAE,MAAc,CAAA,UAAW,KAAK,CAAA;AAAA,IACjE,CAAA;AACA,IAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,KAAqB;AAClC,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU,OAAA,CAAQ,KAAK,CAAA;AAAA,IACvC,CAAA;AACA,IAAA,IAAA,CAAK,gBAAA,CAAiB,eAAe,MAAM,CAAA;AAC3C,IAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,KAAK,CAAA;AAC1C,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,mBAAA,CAAoB,eAAe,MAAM,CAAA;AAC9C,MAAA,QAAA,CAAS,mBAAA,CAAoB,WAAW,KAAK,CAAA;AAAA,IAC/C,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,IAAA,aAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,IAAA,EAAM,QAAA,CAAS,OAAA,EAAS,KAAA,EAAM;AAAA,kBACpB,EAAE,CAAA;AAAA,EAClB,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,IAAA,GAAO,UAAA,CAAW,GAAA,CAAI,KAAK,CAAA;AAEjC,EAAA,uBACE,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,OAAA,EAAQ,KAAK,OAAA,EAC1B,QAAA,EAAA;AAAA,oBAAA,IAAA,mBAAA,CAAA,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,YAAA;AAAA,QACV,SAAS,MAAM,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,QAChC,eAAA,EAAc,SAAA;AAAA,QACd,eAAA,EAAe,IAAA;AAAA,QAGf,cAAY,CAAA,SAAA,EAAY,WAAA,CAAY,KAAK,CAAC,CAAA,GAAA,EAAM,QAAQ,GAAG,CAAA,kBAAA,CAAA;AAAA,QAC3D,IAAA,EAAK,cAAA;AAAA,QAEL,QAAA,EAAA;AAAA,0BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,WAAA,EAAA,EAAY,MAAM,KAAA,EAAO,CAAA;AAAA,0BAC1B,IAAA,mBAAA,CAAA,IAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,YAAA,EAAa,QAAA,EAAA;AAAA,YAAA,GAAA;AAAA,YAAE,IAAA,IAAQ;AAAA,WAAA,EAAI,CAAA;AAAA,uDAC1C,WAAA,EAAA,EAAY,IAAA,EAAM,IAAI,SAAA,EAAU,aAAA,EAAc,aAAW,IAAA,EAAM;AAAA;AAAA;AAAA,KAClE;AAAA,IAEC,IAAA,iDACE,KAAA,EAAA,EAAI,SAAA,EAAU,aAAY,IAAA,EAAK,QAAA,EAAS,MAAK,cAAA,EAC5C,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,cAAA;AAAA,UACV,KAAA,EAAO,KAAA;AAAA,UACP,UAAU,CAAC,CAAA,KAAM,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,UACxC,WAAA,EAAY,sBAAA;AAAA,UACZ,YAAA,EAAW;AAAA;AAAA,OACb;AAAA,mDACC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAa,IAAA,EAAK,SAAA,EAC9B,kBAAQ,MAAA,KAAW,CAAA,mBAClB,IAAA,mBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAE,WAAU,aAAA,EAAc,QAAA,EAAA,sCAAA,EAA2B,IAEtD,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAA,qBACX,IAAA,mBAAA,CAAA,IAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,IAAA,EAAK,QAAA;AAAA,UACL,IAAA,EAAK,QAAA;AAAA,UACL,eAAA,EAAe,EAAE,IAAA,KAAS,KAAA;AAAA,UAC1B,SAAA,EAAU,YAAA;AAAA,UACV,SAAS,MAAM;AACb,YAAA,QAAA,CAAS,EAAE,IAAI,CAAA;AACf,YAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,UACf,CAAA;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,WAAA,EAAA,EAAY,IAAA,EAAM,CAAA,CAAE,IAAA,EAAM,CAAA;AAAA,4BAC3B,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,YAAA,EAAc,YAAE,IAAA,EAAK,CAAA;AAAA,4BACrC,IAAA,mBAAA,CAAA,IAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,YAAA,EAAa,QAAA,EAAA;AAAA,cAAA,GAAA;AAAA,cAAE,CAAA,CAAE;AAAA,aAAA,EAAK,CAAA;AAAA,4BACtC,IAAA,mBAAA,CAAA,GAAA,EAAC,SAAM,IAAA,EAAM,EAAA,EAAI,WAAU,aAAA,EAAc,SAAA,EAAS,CAAA,CAAE,IAAA,KAAS,KAAA,EAAO;AAAA;AAAA,SAAA;AAAA,QAb/D,CAAA,CAAE;AAAA,OAeV,CAAA,EAEL;AAAA,KAAA,EACF,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ;;;AE5JA,IAAAD,aAAAA,GAAoC,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;AAKpC,IAAI,SAAA,GAAkC,IAAA;AACtC,IAAI,SAAA,GAA8B,IAAA;AAClC,IAAI,OAAA,GAAgC,IAAA;AAS7B,SAAS,mBAAA,GAAqC;AACnD,EAAA,OAAA,KAAY,OAAO,oBAAuB,CAAA,CACvC,IAAA,CAAK,CAAC,CAAA,KAAM;AACX,IAAA,SAAA,GAAY,CAAA,CAAE,SAAA;AACd,IAAA,SAAA,GAAY,CAAA,CAAE,0BAAA;AAAA,EAChB,CAAC,CAAA,CACA,KAAA,CAAM,MAAM;AAAA,EAGb,CAAC,CAAA;AACH,EAAA,OAAO,OAAA;AACT;AAQO,SAAS,WAAW,IAAA,EAAsB;AAC/C,EAAA,IAAI,CAAC,WAAW,OAAO,IAAA;AACvB,EAAA,IAAI;AACF,IAAA,OAAO,SAAA,CAAU,IAAI,CAAA,EAAG,mBAAA,EAAoB,IAAK,IAAA;AAAA,EACnD,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAGO,SAAS,gBAAA,GAAsC;AACpD,EAAA,MAAM,GAAG,IAAI,CAAA,GAAA,IAAI,wBAAS,CAAC,CAAA;AAC3B,EAAA,IAAA,aAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,SAAA,EAAW;AACf,IAAA,IAAI,KAAA,GAAQ,IAAA;AACZ,IAAA,KAAK,mBAAA,EAAoB,CAAE,IAAA,CAAK,MAAM;AACpC,MAAA,IAAI,KAAA,EAAO,IAAA,CAAK,CAAC,CAAA,KAAM,IAAI,CAAC,CAAA;AAAA,IAC9B,CAAC,CAAA;AACD,IAAA,OAAO,MAAM;AACX,MAAA,KAAA,GAAQ,KAAA;AAAA,IACV,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,OAAO,UAAA;AACT;AAOO,SAAS,cAAA,CAAe,SAAiB,MAAA,EAAwB;AACtE,EAAA,IAAI,CAAC,SAAA,IAAa,CAAC,MAAA,EAAQ,OAAO,MAAA;AAClC,EAAA,IAAI;AACF,IAAA,OAAO,IAAI,SAAA,CAAU,OAAO,CAAA,CAAE,MAAM,MAAM,CAAA;AAAA,EAC5C,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAMO,SAAS,kBAAA,GAA4C;AAC1D,EAAA,MAAM,GAAG,IAAI,CAAA,GAAA,IAAI,wBAAS,CAAC,CAAA;AAC3B,EAAA,IAAA,aAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,SAAA,EAAW;AACf,IAAA,IAAI,KAAA,GAAQ,IAAA;AACZ,IAAA,KAAK,mBAAA,EAAoB,CAAE,IAAA,CAAK,MAAM;AACpC,MAAA,IAAI,KAAA,EAAO,IAAA,CAAK,CAAC,CAAA,KAAM,IAAI,CAAC,CAAA;AAAA,IAC9B,CAAC,CAAA;AACD,IAAA,OAAO,MAAM;AACX,MAAA,KAAA,GAAQ,KAAA;AAAA,IACV,CAAA;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,OAAO,cAAA;AACT;AASO,SAAS,gBAAA,CAAiB,WAAmB,YAAA,EAA8B;AAChF,EAAA,IAAI,YAAA,IAAgB,GAAG,OAAO,CAAA;AAC9B,EAAA,IAAI,IAAA,GAAO,CAAA;AACX,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,QAAQ,CAAA,EAAA,EAAK;AACzC,IAAA,IAAI,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,CAAC,CAAE,CAAA,EAAG,IAAA,EAAA;AAC9B,IAAA,IAAI,IAAA,KAAS,YAAA,EAAc,OAAO,CAAA,GAAI,CAAA;AAAA,EACxC;AACA,EAAA,OAAO,SAAA,CAAU,MAAA;AACnB;AAGO,SAAS,iBAAA,CAAkB,MAAc,KAAA,EAAuB;AACrE,EAAA,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA,EAAG,KAAK,EAAE,KAAA,CAAM,KAAK,CAAA,IAAK,EAAC,EAAG,MAAA;AACnD;;;AC/HO,IAAM,WAAA,GAAsE;AAAA,EACjF,CAAC,KAAK,EAAE,CAAA;AAAA,EACR,CAAC,KAAK,KAAK,CAAA;AAAA,EACX,CAAC,KAAK,KAAK,CAAA;AAAA,EACX,CAAC,KAAK,KAAK,CAAA;AAAA,EACX,CAAC,KAAK,KAAK,CAAA;AAAA,EACX,CAAC,KAAK,KAAK,CAAA;AAAA,EACX,CAAC,KAAK,MAAM,CAAA;AAAA,EACZ,CAAC,KAAK,KAAK,CAAA;AAAA,EACX,CAAC,KAAK,MAAM,CAAA;AAAA,EACZ,CAAC,KAAK,EAAE,CAAA;AAAA,EACR,CAAC,KAAK,GAAG,CAAA;AAAA,EACT,CAAC,KAAK,EAAE;AACV,CAAA;;;ACLA,IAAM,OAAA,GAAU,GAAA;AA0BT,SAAS,iBAAA,GAAiC;AAC/C,EAAA,MAAM,EAAA,GAAK,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AACzC,EAAA,EAAA,CAAG,QAAA,GAAW,IAAA;AAEd,EAAA,EAAA,CAAG,MAAM,OAAA,GAAU,MAAA;AACnB,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,EAAE,CAAA;AAE5B,EAAA,OAAO;AAAA,IACL,OAAO,MAAA,EAAQ;AACb,MAAA,EAAA,CAAG,SAAA,GAAY,MAAA;AAEf,MAAA,KAAK,EAAA,CAAG,IAAA,EAAK,CAAE,KAAA,CAAM,MAAM;AAAA,MAAC,CAAC,CAAA;AAAA,IAC/B,CAAA;AAAA,IACA,MAAA,GAAS;AACP,MAAA,EAAA,CAAG,SAAA,GAAY,IAAA;AAAA,IACjB,CAAA;AAAA,IACA,OAAA,GAAU;AACR,MAAA,EAAA,CAAG,SAAA,GAAY,IAAA;AACf,MAAA,EAAA,CAAG,MAAA,EAAO;AAAA,IACZ,CAAA;AAAA,IACA,MAAM,gBAAgB,QAAA,EAAU;AAC9B,MAAA,IAAI,OAAO,EAAA,CAAG,SAAA,KAAc,UAAA,EAAY;AACxC,MAAA,IAAI;AAIF,QAAA,MAAM,EAAA,CAAG,SAAA,CAAU,QAAA,IAAY,EAAE,CAAA;AAAA,MACnC,CAAA,CAAA,MAAQ;AAAA,MAGR;AAAA,IACF;AAAA,GACF;AACF;AAmBA,IAAI,MAAA,GAA8B,IAAA;AAElC,SAAS,aAAA,GAAqC;AAC5C,EAAA,IAAI,QAAQ,OAAO,MAAA;AACnB,EAAA,MAAM,IAAA,GACJ,OAAO,YAAA,KAAiB,WAAA,GACpB,eACC,UAAA,CAA4D,kBAAA;AACnE,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,EAAA,MAAA,GAAS,IAAI,IAAA,EAAK;AAClB,EAAA,OAAO,MAAA;AACT;AASO,SAAS,UAAA,GAAmB;AACjC,EAAA,MAAM,MAAM,aAAA,EAAc;AAC1B,EAAA,IAAI,GAAA,IAAO,IAAI,KAAA,KAAU,WAAA,OAAkB,GAAA,CAAI,MAAA,IAAS,CAAE,KAAA,CAAM,MAAM;AAAA,EAAC,CAAC,CAAA;AAC1E;AAqCO,SAAS,YAAA,GAAqB;AACnC,EAAA,MAAM,MAAM,aAAA,EAAc;AAC1B,EAAA,IAAI,CAAC,GAAA,EAAK,OAAO,EAAE,IAAA,GAAO;AAAA,EAAC,CAAA,EAAE;AAE7B,EAAA,MAAM,IAAA,GAAO,IAAI,UAAA,EAAW;AAC5B,EAAA,IAAA,CAAK,KAAK,KAAA,GAAQ,CAAA;AAClB,EAAA,IAAA,CAAK,OAAA,CAAQ,IAAI,WAAW,CAAA;AAE5B,EAAA,MAAM,GAAA,GAAM,IAAI,gBAAA,EAAiB;AACjC,EAAA,GAAA,CAAI,IAAA,GAAO,MAAA;AACX,EAAA,GAAA,CAAI,UAAU,KAAA,GAAQ,OAAA;AACtB,EAAA,GAAA,CAAI,QAAQ,IAAI,CAAA;AAChB,EAAA,GAAA,CAAI,KAAA,EAAM;AAEV,EAAA,MAAM,KAAA,GAAQ,GAAA;AACd,EAAA,MAAM,IAAA,GAAO,IAAA;AAEb,EAAA,MAAM,KAAA,GAAQ,CAAC,EAAA,EAAY,GAAA,KAAsB;AAC/C,IAAA,IAAA,CAAK,IAAA,CAAK,cAAA,CAAe,CAAA,EAAG,EAAE,CAAA;AAC9B,IAAA,IAAA,CAAK,IAAA,CAAK,uBAAA,CAAwB,KAAA,EAAO,EAAA,GAAK,IAAI,CAAA;AAClD,IAAA,IAAA,CAAK,IAAA,CAAK,cAAA,CAAe,KAAA,EAAO,EAAA,GAAK,MAAM,IAAI,CAAA;AAC/C,IAAA,IAAA,CAAK,IAAA,CAAK,uBAAA,CAAwB,CAAA,EAAG,EAAA,GAAK,GAAG,CAAA;AAAA,EAC/C,CAAA;AAGA,EAAA,MAAM,aAAA,GAAgB,CAAC,EAAA,KAAuB;AAC5C,IAAA,KAAA,CAAM,IAAI,GAAG,CAAA;AACb,IAAA,KAAA,CAAM,EAAA,GAAK,KAAK,GAAG,CAAA;AACnB,IAAA,OAAO,CAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,GAAA;AAClB,EAAA,MAAM,OAAA,GAAU,GAAA;AAChB,EAAA,MAAM,IAAA,GAAO,IAAA;AAEb,EAAA,IAAI,OAAA,GAAU,KAAA;AACd,EAAA,IAAI,KAAA,GAA+C,IAAA;AACnD,EAAA,IAAI,MAAA,GAAS,CAAA;AAEb,EAAA,MAAM,OAAO,MAAY;AACvB,IAAA,OAAO,SAAS,GAAA,CAAI,WAAA,GAAc,SAAA,EAAW,MAAA,IAAU,cAAc,MAAM,CAAA;AAAA,EAC7E,CAAA;AAIA,EAAA,KAAK,QAAQ,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA,CAChC,MAAM,MAAM;AAAA,EAAC,CAAC,CAAA,CACd,OAAA,CAAQ,MAAM;AACb,IAAA,IAAI,OAAA,EAAS;AACb,IAAA,MAAA,GAAS,IAAI,WAAA,GAAc,IAAA;AAC3B,IAAA,IAAA,EAAK;AACL,IAAA,KAAA,GAAQ,WAAA,CAAY,MAAM,OAAO,CAAA;AAAA,EACnC,CAAC,CAAA;AAEH,EAAA,OAAO;AAAA,IACL,IAAA,GAAO;AACL,MAAA,OAAA,GAAU,IAAA;AACV,MAAA,IAAI,KAAA,gBAAqB,KAAK,CAAA;AAC9B,MAAA,IAAI;AACF,QAAA,GAAA,CAAI,IAAA,EAAK;AAAA,MACX,CAAA,CAAA,MAAQ;AAAA,MAER;AACA,MAAA,IAAI;AACF,QAAA,IAAA,CAAK,UAAA,EAAW;AAAA,MAClB,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IAIF;AAAA,GACF;AACF;AAkCO,SAAS,iBAAA,GAA0B;AACxC,EAAA,MAAM,MAAM,aAAA,EAAc;AAC1B,EAAA,IAAI,CAAC,GAAA,EAAK;AAEV,EAAA,MAAM,IAAA,GAAO,IAAI,UAAA,EAAW;AAC5B,EAAA,IAAA,CAAK,KAAK,KAAA,GAAQ,CAAA;AAClB,EAAA,IAAA,CAAK,OAAA,CAAQ,IAAI,WAAW,CAAA;AAE5B,EAAA,MAAM,GAAA,GAAM,IAAI,gBAAA,EAAiB;AACjC,EAAA,GAAA,CAAI,IAAA,GAAO,MAAA;AACX,EAAA,GAAA,CAAI,UAAU,KAAA,GAAQ,OAAA;AACtB,EAAA,GAAA,CAAI,QAAQ,IAAI,CAAA;AAChB,EAAA,GAAA,CAAI,KAAA,EAAM;AAEV,EAAA,MAAM,KAAA,GAAQ,IAAA;AACd,EAAA,MAAM,IAAA,GAAO,IAAA;AACb,EAAA,MAAM,IAAA,GAAO,IAAA;AAEb,EAAA,KAAK,QAAQ,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA,CAChC,MAAM,MAAM;AAAA,EAAC,CAAC,CAAA,CACd,OAAA,CAAQ,MAAM;AACb,IAAA,MAAM,EAAA,GAAK,IAAI,WAAA,GAAc,IAAA;AAC7B,IAAA,IAAA,CAAK,IAAA,CAAK,cAAA,CAAe,CAAA,EAAG,EAAE,CAAA;AAC9B,IAAA,IAAA,CAAK,IAAA,CAAK,uBAAA,CAAwB,KAAA,EAAO,EAAA,GAAK,IAAI,CAAA;AAClD,IAAA,IAAA,CAAK,IAAA,CAAK,cAAA,CAAe,KAAA,EAAO,EAAA,GAAK,OAAO,IAAI,CAAA;AAChD,IAAA,IAAA,CAAK,IAAA,CAAK,uBAAA,CAAwB,CAAA,EAAG,EAAA,GAAK,IAAI,CAAA;AAE9C,IAAA,MAAM,OAAA,GAAA,CAAW,EAAA,GAAK,IAAA,GAAO,GAAA,CAAI,WAAA,IAAe,GAAA;AAChD,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,IAAI;AACF,QAAA,GAAA,CAAI,IAAA,EAAK;AAAA,MACX,CAAA,CAAA,MAAQ;AAAA,MAER;AACA,MAAA,IAAI;AACF,QAAA,IAAA,CAAK,UAAA,EAAW;AAAA,MAClB,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF,GAAG,OAAO,CAAA;AAAA,EACZ,CAAC,CAAA;AACL;AAYA,IAAM,YAAA,GAAe,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAG,CAAA;AACxC,IAAM,YAAA,GAAe,CAAC,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AACtC,IAAM,WAAA,GAAc,CAAC,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK,CAAA;AAGxC,SAAS,gBAAgB,GAAA,EAA+C;AAC7E,EAAA,IAAI,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAC7B,EAAA,KAAA,IAAS,GAAA,GAAM,CAAA,EAAG,GAAA,GAAM,WAAA,CAAY,QAAQ,GAAA,EAAA,EAAO;AACjD,IAAA,MAAM,GAAA,GAAM,WAAA,CAAY,GAAG,CAAA,CAAG,QAAQ,GAAG,CAAA;AACzC,IAAA,IAAI,GAAA,KAAQ,IAAI,OAAO,CAAC,aAAa,GAAG,CAAA,EAAI,YAAA,CAAa,GAAG,CAAE,CAAA;AAAA,EAChE;AACA,EAAA,OAAO,IAAA;AACT;AAoBO,SAAS,YAAY,GAAA,EAAmB;AAC7C,EAAA,MAAM,EAAA,GAAK,gBAAgB,GAAG,CAAA;AAC9B,EAAA,IAAI,CAAC,EAAA,EAAI;AACT,EAAA,MAAM,MAAM,aAAA,EAAc;AAC1B,EAAA,IAAI,CAAC,GAAA,EAAK;AAEV,EAAA,MAAM,KAAA,GAAQ,GAAA;AACd,EAAA,MAAM,IAAA,GAAO,IAAA;AACb,EAAA,MAAM,QAAA,GAAW,IAAA;AACjB,EAAA,MAAM,IAAA,GAAO,IAAA;AAEb,EAAA,MAAM,IAAA,GAAO,IAAI,UAAA,EAAW;AAC5B,EAAA,IAAA,CAAK,KAAK,KAAA,GAAQ,CAAA;AAClB,EAAA,IAAA,CAAK,OAAA,CAAQ,IAAI,WAAW,CAAA;AAE5B,EAAA,MAAM,WAAA,GAAc,EAAA,CAAG,GAAA,CAAI,CAAC,IAAA,KAAS;AACnC,IAAA,MAAM,GAAA,GAAM,IAAI,gBAAA,EAAiB;AACjC,IAAA,GAAA,CAAI,IAAA,GAAO,MAAA;AACX,IAAA,GAAA,CAAI,UAAU,KAAA,GAAQ,IAAA;AACtB,IAAA,GAAA,CAAI,QAAQ,IAAI,CAAA;AAChB,IAAA,GAAA,CAAI,KAAA,EAAM;AACV,IAAA,OAAO,GAAA;AAAA,EACT,CAAC,CAAA;AAED,EAAA,MAAM,OAAO,MAAY;AACvB,IAAA,MAAM,EAAA,GAAK,IAAI,WAAA,GAAc,IAAA;AAC7B,IAAA,IAAA,CAAK,IAAA,CAAK,cAAA,CAAe,CAAA,EAAG,EAAE,CAAA;AAC9B,IAAA,IAAA,CAAK,IAAA,CAAK,uBAAA,CAAwB,KAAA,EAAO,EAAA,GAAK,IAAI,CAAA;AAClD,IAAA,IAAA,CAAK,IAAA,CAAK,cAAA,CAAe,KAAA,EAAO,EAAA,GAAK,WAAW,IAAI,CAAA;AACpD,IAAA,IAAA,CAAK,IAAA,CAAK,uBAAA,CAAwB,CAAA,EAAG,EAAA,GAAK,QAAQ,CAAA;AAClD,IAAA,KAAA,MAAW,GAAA,IAAO,WAAA,EAAa,GAAA,CAAI,IAAA,CAAK,KAAK,QAAQ,CAAA;AAErD,IAAA,WAAA,CAAY,CAAC,CAAA,CAAG,OAAA,GAAU,MAAM,KAAK,UAAA,EAAW;AAAA,EAClD,CAAA;AAIA,EAAA,IAAI,GAAA,CAAI,KAAA,KAAU,SAAA,EAAW,IAAA,EAAK;AAAA,OAC7B,KAAK,QAAQ,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA,CAAE,MAAM,MAAM;AAAA,EAAC,CAAC,CAAA,CAAE,OAAA,CAAQ,IAAI,CAAA;AACxE;AAIA,IAAI,WAAA,GAA6B,IAAA;AAYjC,SAAS,cAAA,GAAyB;AAChC,EAAA,IAAI,aAAa,OAAO,WAAA;AAExB,EAAA,MAAM,UAAA,GAAa,IAAA;AACnB,EAAA,MAAM,QAAA,GAAW,CAAA;AACjB,EAAA,MAAM,cAAA,GAAiB,CAAA;AACvB,EAAA,MAAM,GAAA,GAAM,GAAA;AACZ,EAAA,MAAM,OAAA,GAAU,GAAA;AAChB,EAAA,MAAM,UAAA,GAAa,CAAA;AACnB,EAAA,MAAM,WAAA,GAAc,IAAA,CAAK,KAAA,CAAA,CAAO,OAAA,GAAU,cAAc,UAAU,CAAA;AAClE,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,UAAU,CAAA;AAClD,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,IAAA,GAAO,UAAU,CAAA;AAEzC,EAAA,MAAM,aAAa,QAAA,GAAW,cAAA;AAC9B,EAAA,MAAM,WAAW,WAAA,GAAc,UAAA;AAC/B,EAAA,MAAM,MAAA,GAAS,IAAI,WAAA,CAAY,EAAA,GAAK,QAAQ,CAAA;AAC5C,EAAA,MAAM,IAAA,GAAO,IAAI,QAAA,CAAS,MAAM,CAAA;AAChC,EAAA,MAAM,GAAA,GAAM,CAAC,GAAA,EAAa,CAAA,KAAoB;AAC5C,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,CAAE,MAAA,EAAQ,CAAA,EAAA,EAAK,IAAA,CAAK,QAAA,CAAS,GAAA,GAAM,CAAA,EAAG,CAAA,CAAE,UAAA,CAAW,CAAC,CAAC,CAAA;AAAA,EAC3E,CAAA;AAEA,EAAA,GAAA,CAAI,GAAG,MAAM,CAAA;AACb,EAAA,IAAA,CAAK,SAAA,CAAU,CAAA,EAAG,EAAA,GAAK,QAAA,EAAU,IAAI,CAAA;AACrC,EAAA,GAAA,CAAI,GAAG,MAAM,CAAA;AACb,EAAA,GAAA,CAAI,IAAI,MAAM,CAAA;AACd,EAAA,IAAA,CAAK,SAAA,CAAU,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA;AAC3B,EAAA,IAAA,CAAK,SAAA,CAAU,EAAA,EAAI,CAAA,EAAG,IAAI,CAAA;AAC1B,EAAA,IAAA,CAAK,SAAA,CAAU,EAAA,EAAI,QAAA,EAAU,IAAI,CAAA;AACjC,EAAA,IAAA,CAAK,SAAA,CAAU,EAAA,EAAI,UAAA,EAAY,IAAI,CAAA;AACnC,EAAA,IAAA,CAAK,SAAA,CAAU,EAAA,EAAI,UAAA,GAAa,UAAA,EAAY,IAAI,CAAA;AAChD,EAAA,IAAA,CAAK,SAAA,CAAU,EAAA,EAAI,UAAA,EAAY,IAAI,CAAA;AACnC,EAAA,IAAA,CAAK,SAAA,CAAU,EAAA,EAAI,cAAA,GAAiB,CAAA,EAAG,IAAI,CAAA;AAC3C,EAAA,GAAA,CAAI,IAAI,MAAM,CAAA;AACd,EAAA,IAAA,CAAK,SAAA,CAAU,EAAA,EAAI,QAAA,EAAU,IAAI,CAAA;AAEjC,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,WAAA,EAAa,CAAA,EAAA,EAAK;AACpC,IAAA,IAAI,MAAA,GAAS,CAAA;AACb,IAAA,IAAI,IAAI,UAAA,EAAY;AAClB,MAAA,IAAI,GAAA,GAAM,CAAA;AACV,MAAA,IAAI,CAAA,GAAI,IAAA,EAAM,GAAA,GAAM,CAAA,GAAI,IAAA;AAAA,WAAA,IACf,CAAA,GAAI,aAAa,IAAA,EAAM,GAAA,GAAM,KAAK,GAAA,CAAI,CAAA,EAAA,CAAI,UAAA,GAAa,CAAA,IAAK,IAAI,CAAA;AACzE,MAAA,MAAA,GAAS,IAAA,CAAK,IAAI,CAAA,GAAI,IAAA,CAAK,KAAK,OAAA,IAAW,CAAA,GAAI,UAAA,CAAW,CAAA,GAAI,GAAA,GAAM,GAAA;AAAA,IACtE;AACA,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,KAAK,CAAA;AACrC,IAAA,MAAM,GAAA,GAAM,KAAK,CAAA,GAAI,UAAA;AACrB,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,QAAA,EAAU,CAAA,EAAA,EAAK,IAAA,CAAK,QAAA,CAAS,GAAA,GAAM,CAAA,GAAI,cAAA,EAAgB,GAAA,EAAK,IAAI,CAAA;AAAA,EACtF;AAEA,EAAA,WAAA,GAAc,GAAA,CAAI,eAAA,CAAgB,IAAI,IAAA,CAAK,CAAC,MAAM,CAAA,EAAG,EAAE,IAAA,EAAM,WAAA,EAAa,CAAC,CAAA;AAC3E,EAAA,OAAO,WAAA;AACT;AAgBO,SAAS,YAAA,GAAqB;AACnC,EAAA,MAAM,EAAA,GAAK,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AACzC,EAAA,EAAA,CAAG,MAAM,cAAA,EAAe;AACxB,EAAA,EAAA,CAAG,IAAA,GAAO,IAAA;AACV,EAAA,EAAA,CAAG,MAAM,OAAA,GAAU,MAAA;AACnB,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,EAAE,CAAA;AAC5B,EAAA,KAAK,EAAA,CAAG,IAAA,EAAK,CAAE,KAAA,CAAM,MAAM;AAAA,EAAC,CAAC,CAAA;AAE7B,EAAA,OAAO;AAAA,IACL,IAAA,GAAO;AACL,MAAA,EAAA,CAAG,KAAA,EAAM;AACT,MAAA,EAAA,CAAG,MAAA,EAAO;AAAA,IACZ;AAAA,GACF;AACF;;;AL3XQ,IAAAC,mBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAjFR,IAAM,+BAAe,IAAI,GAAA,CAAI,CAAC,GAAA,EAAK,GAAG,CAAC,CAAA;AAqBhC,SAAS,OAAA,CAAQ,EAAE,OAAA,GAAU,IAAA,EAAM,UAAU,QAAA,GAAW,IAAA,EAAK,GAAkB,EAAC,EAAG;AACxF,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAM,QAAQ,iBAAA,EAAkB;AAOhC,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAA,IAAI,wBAAS,EAAE,CAAA;AACrC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAA,IAAI,wBAAS,eAAe,CAAA;AACtD,EAAA,MAAM,SAAS,kBAAA,EAAmB;AAClC,EAAA,MAAM,QAAA,GAAA,IAAW,sBAAyB,IAAI,CAAA;AAC9C,EAAA,MAAM,QAAA,GAAA,IAAW,sBAAsB,IAAI,CAAA;AAE3C,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,EAAS,KAAK,CAAA;AACrC,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,OAAA,EAAS,KAAK,CAAA;AACpC,EAAA,MAAM,OAAA,GAAU,KAAA,KAAU,QAAA,IAAY,MAAA,CAAO,MAAA,GAAS,CAAA;AAKtD,EAAA,IAAA,aAAA,CAAA,eAAA,EAAgB,MAAM;AACpB,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AACvB,IAAA,IAAI,KAAA,KAAU,IAAA,IAAQ,CAAC,QAAA,CAAS,OAAA,EAAS;AACzC,IAAA,QAAA,CAAS,OAAA,GAAU,IAAA;AACnB,IAAA,MAAM,GAAA,GAAM,gBAAA,CAAiB,OAAA,EAAS,KAAK,CAAA;AAC3C,IAAA,QAAA,CAAS,OAAA,CAAQ,iBAAA,CAAkB,GAAA,EAAK,GAAG,CAAA;AAAA,EAC7C,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,MAAM,MAAA,GAAS,CAAC,GAAA,KAAgB;AAC9B,IAAA,QAAA,IAAW;AACX,IAAA,QAAA,CAAS,CAAC,CAAA,KAAM,CAAA,GAAI,GAAG,CAAA;AAIvB,IAAA,IAAI,QAAA,cAAsB,GAAG,CAAA;AAAA,EAC/B,CAAA;AACA,EAAA,MAAM,YAAY,MAAM;AACtB,IAAA,QAAA,IAAW;AACX,IAAA,QAAA,CAAS,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAC,CAAA;AAAA,EAChC,CAAA;AACA,EAAA,MAAM,OAAO,MAAM;AACjB,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,QAAA,IAAW;AACX,IAAA,KAAK,SAAA,CAAU,KAAK,MAAM,CAAA;AAAA,EAC5B,CAAA;AAEA,EAAA,uBACE,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAUb,QAAA,EAAA;AAAA,oBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EACb,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,iBAAc,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,UAAA,EAAY,CAAA,EACvD,CAAA;AAAA,oBAEA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAEb,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAA,EAAe,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,sBAC3C,IAAA,mBAAA,CAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,YAAA;AAAA,UACV,KAAA,EAAO,OAAA;AAAA,UACP,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,YAAA,QAAA,IAAW;AAEX,YAAA,QAAA,CAAS,OAAA,GAAU,kBAAkB,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,MAAA,CAAO,kBAAkB,CAAC,CAAA;AAGjF,YAAA,QAAA,CAAS,EAAE,MAAA,CAAO,KAAA,CAAM,OAAA,CAAQ,SAAA,EAAW,EAAE,CAAC,CAAA;AAAA,UAChD,CAAA;AAAA,UACA,WAAW,CAAC,CAAA,KAAM,CAAA,CAAE,GAAA,KAAQ,WAAW,IAAA,EAAK;AAAA,UAC5C,WAAA,EAAY,WAAA;AAAA,UACZ,YAAA,EAAW,oBAAA;AAAA,UACX,SAAA,EAAU;AAAA;AAAA,OACZ;AAAA,sBACA,IAAA,mBAAA,CAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,cAAA;AAAA,UACV,aAAA,EAAa,MAAM,MAAA,KAAW,CAAA;AAAA,UAC9B,OAAA,EAAS,SAAA;AAAA,UACT,YAAA,EAAW,QAAA;AAAA,UAEX,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAO,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA;AACpB,KAAA,EACF,CAAA;AAAA,oBAUA,IAAA,mBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iBAAA,EAAkB,IAAA,EAAK,QAAA,EAAS,IAAA,EAAK,OAAA,EAAQ,YAAA,EAAY,OAAA,KAAY,IAAA,EAC/E,QAAA,EAAA,OAAA,EAAS,QAAQ,EAAA,EACpB,CAAA;AAAA,oBAEA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACZ,QAAA,EAAA,WAAA,CAAY,IAAI,CAAC,CAAC,GAAA,EAAK,OAAO,CAAA,KAAM;AACnC,MAAA,MAAM,QAAA,GAAW,CAAC,YAAA,CAAa,GAAA,CAAI,GAAG,CAAA;AACtC,MAAA,uBACE,IAAA,mBAAA,CAAA,IAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,QAAA;AAAA,UACV,eAAA,EAAe,QAAA;AAAA,UACf,OAAA,EAAS,MAAM,QAAA,IAAY,MAAA,CAAO,GAAG,CAAA;AAAA,UACrC,iBAAe,CAAC,QAAA;AAAA,UAGhB,KAAA,EAAO,WAAW,MAAA,GAAY,qCAAA;AAAA,UAE9B,QAAA,EAAA;AAAA,4BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,OAAG,QAAA,EAAA,GAAA,EAAI,CAAA;AAAA,YACP,OAAA,mBAAU,IAAA,mBAAA,CAAA,GAAA,EAAC,OAAA,EAAA,EAAO,QAAA,EAAA,OAAA,EAAQ,CAAA,GAAW;AAAA;AAAA,SAAA;AAAA,QAXjC;AAAA,OAYP;AAAA,IAEJ,CAAC,CAAA,EACH,CAAA;AAAA,oBAEA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EACb,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,2BAAA;AAAA,QACV,OAAA,EAAS,IAAA;AAAA,QACT,UAAU,CAAC,OAAA;AAAA,QACX,YAAA,EAAW,QAAA;AAAA,QACX,IAAA,EAAK,aAAA;AAAA,QAEL,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA,KACnB,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;AMrLA,IAAAD,cAAAA,GAA4C,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;;;ACGrC,SAAS,eAAe,YAAA,EAA8B;AAC3D,EAAA,MAAM,IAAI,IAAA,CAAK,GAAA,CAAI,GAAG,IAAA,CAAK,KAAA,CAAM,YAAY,CAAC,CAAA;AAC9C,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,KAAA,CAAM,CAAA,GAAI,IAAI,CAAA;AAC9B,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,KAAA,CAAO,CAAA,GAAI,OAAQ,EAAE,CAAA;AACrC,EAAA,MAAM,KAAK,CAAA,GAAI,EAAA;AACf,EAAA,MAAM,GAAA,GAAM,CAAC,CAAA,KAAc,MAAA,CAAO,CAAC,CAAA,CAAE,QAAA,CAAS,GAAG,GAAG,CAAA;AACpD,EAAA,OAAO,KAAK,CAAA,GAAI,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,GAAA,CAAI,EAAE,CAAC,CAAA,CAAA,EAAI,GAAA,CAAI,EAAE,CAAC,CAAA,CAAA,GAAK,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,GAAA,CAAI,EAAE,CAAC,CAAA,CAAA;AAClE;AAGO,SAAS,SAAS,IAAA,EAAyC;AAChE,EAAA,IAAI,CAAC,MAAM,OAAO,GAAA;AAClB,EAAA,MAAM,KAAA,GAAQ,KAAK,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA,CAAE,OAAO,OAAO,CAAA;AACrD,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,IAAK,QAAA,CAAS,KAAK,KAAA,CAAM,CAAC,CAAE,CAAA,EAAG,OAAO,GAAA;AAC3D,EAAA,OAAO,KAAA,CACJ,KAAA,CAAM,CAAA,EAAG,CAAC,EACV,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,CAAC,CAAA,CAAG,WAAA,EAAa,CAAA,CAC9B,KAAK,EAAE,CAAA;AACZ;AAGO,SAAS,cAAA,CAAe,OAAoB,GAAA,EAAqB;AACtE,EAAA,IAAI,CAAC,OAAO,OAAO,CAAA;AACnB,EAAA,OAAO,KAAK,KAAA,CAAA,CAAO,GAAA,GAAM,KAAA,CAAM,OAAA,MAAa,GAAI,CAAA;AAClD;AAOO,SAAS,UAAU,YAAA,EAA8B;AACtD,EAAA,MAAM,IAAI,IAAA,CAAK,GAAA,CAAI,GAAG,IAAA,CAAK,KAAA,CAAM,YAAY,CAAC,CAAA;AAC9C,EAAA,IAAI,CAAA,GAAI,IAAI,OAAO,aAAA;AACnB,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,KAAA,CAAM,CAAA,GAAI,EAAE,CAAA;AAC5B,EAAA,IAAI,EAAA,GAAK,EAAA,EAAI,OAAO,CAAA,KAAA,EAAQ,EAAE,CAAA,IAAA,CAAA;AAC9B,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,KAAA,CAAM,EAAA,GAAK,EAAE,CAAA;AAC7B,EAAA,OAAO,QAAQ,EAAE,CAAA,EAAA,CAAA;AACnB;;;AChBO,IAAM,UAAA,GAAoD;AAAA;AAAA;AAAA;AAAA,EAI/D,2BAAA,EAA6B;AAAA,IAC3B,KAAA,EAAO,uBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,oBAAA,EAAsB,EAAE,KAAA,EAAO,wCAAA,EAAgC;AAAA,EAC/D,kBAAA,EAAoB;AAAA,IAClB,KAAA,EAAO,qBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA;AAAA;AAAA,EAIA,yBAAA,EAA2B;AAAA,IACzB,KAAA,EAAO,iCAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,KAAA,EAAO,oBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,yBAAA,EAA2B;AAAA,IACzB,KAAA,EAAO,wBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,uBAAA,EAAyB;AAAA,IACvB,KAAA,EAAO,kBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,KAAA,EAAO,yBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,wBAAA,EAA0B,EAAE,KAAA,EAAO,yCAAA,EAA0C;AAAA;AAAA;AAAA,EAI7E,yBAAA,EAA2B;AAAA,IACzB,KAAA,EAAO,qBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,KAAA,EAAO,qBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA;AAAA;AAAA,EAGA,gBAAA,EAAkB,EAAE,KAAA,EAAO,4BAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBnD,qBAAA,EAAuB,EAAE,KAAA,EAAO,6BAAA,EAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9D,WAAA,EAAa,EAAE,KAAA,EAAO,6CAAA,EAA2C;AAAA,EACjE,gBAAA,EAAkB,EAAE,KAAA,EAAO,gBAAA,EAAiB;AAAA,EAC5C,eAAA,EAAiB,EAAE,KAAA,EAAO,yBAAA,EAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQpD,aAAA,EAAe,EAAE,KAAA,EAAO,0CAAA,EAA2C;AAAA;AAAA;AAAA,EAGnE,aAAA,EAAe,EAAE,KAAA,EAAO,uCAAA,EAAqC;AAAA;AAAA;AAAA,EAG7D,sBAAA,EAAwB,EAAE,KAAA,EAAO,6CAAA,EAA8C;AAAA,EAC/E,kBAAA,EAAoB,EAAE,KAAA,EAAO,uCAAA,EAAkC;AAAA;AAAA,EAG/D,2BAAA,EAA6B;AAAA,IAC3B,KAAA,EAAO,mCAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAA;;;AC1IA,IAAAA,aAAAA,GAAoC,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;AAO7B,SAAS,SAAA,CAAU,OAAA,EAAkB,UAAA,GAAa,GAAA,EAAc;AACrE,EAAA,MAAM,CAAC,KAAK,MAAM,CAAA,GAAA,IAAI,wBAAS,MAAM,IAAA,CAAK,KAAK,CAAA;AAC/C,EAAA,IAAA,aAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAA,EAAS;AACd,IAAA,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AACjB,IAAA,MAAM,EAAA,GAAK,YAAY,MAAM,MAAA,CAAO,KAAK,GAAA,EAAK,GAAG,UAAU,CAAA;AAC3D,IAAA,OAAO,MAAM,cAAc,EAAE,CAAA;AAAA,EAC/B,CAAA,EAAG,CAAC,OAAA,EAAS,UAAU,CAAC,CAAA;AACxB,EAAA,OAAO,GAAA;AACT;;;AChBA,IAAAA,cAAAA,GAA0B,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;AAwClB,IAAAC,mBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AA5BR,SAAS,WAAA,CAAY,MAAA,EAAyB,KAAA,EAAe,IAAA,EAAkC;AAC7F,EAAA,IAAI,MAAA,CAAO,KAAA,EAAO,OAAO,MAAA,CAAO,KAAA;AAChC,EAAA,OAAO,IAAA,KAAS,UAAU,CAAA,aAAA,EAAa,KAAA,GAAQ,CAAC,CAAA,CAAA,GAAK,CAAA,QAAA,EAAW,QAAQ,CAAC,CAAA,CAAA;AAC3E;AAGA,IAAM,cAAA,GAAiB,EAAA;AAEvB,SAAS,YAAA,CAAa;AAAA,EACpB,IAAA,EAAMC,KAAAA;AAAA,EACN,KAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAQI;AACF,EAAA,uBACE,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EAAuB,aAAA,EAAW,IAAA,EAChD,uDAACA,KAAAA,EAAA,EAAK,IAAA,EAAM,EAAA,EAAI,CAAA,EAClB,CAAA;AAAA,oBACA,IAAA,mBAAA,CAAA,IAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EACd,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,uBAAA,EAAwB,IAAI,CAAA,kBAAA,EAAqB,IAAI,IAClE,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,MACC,OAAA,CAAQ,SAAS,CAAA,mBAChB,IAAA,mBAAA,CAAA,IAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,oBAAA;AAAA,UACV,iBAAA,EAAiB,qBAAqB,IAAI,CAAA,CAAA;AAAA,UAC1C,OAAO,KAAA,IAAS,cAAA;AAAA,UAChB,QAAA,EAAU,CAAC,CAAA,KAAM,QAAA,CAAS,CAAA,CAAE,MAAA,CAAO,KAAA,KAAU,cAAA,GAAiB,IAAA,GAAO,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAAA,UAEnF,QAAA,EAAA;AAAA,4BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,QAAA,EAAA,EAAO,KAAA,EAAO,cAAA,EAAgB,QAAA,EAAA,4BAAA,EAA0B,CAAA;AAAA,YACxD,QAAQ,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,kDACd,QAAA,EAAA,EAAwB,KAAA,EAAO,CAAA,CAAE,QAAA,EAC/B,sBAAY,CAAA,EAAG,CAAA,EAAG,IAAI,CAAA,EAAA,EADZ,CAAA,CAAE,QAEf,CACD;AAAA;AAAA;AAAA,OACH,mBAEA,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAqB,QAAA,EAAA,SAAA,EAAU;AAAA,KAAA,EAEnD;AAAA,GAAA,EACF,CAAA;AAEJ;AAQO,SAAS,aAAA,GAAgB;AAC9B,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAM,UAAU,UAAA,EAAW;AAQ3B,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,KAAK,SAAA,CAAU,MAAM,OAAA,EAAQ;AAAA,EAC/B,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,uBACE,IAAA,mBAAA,CAAA,IAAA,EAAA,mBAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,IAAA,mBAAA,CAAA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,GAAA;AAAA,QACN,KAAA,EAAM,cAAA;AAAA,QACN,IAAA,EAAK,OAAA;AAAA,QACL,SAAS,OAAA,CAAQ,MAAA;AAAA,QACjB,OAAO,OAAA,CAAQ,cAAA;AAAA,QACf,UAAU,CAAC,EAAA,KAAO,KAAK,OAAA,CAAQ,SAAS,EAAE,CAAA;AAAA,QAC1C,SAAA,EAAU;AAAA;AAAA,KACZ;AAAA,IACC,QAAQ,eAAA,mBACP,IAAA,mBAAA,CAAA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,UAAA;AAAA,QACN,KAAA,EAAM,WAAA;AAAA,QACN,IAAA,EAAK,QAAA;AAAA,QACL,SAAS,OAAA,CAAQ,OAAA;AAAA,QACjB,OAAO,OAAA,CAAQ,eAAA;AAAA,QACf,UAAU,CAAC,EAAA,KAAO,KAAK,OAAA,CAAQ,UAAU,EAAE,CAAA;AAAA,QAC3C,SAAA,EAAU;AAAA;AAAA,KACZ;AAAA;AAAA;AAAA,sBAIA,IAAA,mBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAA,EAAmB,QAAA,EAAA,wGAAA,EAGhC;AAAA;AAAA,GAAA,EAEJ,CAAA;AAEJ;;;AJ/DI,IAAAD,mBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAlBJ,SAAS,OAAA,CAAQ;AAAA,EACf,IAAA,EAAMC,KAAAA;AAAA,EACN,KAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,IAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX;AACF,CAAA,EAQI;AACF,EAAA,uBACE,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,mBAAA,CAAA,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,SAAA;AAAA,QACV,WAAA,EAAW,UAAU,IAAA,GAAO,MAAA;AAAA,QAC5B,cAAA,EAAc,OAAA;AAAA,QACd,YAAA,EAAY,KAAA;AAAA,QACZ,OAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QAEA,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAACA,KAAAA,EAAA,EAAK,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA,KAClB;AAAA,iDAEC,MAAA,EAAA,EAAK,SAAA,EAAU,eAAA,EAAgB,aAAA,EAAW,MACxC,QAAA,EAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,IAAM,YAAA,GAAuC;AAAA,EAC3C,OAAA,EAAS,kBAAA;AAAA,EACT,OAAA,EAAS,gBAAA;AAAA,EACT,KAAA,EAAO,gBAAA;AAAA,EACP,SAAA,EAAW,kBAAA;AAAA,EACX,YAAA,EAAc,oBAAA;AAAA,EACd,IAAA,EAAM;AACR,CAAA;AAUA,IAAM,iBAAA,GAAuE;AAAA,EAC3E,IAAA,EAAM,WAAA;AAAA,EACN,WAAA,EAAa,gBAAA;AAAA,EACb,QAAA,EAAU,eAAA;AAAA,EACV,MAAA,EAAQ;AACV,CAAA;AAEA,SAAS,gBAAgB,MAAA,EAA8B;AACrD,EAAA,OAAO,UAAA,CAAW,iBAAA,CAAkB,MAAM,CAAA,IAAK,sBAAsB,CAAA,CAAE,KAAA;AACzE;AAwBO,IAAM,wBAAA,GAA2B,EAAA;AAaxC,SAAS,aAAA,CAAc;AAAA,EACrB,QAAA;AAAA,EACA,WAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAUI;AACF,EAAA,MAAM,IAAI,WAAA,CAAY,KAAA;AACtB,EAAA,MAAM,WAAW,CAAA,KAAM,QAAA;AACvB,EAAA,MAAM,IAAA,GAAO,YAAY,MAAA,CAAO,WAAA;AAChC,EAAA,MAAM,MAAA,GAAS,YAAY,MAAA,CAAO,MAAA;AAClC,EAAA,MAAM,aAAa,MAAA,KAAW,IAAA;AAC9B,EAAA,MAAM,WAAA,GAAc,cAAA,CAAe,WAAA,CAAY,UAAA,EAAY,GAAG,CAAA;AAC9D,EAAA,MAAM,CAAC,IAAA,GAAO,GAAA,EAAK,EAAA,GAAK,IAAI,IAAI,cAAA,CAAe,WAAW,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA;AACrE,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,QAAA,CAAS,CAAA,EAAG,GAAG,CAAA;AAE/B,EAAA,MAAM,cAAc,WAAA,IAAe,wBAAA;AAEnC,EAAA,uBACE,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,SAAA,EAGb,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,YAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,wBAAA,EAAyB,SAAS,QAAA,EAChE,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,QAC5B,QAAA;AAAA,QAAS;AAAA,OAAA,EACZ,CAAA;AAAA,sBAEA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,SAAI,SAAA,EAAU,WAAA,EAAY,eAAW,IAAA,EACnC,QAAA,EAAA,QAAA,CAAS,IAAI,CAAA,EAChB,CAAA;AAAA,QACC,2BAAW,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,WAAU,eAAA,EAAgB,aAAA,EAAW,MAAC,CAAA,GAAK;AAAA,OAAA,EAC/D,CAAA;AAAA,sBACA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAAgB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,MACnC,6BAAa,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EAAkB,kBAAO,CAAA,GAAS,IAAA;AAAA,MAE9D,2BACC,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAW,cAAW,2BAAA,EACnC,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,OAAG,QAAA,EAAA,EAAA,EAAG,CAAA;AAAA,wBACP,IAAA,mBAAA,CAAA,GAAA,EAAC,OAAE,QAAA,EAAA,GAAA,EAAC,CAAA;AAAA,wBACJ,IAAA,mBAAA,CAAA,GAAA,EAAC,OAAG,QAAA,EAAA,EAAA,EAAG;AAAA,OAAA,EACT,CAAA,gDAEC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAkB,QAAA,EAAA,YAAA,CAAa,CAAC,KAAK,EAAA,EAAG;AAAA,KAAA,EAE3D,CAAA;AAAA,oBAEA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,QAAA,mBACC,IAAA,mBAAA,CAAA,GAAA,EAAC,QAAA,EAAA,EAAO,SAAA,EAAU,uBAAA,EAAwB,OAAA,EAAS,YAAY,QAAA,EAAU,CAAC,WAAA,EAAa,QAAA,EAAA,WAAA,EAEvF,CAAA,GACE,IAAA;AAAA,qDACH,QAAA,EAAA,EAAO,SAAA,EAAU,QAAA,EAAS,OAAA,EAAS,UAAU,QAAA,EAAA,UAAA,EAE9C;AAAA,OAAA,EACF,CAAA;AAAA,mDACC,KAAA,EAAA,EAAI,SAAA,EAAU,uBACb,QAAA,kBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,cAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,2BAAA;AAAA,YACV,OAAA,EAAS,WAAA;AAAA,YACT,YAAA,EAAW,aAAA;AAAA,YAEX,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,QAAA,EAAA,EAAS,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA,SACtB;AAAA,qDACC,MAAA,EAAA,EAAK,SAAA,EAAU,eAAA,EAAgB,aAAA,EAAW,MAAC,QAAA,EAAA,aAAA,EAE5C;AAAA,OAAA,EACF,CAAA,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,IAAM,cAAA,GAAgD;AAAA,EACpD,UAAA,EAAY,YAAA;AAAA,EACZ,UAAA,EAAY,YAAA;AAAA,EACZ,YAAA,EAAc;AAChB,CAAA;AAEA,IAAM,aAAA,GAA+C;AAAA,EACnD,UAAA,EAAY,CAAA;AAAA,EACZ,UAAA,EAAY,CAAA;AAAA,EACZ,YAAA,EAAc;AAChB,CAAA;AAKA,SAAS,YAAA,CAAa,QAAkC,KAAA,EAAyC;AAC/F,EAAA,MAAM,CAAA,GAAI,KAAA,CAAM,IAAA,EAAK,CAAE,WAAA,EAAY;AACnC,EAAA,OAAO,OACJ,MAAA,CAAO,CAAC,MAAM,CAAC,CAAA,IAAA,CAAM,EAAE,IAAA,IAAQ,EAAA,EAAI,aAAY,CAAE,QAAA,CAAS,CAAC,CAAA,IAAK,CAAA,CAAE,UAAU,QAAA,CAAS,CAAC,CAAC,CAAA,CACvF,IAAA;AAAA,IACC,CAAC,CAAA,EAAG,CAAA,KACF,cAAc,CAAA,CAAE,KAAK,IAAI,aAAA,CAAc,CAAA,CAAE,KAAK,CAAA,IAAA,CAC7C,CAAA,CAAE,QAAQ,CAAA,CAAE,SAAA,EAAW,cAAc,CAAA,CAAE,IAAA,IAAQ,EAAE,SAAS;AAAA,GAC/D;AACJ;AAKA,SAAS,iBAAA,CAAkB,IAAA,EAAc,GAAA,GAAM,EAAA,EAAY;AACzD,EAAA,OAAO,IAAA,CAAK,SAAS,GAAA,GAAM,CAAA,EAAG,KAAK,KAAA,CAAM,CAAA,EAAG,GAAG,CAAC,CAAA,MAAA,CAAA,GAAM,IAAA;AACxD;AAUA,SAAS,cAAA,CAAe;AAAA,EACtB,MAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAKI;AACF,EAAA,MAAM,SAAS,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,WAAW,QAAQ,CAAA;AACzD,EAAA,IAAI,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAChC,EAAA,MAAM,QAAA,GAAW,YAAA,CAAa,MAAA,EAAQ,KAAK,CAAA;AAE3C,EAAA,uBACE,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,SAAI,SAAA,EAAU,kBAAA,EAAmB,MAAK,SAAA,EAAU,YAAA,EAAW,iBACzD,QAAA,EAAA,QAAA,CAAS,MAAA,KAAW,oBACnB,IAAA,mBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAE,WAAU,mBAAA,EAAoB,QAAA,EAAA,mBAAA,EAAiB,IAElD,QAAA,CAAS,GAAA,CAAI,CAAC,KAAA,KAAU;AAatB,MAAA,MAAM,MAAA,GAAS,MAAM,KAAA,KAAU,YAAA;AAC/B,MAAA,uBACE,IAAA,mBAAA,CAAA,IAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,IAAA,EAAK,QAAA;AAAA,UACL,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,kBAAA;AAAA,UACV,QAAA,EAAU,MAAA;AAAA,UACV,OAAA,EAAS,MAAM,QAAA,CAAS,KAAA,CAAM,SAAS,CAAA;AAAA,UAEvC,QAAA,EAAA;AAAA,4BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,iBAAA,EAAkB,cAAY,KAAA,CAAM,KAAA,EAAO,eAAW,IAAA,EAAC,CAAA;AAAA,yDACtE,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAoB,QAAA,EAAA,KAAA,CAAM,IAAA,IAAQ,MAAM,SAAA,EAAU,CAAA;AAAA,4BAClE,IAAA,mBAAA,CAAA,IAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EACb,QAAA,EAAA;AAAA,cAAA,KAAA,CAAM,SAAA;AAAA,cAAU,QAAA;AAAA,cAAI,cAAA,CAAe,MAAM,KAAK;AAAA,aAAA,EACjD;AAAA;AAAA,SAAA;AAAA,QAXK,KAAA,CAAM;AAAA,OAYb;AAAA,IAEJ,CAAC,CAAA,EAEL,CAAA;AAAA,oBAIA,IAAA,mBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oBAAA,EAAqB,QAAA,EAAA,0FAAA,EAElC;AAAA,GAAA,EACF,CAAA;AAEJ;AAGO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA;AAAA,EACA,kBAAA;AAAA,EACA,QAAA,GAAW;AACb,CAAA,EAQI;AACF,EAAA,MAAM,IAAA,GAAO,QAAQ,IAAI,CAAA;AACzB,EAAA,MAAM,YAAY,YAAA,EAAa;AAK/B,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAA,IAAI,yBAAmD,IAAI,CAAA;AACjF,EAAA,MAAM,eAAe,KAAA,KAAU,UAAA;AAC/B,EAAA,MAAM,aAAa,KAAA,KAAU,QAAA;AAC7B,EAAA,MAAM,cAAc,KAAA,KAAU,SAAA;AAC9B,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAA6B,QAAA,CAAS,CAAC,GAAA,KAAS,GAAA,KAAQ,CAAA,GAAI,IAAA,GAAO,CAAE,CAAA;AAC1F,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAA,IAAI,yBAAS,EAAE,CAAA;AAC/C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAA,IAAI,yBAAsB,IAAI,CAAA;AAChE,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAA,IAAI,yBAA8B,IAAI,CAAA;AAC9E,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAA,IAAI,yBAAwB,IAAI,CAAA;AAC5D,EAAA,MAAM,WAAA,GAAc,QAAQ,WAAW,CAAA;AAIvC,EAAA,MAAM,gBAAA,GAAA,IAAmB,uBAAqC,IAAI,CAAA;AAClE,EAAA,MAAM,WAAA,GAAA,IAAc,uBAAuB,IAAI,CAAA;AAC/C,EAAA,MAAM,GAAA,GAAM,SAAA,CAAU,IAAA,EAAM,KAAA,KAAU,QAAQ,CAAA;AAG9C,EAAA,MAAM,UAAA,GAAa,SAAA,CAAU,WAAA,EAAa,KAAA,KAAU,QAAQ,CAAA;AAG5D,EAAA,MAAM,WAAA,GAAc,IAAA,GAAO,IAAA,CAAK,KAAA,KAAU,QAAA,IAAY,KAAK,KAAA,KAAU,MAAA,IAAU,IAAA,CAAK,KAAA,KAAU,cAAA,GAAiB,KAAA;AAG/G,EAAA,MAAM,oBAAA,GAAuB,WAAA,IAAe,YAAA,IAAgB,CAAC,WAAA;AAI7D,EAAA,MAAM,QAAA,GAAW,YAAY,oBAAoB,CAAA;AAKjD,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,MAAM,UAAA,GAAa,UAAU,OAAA,EAAS,UAAA;AACtC,IAAA,IAAI,CAAC,UAAA,EAAY;AACjB,IAAA,IAAI,SAAA,GAAY,KAAA;AAChB,IAAA,KAAK,UAAA,EAAW,CACb,IAAA,CAAK,CAAC,MAAM,CAAC,SAAA,IAAa,WAAA,CAAY,CAAA,CAAE,IAAI,MAAA,IAAU,IAAI,CAAC,CAAA,CAC3D,MAAM,MAAM;AAAA,IAAC,CAAC,CAAA;AACjB,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,GAAY,IAAA;AAAA,IACd,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAMd,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,CAAC,WAAA,EAAa;AAClB,IAAA,OAAO,WAAA,CAAY,EAAA,CAAA,OAAA,cAAoB,CAAC,EAAE,QAAO,KAAM;AACrD,MAAA,MAAM,SAAS,gBAAA,CAAiB,OAAA;AAChC,MAAA,gBAAA,CAAiB,OAAA,GAAU,IAAA;AAC3B,MAAA,cAAA,CAAe,IAAI,CAAA;AACnB,MAAA,IAAI,CAAC,MAAA,EAAQ;AAIX,QAAA,iBAAA,CAAkB,MAAM,CAAA;AAUxB,QAAA,IAAI,IAAA,CAAK,KAAA,KAAU,OAAA,EAAS,KAAK,KAAK,MAAA,EAAO;AAAA,MAC/C;AAAA,IAGF,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,WAAA,EAAa,IAAI,CAAC,CAAA;AAQtB,EAAA,MAAM,YAAA,GAAe,OAAO,MAAA,KAAoB;AAC9C,IAAA,MAAM,CAAA,GAAA,CAAK,MAAA,IAAU,UAAA,EAAY,IAAA,EAAK;AACtC,IAAA,IAAI,CAAC,CAAA,EAAG;AACR,IAAA,iBAAA,CAAkB,IAAI,CAAA;AACtB,IAAA,cAAA,CAAe,MAAM,IAAA,CAAK,YAAA,CAAa,CAAC,CAAC,CAAA;AAAA,EAC3C,CAAA;AACA,EAAA,MAAM,mBAAA,GAAsB,CAAC,SAAA,KAAsB;AACjD,IAAA,aAAA,CAAc,SAAS,CAAA;AACvB,IAAA,KAAK,aAAa,SAAS,CAAA;AAAA,EAC7B,CAAA;AAKA,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAA,IAAI,yBAAS,KAAK,CAAA;AAsBxD,EAAA,MAAM,uBAAA,GAA0B,CAAC,SAAA,KAAsB;AACrD,IAAA,KAAK,IAAA,CAAK,SAAS,SAAS,CAAA;AAAA,EAC9B,CAAA;AAaA,EAAA,MAAM,mBAAmB,YAAY;AACnC,IAAA,IAAI,CAAC,WAAA,EAAa;AAClB,IAAA,MAAM,MAAA,GAAS,WAAW,IAAA,EAAK;AAC/B,IAAA,gBAAA,CAAiB,OAAA,GAAU,UAAA;AAC3B,IAAA,MAAM,YAAY,MAAA,EAAO;AACzB,IAAA,MAAM,IAAA,CAAK,SAAS,MAAM,CAAA;AAAA,EAC5B,CAAA;AACA,EAAA,MAAM,gBAAgB,YAAY;AAChC,IAAA,gBAAA,CAAiB,OAAA,GAAU,QAAA;AAC3B,IAAA,MAAM,KAAK,aAAA,EAAc;AAAA,EAC3B,CAAA;AAMA,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,CAAC,WAAA,EAAa;AAClB,IAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,KAAqB;AAClC,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU,QAAA,CAAS,IAAI,CAAA;AAAA,IACvC,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,KAAK,CAAA;AAC1C,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,SAAA,EAAW,KAAK,CAAA;AAAA,EAC5D,CAAA,EAAG,CAAC,WAAW,CAAC,CAAA;AAKhB,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,CAAC,UAAA,EAAY;AACjB,IAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,KAAqB;AAClC,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU,QAAA,CAAS,IAAI,CAAA;AAAA,IACvC,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,KAAK,CAAA;AAC1C,IAAA,IAAI,CAAC,WAAA,EAAa,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,WAAW,KAAK,CAAA;AAI5E,IAAA,MAAM,IAAA,GAAO,WAAA,CAAY,OAAA,EAAS,WAAA,EAAY,IAAK,QAAA;AACnD,IAAA,MAAM,MAAA,GAAS,CAAC,CAAA,KAAa;AAC3B,MAAA,IAAI,CAAC,YAAY,OAAA,EAAS,QAAA,CAAS,EAAE,MAAc,CAAA,WAAY,IAAI,CAAA;AAAA,IACrE,CAAA;AACA,IAAA,IAAA,CAAK,gBAAA,CAAiB,eAAe,MAAM,CAAA;AAC3C,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,mBAAA,CAAoB,WAAW,KAAK,CAAA;AAC7C,MAAA,IAAA,CAAK,mBAAA,CAAoB,eAAe,MAAM,CAAA;AAAA,IAChD,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,UAAA,EAAY,WAAW,CAAC,CAAA;AAM5B,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,IAAA,IAAQ,IAAA,CAAK,KAAA,KAAU,QAAA,EAAU,QAAA,CAAS,CAAC,GAAA,KAAS,GAAA,KAAQ,QAAA,GAAW,IAAA,GAAO,GAAI,CAAA;AAAA,EACxF,CAAA,EAAG,CAAC,IAAA,EAAM,KAAK,CAAC,CAAA;AAEhB,EAAA,IAAI,CAAC,IAAA,IAAQ,IAAA,CAAK,KAAA,KAAU,SAAS,OAAO,IAAA;AAE5C,EAAA,MAAM,IAAI,IAAA,CAAK,KAAA;AACf,EAAA,MAAM,YAAY,CAAA,KAAM,SAAA;AACxB,EAAA,MAAM,MAAA,GAAS,WAAA;AACf,EAAA,MAAM,IAAA,GAAO,KAAK,MAAA,CAAO,WAAA;AACzB,EAAA,MAAM,MAAA,GAAS,KAAK,MAAA,CAAO,MAAA;AAC3B,EAAA,MAAM,aAAa,MAAA,KAAW,IAAA;AAM9B,EAAA,IAAI,eAAe,WAAA,EAAa;AAC9B,IAAA,uBACE,IAAA,mBAAA,CAAA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAU,IAAA;AAAA,QACV,WAAA;AAAA,QACA,GAAA,EAAK,UAAA;AAAA,QACL,QAAA,EAAU,MAAM,KAAK,aAAA,EAAc;AAAA,QACnC,UAAA,EAAY,MAAM,KAAK,gBAAA,EAAiB;AAAA,QACxC,WAAA,EAAa,MAAM,KAAK,IAAA,CAAK,MAAA;AAAO;AAAA,KACtC;AAAA,EAEJ;AAQA,EAAA,MAAM,iBAAiB,SAAA,IAAa,IAAA,CAAK,MAAA,CAAO,OAAA,IAAW,qBAAqB,kBAAA,GAAqB,IAAA;AACrG,EAAA,MAAM,kBAAA,GAAqB,gBAAgB,IAAA,IAAQ,YAAA;AAInD,EAAA,MAAM,CAAC,IAAA,GAAO,GAAA,EAAK,EAAA,GAAK,IAAI,CAAA,GAAI,cAAA,CAAe,cAAA,CAAe,IAAA,CAAK,UAAA,EAAY,GAAG,CAAC,CAAA,CAAE,MAAM,GAAG,CAAA;AAC9F,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,QAAA,CAAS,CAAA,EAAG,GAAG,CAAA;AAE/B,EAAA,uBACE,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,SAAI,SAAA,EAAU,SAAA,EAcZ,wCACC,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,wBAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,wBAAA,EAKb,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,QAAA,EAAA,EAAO,MAAK,QAAA,EAAS,SAAA,EAAU,wBAAuB,OAAA,EAAS,MAAM,QAAA,CAAS,IAAI,CAAA,EACjF,QAAA,EAAA;AAAA,0BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,SAAA,EAAA,EAAU,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,UAAE;AAAA,SAAA,EAErC,CAAA;AAAA,wBACA,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAwB,QAAA,EAAA,cAAA,EAAY;AAAA,OAAA,EACtD,CAAA;AAAA,sBAGA,IAAA,mBAAA,CAAA,IAAA,EAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yBAAA,EACV,QAAA,EAAA;AAAA,QAAA,UAAA,GAAa,CAAA,EAAG,MAAM,CAAA,MAAA,CAAA,GAAQ,EAAA;AAAA,QAC9B,CAAA,KAAM,WAAW,CAAA,EAAG,EAAE,IAAI,EAAE,CAAA,CAAA,GAAM,YAAA,CAAa,CAAC,CAAA,IAAK;AAAA,OAAA,EACxD,CAAA;AAAA,mDACC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EACb,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,iBAAc,CAAA,EACjB;AAAA,KAAA,EACF,CAAA,GACE,oBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAgBF,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,0BAC9C,IAAA,mBAAA,CAAA,IAAA,EAAC,GAAA,EAAA,EAAE,SAAA,EAAU,yBAAA,EACV,QAAA,EAAA;AAAA,YAAA,UAAA,GAAa,CAAA,EAAG,MAAM,CAAA,MAAA,CAAA,GAAQ,EAAA;AAAA,YAC9B,CAAA,KAAM,WAAW,CAAA,EAAG,EAAE,IAAI,EAAE,CAAA,CAAA,GAAM,YAAA,CAAa,CAAC,CAAA,IAAK;AAAA,WAAA,EACxD;AAAA,SAAA,EACF,CAAA;AAAA,QACC,cAAA,mBACC,IAAA,mBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iBAAA,EAAkB,IAAA,EAAK,QAAA,EAAS,YAAA,EAAW,MAAA,EACrD,QAAA,EAAA,eAAA,CAAgB,cAAc,CAAA,EACjC,CAAA,GACE,IAAA;AAAA,wBASJ,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,IAAA,mBAAA,CAAA,GAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,WAAA;AAAA,cACV,KAAA,EAAO,UAAA;AAAA,cACP,UAAU,CAAC,CAAA,KAAM,aAAA,CAAc,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cAC7C,WAAA,EAAY,0BAAA;AAAA,cACZ,YAAA,EAAW,cAAA;AAAA,cACX,SAAA,EAAS;AAAA;AAAA,WACX;AAAA,0BACA,IAAA,mBAAA,CAAA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,uBAAA;AAAA,cACV,QAAA,EAAU,CAAC,UAAA,CAAW,IAAA,EAAK;AAAA,cAC3B,OAAA,EAAS,MAAM,KAAK,YAAA,EAAa;AAAA,cAEhC,QAAA,EAAA,UAAA,CAAW,MAAK,GAAI,CAAA,SAAA,EAAY,kBAAkB,UAAA,CAAW,IAAA,EAAM,CAAC,CAAA,CAAA,GAAK;AAAA;AAAA;AAC5E,SAAA,EACF,CAAA;AAAA,qDAIC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAe,IAAA,EAAK,SAAA,EAAU,cAAW,uBAAA,EAEpD,QAAA,EAAA;AAAA,UACE,EAAE,GAAA,EAAK,SAAA,EAAW,KAAA,EAAO,gBAAA,EAAiB;AAAA,UAC1C,EAAE,GAAA,EAAK,MAAA,EAAQ,KAAA,EAAO,oBAAA;AAAqB,UAE7C,GAAA,CAAI,CAAC,EAAE,GAAA,EAAK,OAAM,qBAClB,IAAA,mBAAA,CAAA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,KAAA;AAAA,YACL,eAAA,EAAe,mBAAmB,GAAA,KAAQ,MAAA,CAAA;AAAA,YAC1C,SAAA,EAAU,kBAAA;AAAA,YACV,OAAA,EAAS,MAAM,gBAAA,CAAiB,GAAA,KAAQ,MAAM,CAAA;AAAA,YAE7C,QAAA,EAAA;AAAA,WAAA;AAAA,UAPI;AAAA,SASR,CAAA,EACH,CAAA;AAAA,wBACA,IAAA,mBAAA,CAAA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,MAAA,EAAQ,QAAA;AAAA,YACR,QAAA;AAAA,YACA,KAAA,EAAO,UAAA;AAAA,YACP,QAAA,EAAU,gBAAgB,uBAAA,GAA0B;AAAA;AAAA;AACtD,OAAA,EACF;AAAA,wBAEA,IAAA,mBAAA,CAAA,IAAA,EAAA,mBAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EAEZ,QAAA,EAAA;AAAA,QAAA,SAAA,gDAAa,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAiB,aAAA,EAAW,MAAC,CAAA,GAAK,IAAA;AAAA,wBAC/D,IAAA,mBAAA,CAAA,GAAA,EAAC,SAAI,SAAA,EAAU,WAAA,EAAY,eAAW,IAAA,EACnC,QAAA,EAAA,QAAA,CAAS,IAAI,CAAA,EAChB,CAAA;AAAA,QACC,CAAA,KAAM,2BAAW,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,WAAU,eAAA,EAAgB,aAAA,EAAW,MAAC,CAAA,GAAK;AAAA,OAAA,EACrE,CAAA;AAAA,sBAEA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAAgB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,MACnC,6BAAa,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EAAkB,kBAAO,CAAA,GAAS,IAAA;AAAA,MAE9D,MAAM,QAAA,mBACL,IAAA,mBAAA,CAAA,IAAA,EAAC,SAAI,SAAA,EAAU,UAAA,EAAW,cAAW,2BAAA,EACnC,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,OAAG,QAAA,EAAA,EAAA,EAAG,CAAA;AAAA,wBACP,IAAA,mBAAA,CAAA,GAAA,EAAC,OAAE,QAAA,EAAA,GAAA,EAAC,CAAA;AAAA,wBACJ,IAAA,mBAAA,CAAA,GAAA,EAAC,OAAG,QAAA,EAAA,EAAA,EAAG;AAAA,OAAA,EACT,oBAEA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,WAAU,gBAAA,EACZ,QAAA,EAAA,CAAA,KAAM,yBAAS,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,eAAA,EAAiB,uBAAa,CAAC,CAAA,EAAE,IAAW,YAAA,CAAa,CAAC,KAAK,EAAA,EACjG,CAAA;AAAA,sBAKF,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EAMZ,QAAA,EAAA;AAAA,QAAA,cAAA,mBACC,IAAA,mBAAA,CAAA,IAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,sBAAA;AAAA,YACV,SAAS,MAAM,cAAA,CAAe,OAAA,CAAQ,IAAA,CAAK,OAAO,OAAQ,CAAA;AAAA,YAE1D,QAAA,EAAA;AAAA,8BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,kBAAA,EAAA,EAAmB,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,cACzC,cAAA,CAAe;AAAA;AAAA;AAAA,SAClB,GACE,IAAA;AAAA,wBACJ,IAAA,mBAAA,CAAA,IAAA,EAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,wBAAuB,OAAA,EAAS,MAAM,QAAA,CAAS,SAAS,CAAA,EACtF,QAAA,EAAA;AAAA,0BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,UAAA,EAAA,EAAW,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,UAAE;AAAA,SAAA,EAEtC;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA,EAEJ,CAAA;AAAA,oBAQA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EAAc,GAAA,EAAK,aAC/B,QAAA,EAAA,SAAA,mBACC,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,cAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,2BAAA;AAAA,YACV,OAAA,EAAS,MAAM,KAAK,IAAA,CAAK,MAAA,EAAO;AAAA,YAChC,YAAA,EAAW,UAAA;AAAA,YAEX,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,QAAA,EAAA,EAAS,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA,SACtB;AAAA,qDACC,MAAA,EAAA,EAAK,SAAA,EAAU,eAAA,EAAgB,aAAA,EAAW,MAAC,QAAA,EAAA,UAAA,EAE5C;AAAA,OAAA,EACF,CAAA;AAAA,sBACA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,2BAAA;AAAA,YACV,OAAA,EAAS,MAAM,KAAK,IAAA,CAAK,MAAA,EAAO;AAAA,YAChC,YAAA,EAAW,WAAA;AAAA,YACX,IAAA,EAAK,eAAA;AAAA,YAEL,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA,SACnB;AAAA,qDACC,MAAA,EAAA,EAAK,SAAA,EAAU,eAAA,EAAgB,aAAA,EAAW,MAAC,QAAA,EAAA,WAAA,EAE5C;AAAA,OAAA,EACF;AAAA,KAAA,EACF,oBAEA,IAAA,mBAAA,CAAA,IAAA,EAAA,mBAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,MAAA,mBACC,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAM,IAAA,CAAK,OAAA,GAAU,MAAA,GAAS,GAAA;AAAA,YAC9B,KAAA,EAAO,IAAA,CAAK,OAAA,GAAU,SAAA,GAAY,WAAA;AAAA,YAClC,SAAS,IAAA,CAAK,OAAA;AAAA,YACd,IAAA,EAAK,QAAA;AAAA,YACL,SAAS,MAAM,IAAA,CAAK,IAAA,CAAK,CAAC,KAAK,OAAO;AAAA;AAAA,SACxC;AAAA,wBACA,IAAA,mBAAA,CAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAM,IAAA,CAAK,QAAA,GAAW,IAAA,GAAO,KAAA;AAAA,YAC7B,KAAA,EAAO,IAAA,CAAK,QAAA,GAAW,UAAA,GAAa,QAAA;AAAA,YACpC,SAAS,IAAA,CAAK,QAAA;AAAA,YACd,IAAA,EAAK,MAAA;AAAA,YACL,OAAA,EAAS,MAAO,IAAA,CAAK,QAAA,GAAW,KAAK,KAAK,MAAA,EAAO,GAAI,KAAK,IAAA,CAAK,IAAA;AAAK;AAAA,SACtE;AAAA,wBACA,IAAA,mBAAA,CAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAM,cAAA;AAAA,YACN,KAAA,EAAM,YAAA;AAAA,YACN,OAAA,EAAS,YAAA;AAAA,YACT,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,MAAM,WAAA,CAAY,UAAU;AAAA;AAAA,SACvC;AAAA,wBACA,IAAA,mBAAA,CAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAM,OAAA;AAAA,YACN,KAAA,EAAM,SAAA;AAAA,YACN,OAAA,EAAS,UAAA;AAAA,YACT,IAAA,EAAK,QAAA;AAAA,YACL,UAAU,CAAA,KAAM,QAAA;AAAA,YAChB,OACE,CAAA,KAAM,MAAA,GACF,yCAAA,GACA,CAAA,KAAM,iBACJ,qCAAA,GACA,MAAA;AAAA,YAER,OAAA,EAAS,MAAM,WAAA,CAAY,QAAQ;AAAA;AAAA;AACrC,OAAA,EACF,CAAA,GACE,IAAA;AAAA,mDACH,KAAA,EAAA,EAAI,SAAA,EAAU,uBACb,QAAA,kBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,cAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,SAAA,EAAU,2BAAA;AAAA,YACV,OAAA,EAAS,MAAM,KAAK,IAAA,CAAK,MAAA,EAAO;AAAA,YAChC,YAAA,EAAW,QAAA;AAAA,YACX,IAAA,EAAK,eAAA;AAAA,YAEL,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,QAAA,EAAA,EAAS,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA,SACtB;AAAA,qDACC,MAAA,EAAA,EAAK,SAAA,EAAU,eAAA,EAAgB,aAAA,EAAW,MAAC,QAAA,EAAA,QAAA,EAE5C;AAAA,OAAA,EACF,CAAA,EACF,CAAA;AAAA,MAQC,UAAU,UAAA,mBACT,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8CAA6C,IAAA,EAAK,QAAA,EAAS,YAAA,EAAW,SAAA,EAClF,sBAAY,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,OAAO,CAAA,qBAC7B,IAAA,mBAAA,CAAA,IAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,QAAA;AAAA,UACV,SAAS,MAAM;AACb,YAAA,IAAA,CAAK,WAAW,GAAG,CAAA;AAKnB,YAAA,IAAI,QAAA,cAAsB,GAAG,CAAA;AAAA,UAC/B,CAAA;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,OAAG,QAAA,EAAA,GAAA,EAAI,CAAA;AAAA,YACP,OAAA,mBAAU,IAAA,mBAAA,CAAA,GAAA,EAAC,OAAA,EAAA,EAAO,QAAA,EAAA,OAAA,EAAQ,CAAA,GAAW;AAAA;AAAA,SAAA;AAAA,QAbjC;AAAA,OAeR,GACH,CAAA,GACE;AAAA,KAAA,EACN,CAAA,EAEJ;AAAA,GAAA,EACF,CAAA;AAEJ;;;AKz3BA,IAAAF,cAAAA,GAAiD,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;;;AC0B7C,IAAAC,mBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAZG,SAAS,SAAA,CAAU;AAAA,EACxB,IAAA,EAAMC,KAAAA;AAAA,EACN,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAKI;AACF,EAAA,MAAM,wBACJ,IAAA,mBAAA,CAAA,IAAA,EAAA,mBAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAA,EAAqB,aAAA,EAAW,IAAA,EAC9C,uDAACA,KAAAA,EAAA,EAAK,IAAA,EAAM,EAAA,EAAI,CAAA,EAClB,CAAA;AAAA,oBACA,IAAA,mBAAA,CAAA,IAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAA,EACb,QAAA,EAAA;AAAA,MAAA,OAAA,mBAAU,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,mBAAQ,CAAA,GAAU,IAAA;AAAA,sBACtE,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBAAA,EAAuB,QAAA,EAAA,IAAA,EAAK;AAAA,KAAA,EAC9C,CAAA;AAAA,IACC,OAAA,gDAAW,YAAA,EAAA,EAAa,IAAA,EAAM,IAAI,SAAA,EAAU,uBAAA,EAAwB,aAAA,EAAW,IAAA,EAAC,CAAA,GAAK;AAAA,GAAA,EACxF,CAAA;AAEF,EAAA,OAAO,OAAA,mBACL,IAAA,mBAAA,CAAA,GAAA,EAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,SAAA,EAAU,qCAAA,EAAsC,OAAA,EACnE,QAAA,EAAA,KAAA,EACH,CAAA,mBAEA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAiB,QAAA,EAAA,KAAA,EAAM,CAAA;AAE1C;;;ACdQ,IAAAD,mBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAjBD,SAAS,aAAA,CAAc;AAAA,EAC5B,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAII;AACF,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAME,cAAa,gBAAA,EAAiB;AACpC,EAAA,MAAM,SAAA,GAAYA,WAAAA,CAAW,OAAA,CAAQ,KAAK,CAAA;AAC1C,EAAA,MAAM,IAAA,GAAO,QAAQ,IAAA,IAAQ,SAAA;AAE7B,EAAA,qDACG,KAAA,EAAA,EAAI,SAAA,EAAU,aAAY,IAAA,EAAK,QAAA,EAAS,cAAY,IAAA,EACnD,QAAA,EAAA;AAAA,oBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,kBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,QAAA,EAAA,EAAO,MAAK,QAAA,EAAS,SAAA,EAAU,gBAAA,EAAiB,OAAA,EAAS,MAAA,EACxD,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,SAAA,EAAA,EAAU,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,MAAE;AAAA,KAAA,EAErC,CAAA,EACF,CAAA;AAAA,oBAEA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,WAAU,kBAAA,EAAmB,aAAA,EAAW,MAC3C,QAAA,EAAA,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAA,EACxB,CAAA;AAAA,wBACA,IAAA,mBAAA,CAAA,GAAA,EAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAA,IAAA,EAAK;AAAA,OAAA,EACvC,CAAA;AAAA,sBAEA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,aAAU,IAAA,EAAM,KAAA,EAAO,OAAA,EAAQ,aAAA,EAAW,MAAM,SAAA,EAAW,CAAA;AAAA,QAC3D,aAAA,mBACC,IAAA,mBAAA,CAAA,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAM,cAAc,IAAA,IAAQ,YAAA;AAAA,YAC5B,MAAM,aAAA,CAAc,KAAA;AAAA,YACpB,OAAA,EAAS,MAAM,aAAA,CAAc,OAAA,CAAQ,OAAO;AAAA;AAAA,SAC9C,GACE;AAAA,OAAA,EACN;AAAA,KAAA,EACF,CAAA;AAAA,oBAEA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,kBAAA,IAAA,mBAAA,CAAA,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,sCAAA;AAAA,QACV,SAAS,MAAM,KAAK,SAAA,CAAU,IAAA,CAAK,QAAQ,KAAK,CAAA;AAAA,QAEhD,QAAA,EAAA;AAAA,0BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,UAAE;AAAA;AAAA;AAAA,KAEjC,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;ACpEA,IAAAH,cAAAA,GAAyD,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;AAyClD,SAAS,gBAAmB,QAAA,EAAiF;AAClH,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAA,IAAI,cAAA,CAAA,QAAA,EAAuB,EAAE,CAAA;AACnD,EAAA,MAAM,CAACI,QAAAA,EAAS,UAAU,CAAA,GAAA,IAAI,yBAAS,IAAI,CAAA;AAC3C,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAA,IAAI,yBAAS,KAAK,CAAA;AACpD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAA,IAAI,yBAAS,IAAI,CAAA;AAC3C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAA,IAAI,yBAAS,KAAK,CAAA;AAExC,EAAA,MAAM,MAAA,GAAA,IAAS,uBAAO,CAAC,CAAA;AACvB,EAAA,MAAM,QAAA,GAAA,IAAW,uBAAqB,KAAK,CAAA;AAC3C,EAAA,QAAA,CAAS,OAAA,GAAU,KAAA;AACnB,EAAA,MAAM,cAAA,GAAA,IAAiB,uBAAO,KAAK,CAAA;AACnC,EAAA,MAAM,UAAA,GAAA,IAAa,uBAAO,IAAI,CAAA;AAE9B,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,MAAM,GAAA,GAAM,EAAE,MAAA,CAAO,OAAA;AACrB,IAAA,cAAA,CAAe,OAAA,GAAU,KAAA;AACzB,IAAA,UAAA,CAAW,OAAA,GAAU,IAAA;AACrB,IAAA,QAAA,CAAS,EAAE,CAAA;AACX,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAA,QAAA,CAAS,KAAK,CAAA;AACd,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAA,KAAK,QAAA,CAAS,CAAC,CAAA,CACZ,IAAA,CAAK,CAAC,IAAA,KAAS;AACd,MAAA,IAAI,GAAA,KAAQ,OAAO,OAAA,EAAS;AAC5B,MAAA,QAAA,CAAS,KAAK,KAAK,CAAA;AACnB,MAAA,UAAA,CAAW,KAAK,OAAO,CAAA;AACvB,MAAA,UAAA,CAAW,UAAU,IAAA,CAAK,OAAA;AAAA,IAC5B,CAAC,CAAA,CACA,KAAA,CAAM,MAAM;AACX,MAAA,IAAI,GAAA,KAAQ,OAAO,OAAA,EAAS;AAC5B,MAAA,QAAA,CAAS,EAAE,CAAA;AACX,MAAA,UAAA,CAAW,KAAK,CAAA;AAChB,MAAA,UAAA,CAAW,OAAA,GAAU,KAAA;AACrB,MAAA,QAAA,CAAS,IAAI,CAAA;AAAA,IACf,CAAC,CAAA,CACA,OAAA,CAAQ,MAAM;AACb,MAAA,IAAI,GAAA,KAAQ,MAAA,CAAO,OAAA,EAAS,UAAA,CAAW,KAAK,CAAA;AAAA,IAC9C,CAAC,CAAA;AAAA,EACL,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,QAAA,GAAA,IAAW,4BAAY,MAAM;AACjC,IAAA,IAAI,cAAA,CAAe,OAAA,IAAW,CAAC,UAAA,CAAW,OAAA,EAAS;AACnD,IAAA,MAAM,MAAM,MAAA,CAAO,OAAA;AACnB,IAAA,cAAA,CAAe,OAAA,GAAU,IAAA;AACzB,IAAA,cAAA,CAAe,IAAI,CAAA;AACnB,IAAA,KAAK,SAAS,QAAA,CAAS,OAAA,CAAQ,MAAM,CAAA,CAClC,IAAA,CAAK,CAAC,IAAA,KAAS;AACd,MAAA,IAAI,GAAA,KAAQ,OAAO,OAAA,EAAS;AAC5B,MAAA,QAAA,CAAS,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,IAAA,CAAK,KAAK,CAAC,CAAA;AAC3C,MAAA,UAAA,CAAW,KAAK,OAAO,CAAA;AACvB,MAAA,UAAA,CAAW,UAAU,IAAA,CAAK,OAAA;AAAA,IAC5B,CAAC,CAAA,CACA,KAAA,CAAM,MAAM;AAAA,IAKb,CAAC,CAAA,CACA,OAAA,CAAQ,MAAM;AACb,MAAA,cAAA,CAAe,OAAA,GAAU,KAAA;AACzB,MAAA,IAAI,GAAA,KAAQ,MAAA,CAAO,OAAA,EAAS,cAAA,CAAe,KAAK,CAAA;AAAA,IAClD,CAAC,CAAA;AAAA,EACL,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAA,IAAI,yBAA6B,IAAI,CAAA;AACvE,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAA,IAAI,yBAA6B,IAAI,CAAA;AAGrE,EAAA,MAAM,WAAA,GAAA,IAAc,uBAAO,QAAQ,CAAA;AACnC,EAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AAEtB,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,CAAC,WAAA,IAAe,CAAC,UAAA,EAAY;AACjC,IAAA,MAAM,WAAW,IAAI,oBAAA;AAAA,MACnB,CAAC,CAAC,KAAK,CAAA,KAAM;AACX,QAAA,IAAI,KAAA,EAAO,cAAA,EAAgB,WAAA,CAAY,OAAA,EAAQ;AAAA,MACjD,CAAA;AAAA,MACA,EAAE,IAAA,EAAM,WAAA,EAAa,UAAA,EAAY,OAAA;AAAQ,KAC3C;AACA,IAAA,QAAA,CAAS,QAAQ,UAAU,CAAA;AAC3B,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EACnC,CAAA,EAAG,CAAC,WAAA,EAAa,UAAU,CAAC,CAAA;AAE5B,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,OAAA,EAAAA,QAAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA,EAAc,cAAA;AAAA,IACd,WAAA,EAAa;AAAA,GACf;AACF;;;AHnEQ,IAAAH,mBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAzDR,IAAM,IAAA,GAAO,EAAA;AAQN,SAAS,WAAA,CAAY;AAAA,EAC1B,MAAA;AAAA,EACA;AACF,CAAA,EAGI;AACF,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAA,IAAI,yBAAS,EAAE,CAAA;AACvC,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAA,IAAI,yBAAS,EAAE,CAAA;AACzD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAA,IAAI,yBAAyB,IAAI,CAAA;AAE7D,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,MAAM,IAAI,UAAA,CAAW,MAAM,kBAAA,CAAmB,MAAM,GAAG,GAAG,CAAA;AAC1D,IAAA,OAAO,MAAM,aAAa,CAAC,CAAA;AAAA,EAC7B,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAKX,EAAA,MAAM,QAAA,GAAA,IAAW,cAAA,CAAA,WAAA;AAAA,IACf,CAAC,IAAA,KACC,MAAA,CAAO,EAAE,MAAA,EAAQ,eAAA,EAAiB,IAAA,EAAM,KAAA,EAAO,IAAA,EAAM,CAAA,CAAE,IAAA,CAAK,CAAC,IAAA,MAAU;AAAA,MACrE,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,OAAA,EAAS,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,SAAS,IAAA,CAAK;AAAA,KAC3C,CAAE,CAAA;AAAA,IACJ,CAAC,QAAQ,eAAe;AAAA,GAC1B;AACA,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IACA,OAAA,EAAS,WAAA;AAAA,IACT,WAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF,GAAI,gBAAgB,QAAQ,CAAA;AAI5B,EAAA,MAAMG,QAAAA,GAAU,eAAe,MAAA,KAAW,eAAA;AAE1C,EAAA,uBACE,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,SAAI,SAAA,EAAU,cAAA,EAMb,QAAA,kBAAA,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,iBAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,UAAO,SAAA,EAAU,gBAAA,EAAiB,IAAA,EAAM,EAAA,EAAI,eAAW,IAAA,EAAC,CAAA;AAAA,sBACzD,IAAA,mBAAA,CAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,2BAAA;AAAA,UACV,KAAA,EAAO,MAAA;AAAA,UACP,UAAU,CAAC,CAAA,KAAM,SAAA,CAAU,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,UACzC,WAAA,EAAY,kBAAA;AAAA,UACZ,YAAA,EAAW;AAAA;AAAA,OACb;AAAA,MACC,MAAA,mBACC,IAAA,mBAAA,CAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,iBAAA;AAAA,UACV,OAAA,EAAS,MAAM,SAAA,CAAU,EAAE,CAAA;AAAA,UAC3B,YAAA,EAAW,qBAAA;AAAA,UAEX,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,CAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA,OACf,GACE;AAAA,KAAA,EACN,CAAA,EACF,CAAA;AAAA,iDAEC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAAU,GAAA,EAAK,cAC3B,QAAA,EAAAA,QAAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAKC,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAW,MAAK,QAAA,EAC7B,QAAA,EAAA;AAAA,wBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,gBAAQ,SAAA,EAAU,kBAAA,EAAmB,IAAA,EAAM,EAAA,EAAI,eAAW,IAAA,EAAC,CAAA;AAAA,wBAC5D,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAiB,QAAA,EAAA,gBAAA,EAAS;AAAA,OAAA,EAC5C;AAAA,QACE,MAAM,MAAA,KAAW,CAAA,mBACnB,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,UAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,WAAU,eAAA,EAAgB,aAAA,EAAW,MACzC,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,CAAA,EACnB,CAAA;AAAA,mDACC,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAA,MAAA,GAAS,mBAAmB,qBAAA,EAAsB,CAAA;AAAA,sBACjF,IAAA,mBAAA,CAAA,GAAA,EAAC,OAAE,SAAA,EAAU,cAAA,EACV,mBAAS,CAAA,sBAAA,EAAsB,MAAM,UAAO,sDAAA,EAC/C;AAAA,KAAA,EACF,oBAEA,IAAA,mBAAA,CAAA,IAAA,EAAA,mBAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,KAAA,CAAM,IAAI,CAAC,CAAA;AAAA;AAAA;AAAA,wBAGV,IAAA,mBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAe,SAAA,EAAU,SAAA,EACxB,QAAA,EAAA;AAAA,0BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,gBAAA,EAAiB,eAAW,IAAA,EACzC,QAAA,EAAA,QAAA,CAAS,EAAE,IAAI,CAAA,KAAM,GAAA,mBAAM,IAAA,mBAAA,CAAA,GAAA,EAAC,QAAK,IAAA,EAAM,EAAA,EAAI,IAAK,QAAA,CAAS,CAAA,CAAE,IAAI,CAAA,EAClE,CAAA;AAAA,0BAIA,IAAA,mBAAA,CAAA,IAAA,EAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,gBAAe,OAAA,EAAS,MAAM,WAAA,CAAY,CAAC,CAAA,EACzE,QAAA,EAAA;AAAA,4BAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,cAAA,EAAgB,QAAA,EAAA,CAAA,CAAE,IAAA,IAAQ,EAAE,KAAA,EAAM,CAAA;AAAA,4BAClD,IAAA,mBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,YAAE,KAAA,EAAM;AAAA,WAAA,EACzC,CAAA;AAAA,0BACA,IAAA,mBAAA,CAAA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,SAAA,EAAU,gBAAA;AAAA,cACV,WAAA,EAAU,QAAA;AAAA,cACV,YAAA,EAAY,CAAA,SAAA,EAAY,CAAA,CAAE,IAAA,IAAQ,EAAE,KAAK,CAAA,CAAA;AAAA,cACzC,SAAS,MAAM,KAAK,SAAA,CAAU,IAAA,CAAK,EAAE,KAAK,CAAA;AAAA,cAE1C,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA;AACnB,SAAA,EAAA,EAnBQ,EAAE,EAoBZ;AAAA,OACD,CAAA;AAAA,MAGA,OAAA,gDAAW,KAAA,EAAA,EAAI,GAAA,EAAK,aAAa,SAAA,EAAU,kBAAA,EAAmB,aAAA,EAAW,IAAA,EAAC,CAAA,GAAK,IAAA;AAAA,MAC/E,8BACC,IAAA,mBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,WAAU,sBAAA,EAAuB,IAAA,EAAK,UAAS,YAAA,EAAW,2BAAA,EAC7D,QAAA,kBAAA,IAAA,mBAAA,CAAA,GAAA,EAAC,YAAA,EAAA,EAAQ,WAAU,8BAAA,EAA+B,IAAA,EAAM,IAAI,aAAA,EAAW,IAAA,EAAC,GAC1E,CAAA,GACE;AAAA,KAAA,EACN,CAAA,EAEJ,CAAA;AAAA,IAIC,QAAA,mBACC,IAAA,mBAAA,CAAA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,QAAA;AAAA,QACT,MAAA,EAAQ,MAAM,WAAA,CAAY,IAAI,CAAA;AAAA,QAC7B,GAAI,aAAA,GAAgB,EAAE,aAAA,KAAkB;AAAC;AAAA,KAC5C,GACE;AAAA,GAAA,EACN,CAAA;AAEJ;;;AI9JA,IAAAJ,cAAAA,GAAyD,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;;;ACAzD,IAAAA,cAAAA,GAAoC,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;;;AC+BT,IAAAC,mBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AA3BpB,IAAM,cAAA,GAA8C;AAAA,EACzD,WAAA,EAAa,eAAA;AAAA,EACb,IAAA,EAAM,SAAA;AAAA,EACN,SAAA,EAAW,WAAA;AAAA,EACX,MAAA,EAAQ,SAAA;AAAA,EACR,WAAA,EAAa;AACf,CAAA;AAIO,SAAS,UAAU,EAAA,EAAkB;AAC1C,EAAA,OAAO,EAAA,CAAG,mBAAmB,OAAA,EAAS,EAAE,MAAM,SAAA,EAAW,MAAA,EAAQ,WAAW,CAAA;AAC9E;AAIO,SAAS,cAAc,EAAA,EAAkB;AAC9C,EAAA,OAAO,EAAA,CAAG,eAAe,OAAA,EAAS;AAAA,IAChC,GAAA,EAAK,SAAA;AAAA,IACL,KAAA,EAAO,MAAA;AAAA,IACP,IAAA,EAAM,SAAA;AAAA,IACN,IAAA,EAAM,SAAA;AAAA,IACN,MAAA,EAAQ;AAAA,GACT,CAAA;AACH;AAEO,SAASC,KAAAA,CAAK,EAAE,KAAA,EAAM,EAA0C;AACrE,EAAA,IAAI,MAAM,MAAA,EAAQ,uBAAO,IAAA,mBAAA,CAAA,GAAA,EAAC,WAAA,EAAA,EAAY,MAAM,EAAA,EAAI,CAAA;AAChD,EAAA,OAAO,KAAA,CAAM,SAAA,KAAc,SAAA,mBAAY,IAAA,mBAAA,CAAA,GAAA,EAAC,aAAA,EAAA,EAAc,IAAA,EAAM,EAAA,EAAI,CAAA,mBAAK,IAAA,mBAAA,CAAA,GAAA,EAAC,aAAA,EAAA,EAAc,IAAA,EAAM,EAAA,EAAI,CAAA;AAChG;AAQO,SAAS,WAAW,KAAA,EAA4C;AACrE,EAAA,IAAI,KAAA,CAAM,QAAQ,OAAO,WAAA;AACzB,EAAA,OAAO,KAAA,CAAM,SAAA,KAAc,SAAA,GAAY,aAAA,GAAgB,aAAA;AACzD;AAQO,SAAS,WAAW,KAAA,EAAuD;AAChF,EAAA,IAAI,KAAA,CAAM,QAAQ,OAAO,QAAA;AACzB,EAAA,OAAO,KAAA,CAAM,SAAA,KAAc,SAAA,GAAY,QAAA,GAAW,MAAA;AACpD;;;ADhCqB,IAAAD,oBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AARrB,SAAS,YAAA,CAAa,EAAE,QAAA,EAAS,EAAmD;AAClF,EAAA,uBACE,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,oBAAA,EACb,mBAAS,GAAA,CAAI,CAAC,GAAG,CAAA,KAAM;AACtB,IAAA,MAAM,MAAA,GAAS,CAAA,KAAM,QAAA,CAAS,MAAA,GAAS,CAAA;AACvC,IAAA,MAAM,KAAA,GAAQ,CAAA,CAAE,IAAA,IAAQ,CAAA,KAAA,EAAQ,EAAE,SAAS,CAAA,CAAA;AAC3C,IAAA,uBACE,IAAA,oBAAA,CAAA,IAAA,EAAC,MAAA,EAAA,EAAiC,SAAA,EAAU,uBAAA,EACzC,QAAA,EAAA;AAAA,MAAA,CAAA,GAAI,CAAA,iDAAK,UAAA,EAAA,EAAW,IAAA,EAAM,IAAI,SAAA,EAAU,yBAAA,EAA0B,aAAA,EAAW,IAAA,EAAC,CAAA,GAAK,IAAA;AAAA,qDACnF,MAAA,EAAA,EAAK,SAAA,EAAU,0BAAyB,WAAA,EAAW,MAAA,GAAS,WAAW,MAAA,EACrE,QAAA,EAAA;AAAA,QAAA,KAAA;AAAA,QACA,CAAA,CAAE,IAAA,mBAAO,IAAA,oBAAA,CAAA,IAAA,EAAC,MAAA,EAAA,EAAK,WAAU,uBAAA,EAAwB,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UAAG,CAAA,CAAE;AAAA,SAAA,EAAU,CAAA,GAAU;AAAA,OAAA,EAC7E;AAAA,KAAA,EAAA,EALS,CAAA,EAAG,CAAA,CAAE,SAAS,CAAA,CAAA,EAAI,CAAC,CAAA,CAM9B,CAAA;AAAA,EAEJ,CAAC,CAAA,EACH,CAAA;AAEJ;AAWO,SAAS,aAAA,CAAc;AAAA,EAC5B,KAAA;AAAA,EACA;AACF,CAAA,EAGI;AACF,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAME,cAAa,gBAAA,EAAiB;AACpC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAA,IAAI,yBAA4B,IAAI,CAAA;AAC5D,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAA,IAAI,yBAAS,KAAK,CAAA;AAIxD,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,MAAM,OAAO,KAAA,CAAM,UAAA;AACnB,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,IAAI,SAAA,GAAY,KAAA;AAChB,IAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,IAAA,KAAK,IAAA,EAAK,CACP,IAAA,CAAK,CAAC,CAAA,KAAM,CAAC,SAAA,IAAa,SAAA,CAAU,CAAC,CAAC,CAAA,CACtC,KAAA,CAAM,MAAM;AAAA,IAGb,CAAC,EACA,OAAA,CAAQ,MAAM,CAAC,SAAA,IAAa,gBAAA,CAAiB,KAAK,CAAC,CAAA;AACtD,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,GAAY,IAAA;AAAA,IACd,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,SAAA,GAAYA,WAAAA,CAAW,KAAA,CAAM,MAAM,CAAA;AACzC,EAAA,MAAM,IAAA,GAAO,MAAM,IAAA,IAAQ,SAAA;AAC3B,EAAA,MAAM,SAAA,GAAY,MAAA,EAAQ,SAAA,IAAa,KAAA,CAAM,SAAA;AAC7C,EAAA,MAAM,aAAA,GAAgB,MAAA,EAAQ,aAAA,IAAiB,EAAC;AAChD,EAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,QAAA,IAAY,aAAA,IAAiB,cAAc,MAAA,KAAW,CAAA;AACrF,EAAA,MAAM,UAAA,GAAa,MAAM,MAAA,GAAU,KAAA,CAAM,UAAU,cAAA,CAAe,KAAA,CAAM,OAAO,CAAA,GAAI,SAAA,GAAa,YAAA;AAChG,EAAA,MAAM,YAAA,GACJ,UAAU,MAAA,GAAS,CAAA,GAAI,uBAAuB,KAAA,CAAM,SAAA,KAAc,aAAa,eAAA,GAAkB,cAAA;AAEnG,EAAA,sDACG,KAAA,EAAA,EAAI,SAAA,EAAU,aAAY,IAAA,EAAK,QAAA,EAAS,cAAY,IAAA,EACnD,QAAA,EAAA;AAAA,oBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,kBAAA,IAAA,oBAAA,CAAA,IAAA,EAAC,QAAA,EAAA,EAAO,MAAK,QAAA,EAAS,SAAA,EAAU,gBAAA,EAAiB,OAAA,EAAS,MAAA,EACxD,QAAA,EAAA;AAAA,sBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,SAAA,EAAA,EAAU,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,MAAE;AAAA,KAAA,EAErC,CAAA,EACF,CAAA;AAAA,oBAEA,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAmB,WAAA,EAAW,UAAA,CAAW,KAAK,CAAA,EAAG,aAAA,EAAW,IAAA,EAC1E,QAAA,kBAAA,IAAA,oBAAA,CAAA,GAAA,EAACD,KAAAA,EAAA,EAAK,OAAc,CAAA,EACtB,CAAA;AAAA,wBACA,IAAA,oBAAA,CAAA,GAAA,EAAC,QAAG,SAAA,EAAU,gBAAA,EAAiB,aAAW,KAAA,CAAM,MAAA,GAAS,QAAA,GAAW,MAAA,EACjE,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,wBACA,IAAA,oBAAA,CAAA,IAAA,EAAC,GAAA,EAAA,EAAE,SAAA,EAAU,gBAAA,EACV,QAAA,EAAA;AAAA,UAAA,UAAA;AAAA,UAAW,QAAA;AAAA,UAAI,SAAA,CAAU,MAAM,EAAE;AAAA,SAAA,EACpC;AAAA,OAAA,EACF,CAAA;AAAA,MAEC,KAAA,CAAM,QAAA,mBACL,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBACZ,QAAA,EAAA,gBAAA,mBACC,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,gBAAQ,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,6BAAA,EAA8B,eAAW,IAAA,EAAC,CAAA;AAAA,QAAE;AAAA,OAAA,EAE3E,CAAA,GACE,aAAA,CAAc,MAAA,GAAS,CAAA,mBACzB,IAAA,oBAAA,CAAA,IAAA,EAAA,oBAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,OAAE,SAAA,EAAU,2BAAA,EACV,wBAAc,MAAA,KAAW,CAAA,GAAI,iBAAc,aAAA,EAC9C,CAAA;AAAA,QACC,aAAA,CAAc,GAAA,CAAI,CAAC,GAAA,mDACjB,OAAA,EAAA,EAAgB,QAAA,EAAQ,IAAA,EAAC,GAAA,EAAK,KAAK,SAAA,EAAU,iBAAA,EAAkB,OAAA,EAAQ,UAAA,EAAA,EAA5D,GAAuE,CACpF;AAAA,OAAA,EACH,CAAA,mBAEA,IAAA,oBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6DAAA,EAA8D,QAAA,EAAA,8EAAA,EAE3E,CAAA,EAEJ,CAAA,mBAEA,IAAA,oBAAA,CAAA,IAAA,EAAC,GAAA,EAAA,EAAE,SAAA,EAAU,4BAAA,EACX,QAAA,EAAA;AAAA,wBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAI,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,QAAE;AAAA,OAAA,EAE/B,CAAA;AAAA,sBAGF,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,SAAA,EAAA,EAAU,MAAM,UAAA,CAAW,KAAK,GAAG,OAAA,EAAQ,QAAA,EAAS,MAAM,UAAA,EAAY,CAAA;AAAA,wBACvE,IAAA,oBAAA,CAAA,GAAA,EAAC,SAAA,EAAA,EAAU,IAAA,EAAM,aAAA,EAAe,OAAA,EAAQ,gBAAe,IAAA,EAAM,aAAA,CAAc,KAAA,CAAM,EAAE,CAAA,EAAG,CAAA;AAAA,QACrF,KAAA,CAAM,WAAA,GAAc,CAAA,mBACnB,IAAA,oBAAA,CAAA,GAAA,EAAC,aAAU,IAAA,EAAM,KAAA,EAAO,OAAA,EAAQ,aAAA,EAAW,IAAA,EAAM,cAAA,CAAe,KAAA,CAAM,WAAW,GAAG,CAAA,GAClF,IAAA;AAAA,sDACH,SAAA,EAAA,EAAU,IAAA,EAAM,OAAO,OAAA,EAAQ,WAAA,EAAS,MAAM,SAAA,EAAW,CAAA;AAAA,QACzD,SAAA,CAAU,MAAA,GAAS,CAAA,mBAClB,IAAA,oBAAA,CAAA,GAAA,EAAC,aAAU,IAAA,EAAM,IAAA,EAAM,OAAA,EAAS,YAAA,EAAc,sBAAM,IAAA,oBAAA,CAAA,GAAA,EAAC,YAAA,EAAA,EAAa,QAAA,EAAU,SAAA,EAAW,GAAI,CAAA,GACzF,IAAA;AAAA,QACH,MAAM,SAAA,KAAc,SAAA,IAAa,KAAA,CAAM,GAAA,iDACrC,SAAA,EAAA,EAAU,IAAA,EAAM,IAAA,EAAM,OAAA,EAAQ,2BAAuB,IAAA,EAAMC,WAAAA,CAAW,KAAA,CAAM,GAAG,GAAG,CAAA,GACjF;AAAA,OAAA,EACN;AAAA,KAAA,EACF,CAAA;AAAA,oBAEA,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,kBAAA,IAAA,oBAAA,CAAA,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,sCAAA;AAAA,QACV,SAAS,MAAM,KAAK,SAAA,CAAU,IAAA,CAAK,MAAM,MAAM,CAAA;AAAA,QAE/C,QAAA,EAAA;AAAA,0BAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,UAAE;AAAA;AAAA;AAAA,KAEjC,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;ADzEM,IAAAF,oBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAhFN,IAAMI,KAAAA,GAAO,EAAA;AAGb,SAAS,WAAW,EAAA,EAAkB;AACpC,EAAA,OAAO,IAAI,IAAA,CAAK,EAAA,CAAG,WAAA,EAAY,EAAG,EAAA,CAAG,QAAA,EAAS,EAAG,EAAA,CAAG,OAAA,EAAS,CAAA,CAAE,OAAA,EAAQ;AACzE;AAEA,SAAS,QAAA,CAAS,IAAU,GAAA,EAAqB;AAC/C,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,KAAA,CAAA,CAAO,UAAA,CAAW,IAAI,IAAA,CAAK,GAAG,CAAC,CAAA,GAAI,UAAA,CAAW,EAAE,CAAA,IAAK,KAAU,CAAA;AACrF,EAAA,IAAI,QAAA,KAAa,GAAG,OAAO,KAAA;AAC3B,EAAA,IAAI,QAAA,KAAa,GAAG,OAAO,MAAA;AAC3B,EAAA,OAAO,EAAA,CAAG,mBAAmB,OAAA,EAAS,EAAE,KAAK,SAAA,EAAW,KAAA,EAAO,QAAQ,CAAA;AACzE;AAGA,SAAS,UAAA,CACP,SACA,GAAA,EACuF;AACvF,EAAA,MAAM,SAA6D,EAAC;AACpE,EAAA,KAAA,MAAW,KAAK,OAAA,EAAS;AACvB,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,CAAA,CAAE,EAAA,EAAI,GAAG,CAAA;AAChC,IAAA,MAAM,IAAA,GAAO,MAAA,CAAO,EAAA,CAAG,EAAE,CAAA;AACzB,IAAA,IAAI,QAAQ,IAAA,CAAK,KAAA,KAAU,OAAO,IAAA,CAAK,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,SAC7C,MAAA,CAAO,KAAK,EAAE,KAAA,EAAO,MAAM,CAAC,CAAC,GAAG,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,MAAA;AACT;AASA,SAAS,YAAA,CAAa;AAAA,EACpB,KAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAKI;AACF,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAA,IAAI,yBAAS,KAAK,CAAA;AACtC,EAAA,MAAM,OAAA,GAAA,IAAU,uBAAuB,IAAI,CAAA;AAK3C,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,OAAA,EAAS,WAAA,EAAY,IAAK,QAAA;AAC/C,IAAA,MAAM,MAAA,GAAS,CAAC,CAAA,KAAa;AAC3B,MAAA,IAAI,CAAC,QAAQ,OAAA,EAAS,QAAA,CAAS,EAAE,MAAc,CAAA,UAAW,KAAK,CAAA;AAAA,IACjE,CAAA;AACA,IAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,KAAqB;AAClC,MAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,QAAA,EAAU,OAAA,CAAQ,KAAK,CAAA;AAAA,IACvC,CAAA;AACA,IAAA,IAAA,CAAK,gBAAA,CAAiB,eAAe,MAAM,CAAA;AAC3C,IAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,KAAK,CAAA;AAC1C,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,mBAAA,CAAoB,eAAe,MAAM,CAAA;AAC9C,MAAA,QAAA,CAAS,mBAAA,CAAoB,WAAW,KAAK,CAAA;AAAA,IAC/C,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,OAAA,GAAyE;AAAA,IAC7E,EAAE,CAAA,EAAG,EAAA,EAAI,KAAA,EAAO,oBAAA,EAAqB;AAAA,IACrC,GAAI,SAAA,CAAU,EAAA,GAAK,CAAC,EAAE,CAAA,EAAG,UAAU,EAAA,CAAG,MAAA,EAAQ,KAAA,EAAO,CAAA,kBAAA,EAAkB,UAAU,EAAA,CAAG,IAAA,IAAQ,IAAI,CAAA,CAAA,EAAI,IAAI,EAAC;AAAA,IACzG,GAAG,SAAA,CAAU,MAAA,CACV,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,SAAA,CAAU,EAAA,IAAM,CAAA,CAAE,MAAA,KAAW,SAAA,CAAU,EAAA,CAAG,MAAM,CAAA,CAC/D,GAAA,CAAI,CAAC,CAAA,MAAO,EAAE,CAAA,EAAG,CAAA,CAAE,MAAA,EAAQ,KAAA,EAAO,CAAA,CAAE,IAAA,IAAQ,YAAA,EAAa,CAAE;AAAA,GAChE;AACA,EAAA,MAAM,KAAA,GAAQ,QAAQ,IAAA,CAAK,CAAC,MAAM,CAAA,CAAE,CAAA,KAAM,KAAK,CAAA,EAAG,KAAA,IAAS,oBAAA;AAE3D,EAAA,uBACE,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EAAmB,KAAK,OAAA,EACrC,QAAA,EAAA;AAAA,oBAAA,IAAA,oBAAA,CAAA,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAA,EAAU,uBAAA;AAAA,QACV,SAAS,MAAM,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,QAChC,eAAA,EAAc,SAAA;AAAA,QACd,eAAA,EAAe,IAAA;AAAA,QAEf,QAAA,EAAA;AAAA,0BAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,0BAC7B,IAAA,oBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EAA0B,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,0BAChD,IAAA,oBAAA,CAAA,GAAA,EAAC,eAAY,IAAA,EAAM,EAAA,EAAI,WAAU,wBAAA,EAAyB,WAAA,EAAW,IAAA,EAAM,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA;AAAA,KACzF;AAAA,IACC,IAAA,mBACC,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EAAuB,MAAK,SAAA,EACxC,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAA,qBACZ,IAAA,oBAAA,CAAA,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QAEC,IAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,eAAA,EAAe,IAAI,CAAA,KAAM,KAAA;AAAA,QACzB,SAAA,EAAU,uBAAA;AAAA,QACV,SAAS,MAAM;AACb,UAAA,QAAA,CAAS,IAAI,CAAC,CAAA;AACd,UAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,QACf,CAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAA,GAAA,CAAI,KAAA,EAAM,CAAA;AAAA,0BACnD,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,wBAAA,EAAyB,SAAA,EAAS,GAAA,CAAI,CAAA,KAAM,KAAA,EAAO,aAAA,EAAW,IAAA,EAAC;AAAA;AAAA,OAAA;AAAA,MAXrF,IAAI,CAAA,IAAK;AAAA,KAajB,GACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ;AAcO,SAAS,UAAA,CAAW,EAAE,MAAA,EAAO,EAAwC;AAC1E,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAMF,cAAa,gBAAA,EAAiB;AACpC,EAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAA,IAAI,yBAAuB,KAAK,CAAA;AACxD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAA,IAAI,yBAAS,EAAE,CAAA;AACzC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAA,IAAI,yBAAiC,IAAI,CAAA;AACvE,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAA,IAAI,yBAAkC,IAAI,CAAA;AAKtE,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,MAAM,UAAA,GAAa,UAAU,OAAA,EAAS,UAAA;AACtC,IAAA,IAAI,CAAC,UAAA,EAAY;AACjB,IAAA,IAAI,SAAA,GAAY,KAAA;AAChB,IAAA,KAAK,UAAA,EAAW,CACb,IAAA,CAAK,CAAC,CAAA,KAAM,CAAC,SAAA,IAAa,YAAA,CAAa,CAAC,CAAC,CAAA,CACzC,KAAA,CAAM,MAAM;AAAA,IAAC,CAAC,CAAA;AACjB,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,GAAY,IAAA;AAAA,IACd,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAQd,EAAA,MAAM,QAAA,GAAA,IAAW,cAAA,CAAA,WAAA;AAAA,IACf,CAAC,SACC,MAAA,CAAO;AAAA,MACL,IAAA;AAAA,MACA,KAAA,EAAOE,KAAAA;AAAA,MACP,QAAQ,MAAA,KAAW,QAAA;AAAA,MACnB,GAAI,OAAA,GAAU,EAAE,MAAA,EAAQ,OAAA,KAAY;AAAC,KACtC,CAAA,CAAE,IAAA,CAAK,CAAC,IAAA,MAAU,EAAE,KAAA,EAAO,IAAA,EAAM,OAAA,EAAS,IAAA,CAAK,MAAA,KAAWA,KAAAA,EAAK,CAAE,CAAA;AAAA,IACpE,CAAC,MAAA,EAAQ,MAAA,EAAQ,OAAO;AAAA,GAC1B;AACA,EAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAS,OAAA,EAAAD,QAAAA,EAAS,WAAA,EAAa,OAAA,EAAS,YAAA,EAAc,WAAA,EAAY,GAAI,eAAA,CAAgB,QAAQ,CAAA;AAC7G,EAAA,MAAM,MAAA,GAAS,UAAA,CAAW,OAAA,EAAS,GAAG,CAAA;AAEtC,EAAA,uBACE,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,cAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EAAe,IAAA,EAAK,SAAA,EAAU,YAAA,EAAW,oBAAA,EACpD,QAAA,EAAA,CAAC,KAAA,EAAO,QAAQ,CAAA,CAA8C,GAAA,CAAI,CAAC,GAAA,qBACnE,IAAA,oBAAA,CAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UAEC,IAAA,EAAK,QAAA;AAAA,UACL,IAAA,EAAK,KAAA;AAAA,UACL,iBAAe,MAAA,KAAW,GAAA;AAAA,UAC1B,SAAA,EAAU,kBAAA;AAAA,UACV,OAAA,EAAS,MAAM,SAAA,CAAU,GAAG,CAAA;AAAA,UAE3B,QAAA,EAAA,GAAA,KAAQ,QAAQ,OAAA,GAAU;AAAA,SAAA;AAAA,QAPtB;AAAA,OASR,CAAA,EACH,CAAA;AAAA,MACC,SAAA,iDAAa,YAAA,EAAA,EAAa,KAAA,EAAO,SAAS,SAAA,EAAsB,QAAA,EAAU,YAAY,CAAA,GAAK;AAAA,KAAA,EAC9F,CAAA;AAAA,oBAEA,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAAU,KAAK,YAAA,EAC3B,QAAA,EAAA;AAAA,MAAAA,QAAAA,oBAAW,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAW,QAAA,EAAA,gBAAA,EAAS,CAAA;AAAA,MAC9C,CAACA,QAAAA,IAAW,OAAA,CAAQ,MAAA,KAAW,CAAA,oBAC9B,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EACZ,QAAA,EAAA,MAAA,KAAW,QAAA,GAAW,uBAAA,GAA0B,wBAAA,EACnD,CAAA;AAAA,MAED,CAACA,QAAAA,IACA,MAAA,CAAO,IAAI,CAAC,KAAA,oDACT,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAA,KAAA,CAAM,KAAA,EAAM,CAAA;AAAA,QAC5C,KAAA,CAAM,KAAK,GAAA,CAAI,CAAC,sBACf,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAe,WAAU,SAAA,EACxB,QAAA,EAAA;AAAA,0BAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAiB,WAAA,EAAW,WAAW,CAAC,CAAA,EAAG,aAAA,EAAW,IAAA,EACpE,QAAA,kBAAA,IAAA,oBAAA,CAAA,GAAA,EAACF,KAAAA,EAAA,EAAK,KAAA,EAAO,GAAG,CAAA,EAClB,CAAA;AAAA,0BAIA,IAAA,oBAAA,CAAA,IAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,SAAA,EAAU,cAAA;AAAA,cACV,OAAA,EAAS,MAAM,WAAA,CAAY,CAAC,CAAA;AAAA,cAE5B,QAAA,EAAA;AAAA,gCAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAA,EAAe,WAAA,EAAW,CAAA,CAAE,MAAA,GAAS,QAAA,GAAW,MAAA,EAC7D,QAAA,EAAA,CAAA,CAAE,IAAA,IAAQC,WAAAA,CAAW,CAAA,CAAE,MAAM,CAAA,EAChC,CAAA;AAAA,gCACA,IAAA,oBAAA,CAAA,IAAA,EAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EACd,QAAA,EAAA;AAAA,kCAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,cAAA,EAAgB,QAAA,EAAA,SAAA,CAAU,CAAA,CAAE,EAAE,CAAA,EAAE,CAAA;AAAA,kBAC/C,CAAA,CAAE,MAAA,mBACD,IAAA,oBAAA,CAAA,IAAA,EAAC,MAAA,EAAA,EAAK,WAAU,qBAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,oBAAI,OAAA;AAAA,oBACF,CAAA,CAAE,OAAA,GAAU,cAAA,CAAe,CAAA,CAAE,OAAO,CAAA,GAAI;AAAA,mBAAA,EAC7C,CAAA,GAEA,EAAE,WAAA,GAAc,CAAA,IAAK,SAAM,cAAA,CAAe,CAAA,CAAE,WAAW,CAAC,CAAA,CAAA;AAAA,kBAIzD,CAAA,CAAE,QAAA,mBAAW,IAAA,oBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAI,IAAA,EAAM,IAAI,SAAA,EAAU,iBAAA,EAAkB,YAAA,EAAW,SAAA,EAAU,CAAA,GAAK;AAAA,iBAAA,EACrF;AAAA;AAAA;AAAA,WACF;AAAA,0BACA,IAAA,oBAAA,CAAA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,SAAA,EAAU,gBAAA;AAAA,cACV,WAAA,EAAU,QAAA;AAAA,cACV,YAAA,EAAY,CAAA,SAAA,EAAY,CAAA,CAAE,IAAA,IAAQ,EAAE,MAAM,CAAA,CAAA;AAAA,cAC1C,SAAS,MAAM,KAAK,SAAA,CAAU,IAAA,CAAK,EAAE,MAAM,CAAA;AAAA,cAE3C,QAAA,kBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA;AACnB,SAAA,EAAA,EAtCQ,CAAA,CAAE,EAuCZ,CACD;AAAA,OAAA,EAAA,EA3CO,KAAA,CAAM,KA4ChB,CACD,CAAA;AAAA,MACF,CAACC,QAAAA,IAAW,OAAA,mBAAU,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,GAAA,EAAK,WAAA,EAAa,SAAA,EAAU,kBAAA,EAAmB,aAAA,EAAW,IAAA,EAAC,CAAA,GAAK,IAAA;AAAA,MAC3F,8BACC,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,WAAU,sBAAA,EAAuB,IAAA,EAAK,UAAS,YAAA,EAAW,0BAAA,EAC7D,QAAA,kBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,YAAA,EAAA,EAAQ,WAAU,8BAAA,EAA+B,IAAA,EAAM,IAAI,aAAA,EAAW,IAAA,EAAC,GAC1E,CAAA,GACE;AAAA,KAAA,EACN,CAAA;AAAA,IAIC,QAAA,mBAAW,IAAA,oBAAA,CAAA,GAAA,EAAC,aAAA,EAAA,EAAc,KAAA,EAAO,QAAA,EAAU,QAAQ,MAAM,WAAA,CAAY,IAAI,CAAA,EAAG,CAAA,GAAK;AAAA,GAAA,EACpF,CAAA;AAEJ;;;AGzPI,IAAAH,oBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AARG,SAAS,eAAA,CAAgB;AAAA,EAC9B,KAAA;AAAA,EACA;AACF,CAAA,EAGI;AACF,EAAA,uBACE,IAAA,oBAAA,CAAA,IAAA,EAAC,SAAA,EAAA,EAAQ,SAAA,EAAU,qBAAA,EACjB,QAAA,EAAA;AAAA,oBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,IAAA,EAAA,EAAG,SAAA,EAAU,2BAAA,EAA6B,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oBACjD,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BAAA,EAA4B,QAAA,EAAS;AAAA,GAAA,EACtD,CAAA;AAEJ;;;ACJM,IAAAA,oBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAHC,SAAS,WAAA,GAAc;AAC5B,EAAA,qDACG,KAAA,EAAA,EAAI,SAAA,EAAU,uBACb,QAAA,kBAAA,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,kBAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,eAAA,EAAA,EAAgB,KAAA,EAAM,cAAA,EACrB,QAAA,kBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,iBAAc,CAAA,EACjB,CAAA;AAAA,oBACA,IAAA,oBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAE,SAAA,EAAU,kBAAA,EAAmB,QAAA,EAAA,yDAAA,EAA2C;AAAA,GAAA,EAC7E,CAAA,EACF,CAAA;AAEJ;;;AC5BA,IAAAD,cAAAA,GAAiD,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;;;ACY1C,SAAS,SAAA,GAAqB;AACnC,EAAA,OAAO,OAAO,MAAA,KAAW,WAAA,IAAe,OAAO,QAAA,KAAa,WAAA;AAC9D;AASO,SAAS,iBAAA,GAA6B;AAC3C,EAAA,OACE,SAAA,EAAU,IACV,OAAO,iBAAA,KAAsB,WAAA,IAC7B,OAAO,SAAA,KAAc,WAAA,IACrB,OAAO,SAAA,CAAU,YAAA,EAAc,YAAA,KAAiB,UAAA;AAEpD;;;ADHO,SAAS,gBAAA,GAAsE;AACpF,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAA,IAAI,yBAAmB,UAAU,CAAA;AAGvD,EAAA,MAAM,IAAA,GAAA,IAAO,4BAAY,YAAY;AACnC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,SAAA,CAAU,YAAA,CAAa,aAAa,EAAE,KAAA,EAAO,MAAM,CAAA;AACxE,MAAA,KAAA,MAAW,KAAA,IAAS,MAAA,CAAO,SAAA,EAAU,QAAS,IAAA,EAAK;AACnD,MAAA,QAAA,CAAS,OAAO,CAAA;AAAA,IAClB,CAAA,CAAA,MAAQ;AACN,MAAA,QAAA,CAAS,QAAQ,CAAA;AAAA,IACnB;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,CAAC,mBAAkB,EAAG;AACxB,MAAA,QAAA,CAAS,aAAa,CAAA;AACtB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,SAAA,GAAY,KAAA;AAChB,IAAA,IAAI,MAAA,GAAkC,IAAA;AAEtC,IAAA,MAAM,KAAA,GAAQ,CAAC,UAAA,KAAsC;AACnD,MAAA,IAAI,SAAA,EAAW;AACf,MAAA,IAAI,eAAe,QAAA,EAAU;AAC3B,QAAA,QAAA,CAAS,QAAQ,CAAA;AAAA,MACnB,CAAA,MAAA,IAAW,eAAe,SAAA,EAAW;AAEnC,QAAA,QAAA,CAAS,SAAS,CAAA;AAClB,QAAA,KAAK,IAAA,EAAK;AAAA,MACZ,CAAA,MAAO;AACL,QAAA,QAAA,CAAS,WAAW,CAAA;AAAA,MACtB;AAAA,IACF,CAAA;AAEA,IAAA,KAAA,CAAM,YAAY;AAChB,MAAA,IAAI;AACF,QAAA,MAAA,GAAS,MAAM,SAAA,CAAU,WAAA,CAAY,MAAM,EAAE,IAAA,EAAM,cAAgC,CAAA;AACnF,QAAA,IAAI,SAAA,EAAW;AACf,QAAA,KAAA,CAAM,OAAO,KAAK,CAAA;AAGlB,QAAA,MAAA,CAAO,QAAA,GAAW,MAAM,MAAA,IAAU,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA,MACtD,CAAA,CAAA,MAAQ;AAEN,QAAA,IAAI,CAAC,SAAA,EAAW,QAAA,CAAS,WAAW,CAAA;AAAA,MACtC;AAAA,IACF,CAAA,GAAG;AAEH,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,GAAY,IAAA;AACZ,MAAA,IAAI,MAAA,SAAe,QAAA,GAAW,IAAA;AAAA,IAChC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,OAAO,EAAE,KAAA,EAAO,OAAA,EAAS,IAAA,EAAK;AAChC;;;AEnDA,SAAS,cAAc,EAAA,EAAuB;AAC5C,EAAA,IAAI,gBAAA,CAAiB,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,SAAA;AACtC,EAAA,IAAI,QAAA,CAAS,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,MAAA;AAC9B,EAAA,IAAI,wBAAA,CAAyB,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,UAAA;AAC9C,EAAA,IAAI,SAAA,CAAU,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,QAAA;AAC/B,EAAA,OAAO,SAAA;AACT;AAGA,IAAM,WAAA,GAAc,wDAAA;AAEpB,IAAM,MAAA,GAA0C;AAAA,EAC9C,QAAA,EAAU;AAAA,IACR,KAAA,EAAO;AAAA,MACL,uEAAA;AAAA,MACA,8DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,GAAA,EAAK;AAAA,GACP;AAAA;AAAA;AAAA,EAGA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO;AAAA,MACL,uEAAA;AAAA,MACA,8DAAA;AAAA,MACA;AAAA;AACF,GACF;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO;AAAA,MACL,0EAAA;AAAA,MACA,2EAAA;AAAA,MACA;AAAA;AACF,GACF;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,KAAA,EAAO;AAAA,MACL,iEAAA;AAAA,MACA,kDAAA;AAAA,MACA;AAAA;AACF,GACF;AAAA,EACA,OAAA,EAAS;AAAA,IACP,KAAA,EAAO;AAAA,MACL,kDAAA;AAAA,MACA,4CAAA;AAAA,MACA;AAAA;AACF;AAEJ,CAAA;AAGO,SAAS,YAAA,GAA6B;AAC3C,EAAA,MAAM,EAAA,GAAK,OAAO,SAAA,KAAc,WAAA,GAAc,KAAK,SAAA,CAAU,SAAA;AAC7D,EAAA,OAAO,MAAA,CAAO,aAAA,CAAc,EAAE,CAAC,CAAA;AACjC;;;AC1EM,IAAAC,oBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AANC,SAAS,SAAA,CAAU;AAAA,EACxB,KAAA;AAAA,EACA;AACF,CAAA,EAAyD;AACvD,EAAA,IAAI,UAAU,aAAA,EAAe;AAC3B,IAAA,sDACG,KAAA,EAAA,EAAI,SAAA,EAAU,WAAU,YAAA,EAAY,KAAA,EAAO,aAAU,QAAA,EACpD,QAAA,EAAA;AAAA,sBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,cAAA,EACd,wDAAC,MAAA,EAAA,EAAO,IAAA,EAAM,IAAI,CAAA,EACpB,CAAA;AAAA,sBACA,IAAA,oBAAA,CAAA,GAAA,EAAC,IAAA,EAAA,EAAG,SAAA,EAAU,eAAA,EAAgB,QAAA,EAAA,yBAAA,EAAuB,CAAA;AAAA,sBACrD,IAAA,oBAAA,CAAA,GAAA,EAAC,OAAE,QAAA,EAAA,uEAAA,EAAqE;AAAA,KAAA,EAC1E,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,UAAU,QAAA,EAAU;AACtB,IAAA,MAAM,QAAQ,YAAA,EAAa;AAC3B,IAAA,sDACG,KAAA,EAAA,EAAI,SAAA,EAAU,WAAU,YAAA,EAAY,KAAA,EAAO,aAAU,QAAA,EACpD,QAAA,EAAA;AAAA,sBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,cAAA,EACd,wDAAC,MAAA,EAAA,EAAO,IAAA,EAAM,IAAI,CAAA,EACpB,CAAA;AAAA,sBACA,IAAA,oBAAA,CAAA,GAAA,EAAC,IAAA,EAAA,EAAG,SAAA,EAAU,eAAA,EAAgB,QAAA,EAAA,wBAAA,EAAmB,CAAA;AAAA,sBACjD,IAAA,oBAAA,CAAA,GAAA,EAAC,OAAE,QAAA,EAAA,iDAAA,EAA4C,CAAA;AAAA,sBAQ/C,IAAA,oBAAA,CAAA,IAAA,EAAC,SAAA,EAAA,EAAQ,SAAA,EAAU,SAAA,EACjB,QAAA,EAAA;AAAA,wBAAA,IAAA,oBAAA,CAAA,IAAA,EAAC,SAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAA,EAAA,EAAW,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,UAAE;AAAA,SAAA,EAEtC,CAAA;AAAA,wBACA,IAAA,oBAAA,CAAA,GAAA,EAAC,IAAA,EAAA,EACE,QAAA,EAAA,KAAA,CAAM,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBAChB,IAAA,oBAAA,CAAA,GAAA,EAAC,IAAA,EAAA,EAAe,QAAA,EAAA,IAAA,EAAA,EAAP,IAAY,CACtB,CAAA,EACH,CAAA;AAAA,QACC,KAAA,CAAM,GAAA,mBACL,IAAA,oBAAA,CAAA,IAAA,EAAC,GAAA,EAAA,EAAE,IAAA,EAAM,MAAM,GAAA,EAAK,MAAA,EAAO,QAAA,EAAS,GAAA,EAAI,qBAAA,EAAsB,QAAA,EAAA;AAAA,UAAA,uBAAA;AAAA,0BAE5D,IAAA,oBAAA,CAAA,GAAA,EAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,eAAW,IAAA,EAAC;AAAA,SAAA,EACtC,CAAA,GACE;AAAA,OAAA,EACN;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AAeA,EAAA,IAAI,UAAU,SAAA,EAAW;AACvB,IAAA,uBACE,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAAU,cAAY,KAAA,EACnC,QAAA,EAAA;AAAA,sBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,cAAA,EACd,wDAAC,GAAA,EAAA,EAAI,IAAA,EAAM,IAAI,CAAA,EACjB,CAAA;AAAA,sBACA,IAAA,oBAAA,CAAA,GAAA,EAAC,IAAA,EAAA,EAAG,SAAA,EAAU,eAAA,EAAgB,QAAA,EAAA,yBAAA,EAAoB,CAAA;AAAA,sBAClD,IAAA,oBAAA,CAAA,GAAA,EAAC,OAAE,QAAA,EAAA,0DAAA,EAAwD;AAAA,KAAA,EAC7D,CAAA;AAAA,EAEJ;AAOA,EAAA,IAAI,UAAU,UAAA,EAAY;AACxB,IAAA,uBACE,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAAU,cAAY,KAAA,EACnC,QAAA,EAAA;AAAA,sBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,cAAA,EACd,wDAAC,GAAA,EAAA,EAAI,IAAA,EAAM,IAAI,CAAA,EACjB,CAAA;AAAA,sBACA,IAAA,oBAAA,CAAA,GAAA,EAAC,OAAE,QAAA,EAAA,kCAAA,EAAwB;AAAA,KAAA,EAC7B,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAAU,cAAY,KAAA,EACnC,QAAA,EAAA;AAAA,oBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,cAAA,EACd,wDAAC,GAAA,EAAA,EAAI,IAAA,EAAM,IAAI,CAAA,EACjB,CAAA;AAAA,oBACA,IAAA,oBAAA,CAAA,GAAA,EAAC,IAAA,EAAA,EAAG,SAAA,EAAU,eAAA,EAAgB,QAAA,EAAA,yBAAA,EAAoB,CAAA;AAAA,oBAElD,IAAA,oBAAA,CAAA,GAAA,EAAC,OAAE,QAAA,EAAA,6DAAA,EAA2D,CAAA;AAAA,kDAC7D,QAAA,EAAA,EAAO,SAAA,EAAU,uBAAA,EAAwB,OAAA,EAAS,WAAW,QAAA,EAAA,uBAAA,EAE9D;AAAA,GAAA,EACF,CAAA;AAEJ;;;ACrFI,IAAAA,oBAAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA;AAAA,CAAA;AAfG,SAAS,SAAA,CAAU;AAAA,EACxB,KAAA;AAAA,EACA;AACF,CAAA,EAAkE;AAChE,EAAA,MAAM,IAAA,GAAO,UAAA,CAAW,KAAA,CAAM,IAAI,CAAA;AAElC,EAAA,uBASE,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAAU,WAAA,EAAU,UAAS,WAAA,EAAW,KAAA,CAAM,IAAA,EAAM,IAAA,EAAK,YAAA,EACtE,QAAA,EAAA;AAAA,oBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,cAAA,EACd,wDAAC,aAAA,EAAA,EAAc,IAAA,EAAM,IAAI,CAAA,EAC3B,CAAA;AAAA,kDACC,IAAA,EAAA,EAAG,SAAA,EAAU,iBAAgB,IAAA,EAAK,aAAA,EAChC,eAAK,KAAA,EACR,CAAA;AAAA,IAEC,IAAA,CAAK,SAAS,MAAA,GAAY,IAAA,iDAAQ,GAAA,EAAA,EAAE,IAAA,EAAK,YAAA,EAAc,QAAA,EAAA,IAAA,CAAK,IAAA,EAAK,CAAA;AAAA,oBAMlE,IAAA,oBAAA,CAAA,GAAA,EAAC,YAAO,SAAA,EAAU,uBAAA,EAAwB,SAAS,OAAA,EAAS,IAAA,EAAK,eAAc,QAAA,EAAA,YAAA,EAE/E;AAAA,GAAA,EACF,CAAA;AAEJ;;;AChCI,IAAAA,oBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAFG,SAAS,UAAA,GAAa;AAC3B,EAAA,uBACE,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAAU,MAAK,aAAA,EAC5B,QAAA,EAAA;AAAA,oBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAK,SAAA,EAAU,cAAA,EACd,wDAAC,iBAAA,EAAA,EAAkB,IAAA,EAAM,IAAI,CAAA,EAC/B,CAAA;AAAA,kDACC,IAAA,EAAA,EAAG,SAAA,EAAU,eAAA,EAAgB,IAAA,EAAK,gBAAe,QAAA,EAAA,uCAAA,EAElD,CAAA;AAAA,oBACA,IAAA,oBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAE,IAAA,EAAK,aAAA,EAAc,QAAA,EAAA,2FAAA,EAAmF;AAAA,GAAA,EAC3G,CAAA;AAEJ;;;AC5BA,IAAAD,cAAAA,GAAyD,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;AAOzD,IAAM,WAAA,GAAc,GAAA;AAkBb,SAAS,cAAA,GAGd;AACA,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAA,IAAI,yBAAoC,IAAI,CAAA;AAChE,EAAA,MAAM,KAAA,GAAA,IAAQ,uBAAkD,MAAS,CAAA;AAEzE,EAAA,MAAM,KAAA,GAAA,IAAQ,4BAAY,MAAM;AAC9B,IAAA,YAAA,CAAa,MAAM,OAAO,CAAA;AAC1B,IAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,EACd,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,MAAM,GAAA,GAAM,SAAA,CAAU,EAAA,CAAA,OAAA,cAAyB,CAAC,KAAA,KAAU;AAGxD,MAAA,IAAI,MAAM,KAAA,EAAO;AACjB,MAAA,YAAA,CAAa,MAAM,OAAO,CAAA;AAC1B,MAAA,OAAA,CAAQ,MAAM,IAAI,CAAA;AAClB,MAAA,KAAA,CAAM,UAAU,UAAA,CAAW,MAAM,OAAA,CAAQ,IAAI,GAAG,WAAW,CAAA;AAAA,IAC7D,CAAC,CAAA;AACD,IAAA,OAAO,MAAM;AACX,MAAA,GAAA,EAAI;AACJ,MAAA,YAAA,CAAa,MAAM,OAAO,CAAA;AAAA,IAC5B,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAId,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM,SAAA,CAAU,EAAA,CAAA,cAAA,qBAAgC,MAAM,KAAA,EAAO,CAAA,EAAG,CAAC,SAAA,EAAW,KAAK,CAAC,CAAA;AAE5F,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,IAAA,KAAS,IAAA,GAAO,IAAA,GAAO,EAAE,MAAM,IAAA,EAAM,UAAA,CAAW,IAAI,CAAA,CAAE,KAAA,EAAM;AAAA,IACrE;AAAA,GACF;AACF;;;AC7DA,IAAAA,cAAAA,GAAkC,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;AA4B3B,SAAS,aAAa,OAAA,EAAwB;AACnD,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAM,MAAA,GAAA,IAAS,uBAA2B,IAAI,CAAA;AAC9C,EAAA,MAAM,IAAA,GAAA,IAAO,uBAAoB,IAAI,CAAA;AAErC,EAAA,IAAA,cAAA,CAAA,SAAA,EAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAA,IAAW,OAAO,QAAA,KAAa,WAAA,EAAa;AAajD,IAAA,MAAM,KAAA,GAAQ,MAAY,UAAA,EAAW;AACrC,IAAA,MAAM,QAAA,GAAW,CAAC,aAAA,EAAe,SAAS,CAAA;AAC1C,IAAA,KAAA,MAAW,QAAQ,QAAA,EAAU;AAC3B,MAAA,QAAA,CAAS,gBAAA,CAAiB,MAAM,KAAA,EAAO,EAAE,MAAM,IAAA,EAAM,OAAA,EAAS,MAAM,CAAA;AAAA,IACtE;AAEA,IAAA,MAAA,CAAO,UAAU,iBAAA,EAAkB;AAInC,IAAA,KAAK,MAAA,CAAO,OAAA,CAAQ,eAAA,CAAgB,SAAA,CAAU,MAAM,eAAe,CAAA;AAGnE,IAAA,MAAM,eAAA,GAAkB,SAAA,CAAU,EAAA,CAAA,cAAA,qBAAgC,MAAM;AACtE,MAAA,KAAK,MAAA,CAAO,OAAA,EAAS,eAAA,CAAgB,SAAA,CAAU,MAAM,eAAe,CAAA;AAAA,IACtE,CAAC,CAAA;AAED,IAAA,MAAM,WAAW,MAAY;AAC3B,MAAA,IAAA,CAAK,SAAS,IAAA,EAAK;AACnB,MAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AAAA,IACjB,CAAA;AAGA,IAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KAA+C;AAC9D,MAAA,QAAA,EAAS;AACT,MAAA,IAAI,IAAA,KAAS,UAAA,EAAY,IAAA,CAAK,OAAA,GAAU,YAAA,EAAa;AAAA,WAAA,IAC5C,IAAA,KAAS,UAAA,EAAY,IAAA,CAAK,OAAA,GAAU,YAAA,EAAa;AAAA,IAC5D,CAAA;AAEA,IAAA,MAAM,UAA6B,EAAC;AAMpC,IAAA,MAAM,aAAA,uBAAoB,GAAA,EAAU;AAEpC,IAAA,MAAM,MAAA,GAAS,CAAC,IAAA,KAAqB;AACnC,MAAA,IAAI,aAAA,CAAc,GAAA,CAAI,IAAI,CAAA,EAAG;AAC7B,MAAA,aAAA,CAAc,IAAI,IAAI,CAAA;AAMtB,MAAA,IAAI,YAAA,GAAe,IAAA,CAAK,KAAA,KAAU,QAAA,IAAY,KAAK,KAAA,KAAU,MAAA;AAE7D,MAAA,MAAM,KAAA,GAAQ,CAAC,KAAA,KAAwB;AACrC,QAAA,IAAI,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,MAAA,EAAQ,YAAA,GAAe,IAAA;AAC3D,QAAA,IAAI,KAAA,KAAU,SAAA,EAAW,OAAA,CAAQ,UAAU,CAAA;AAAA,aAAA,IAClC,KAAA,KAAU,SAAA,IAAa,KAAA,KAAU,OAAA,UAAiB,UAAU,CAAA;AAAA,qBACxD,IAAI,CAAA;AAAA,MACnB,CAAA;AACA,MAAA,KAAA,CAAM,KAAK,KAAK,CAAA;AAEhB,MAAA,OAAA,CAAQ,IAAA;AAAA,QACN,IAAA,CAAK,sCAA2B,CAAC,EAAE,OAAM,KAAM,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA;AAAA;AAAA,QAG3D,IAAA,CAAK,8BAAuB,MAAM;AAChC,UAAA,IAAI,KAAK,YAAA,EAAc,MAAA,CAAO,OAAA,EAAS,MAAA,CAAO,KAAK,YAAY,CAAA;AAAA,QACjE,CAAC,CAAA;AAAA;AAAA,QAED,IAAA,CAAK,EAAA,CAAA,cAAA,qBAA2B,CAAC,EAAE,QAAO,KAAM;AAC9C,UAAA,IAAI,IAAA,CAAK,UAAU,QAAA,IAAY,IAAA,CAAK,UAAU,MAAA,EAAQ,MAAA,CAAO,OAAA,EAAS,MAAA,CAAO,MAAM,CAAA;AAAA,QACrF,CAAC,CAAA;AAAA,QACD,IAAA,CAAK,EAAA,CAAA,OAAA,cAAoB,CAAC,EAAE,QAAO,KAAM;AACvC,UAAA,aAAA,CAAc,OAAO,IAAI,CAAA;AACzB,UAAA,QAAA,EAAS;AACT,UAAA,MAAA,CAAO,SAAS,MAAA,EAAO;AAKvB,UAAA,IAAI,YAAA,KAAiB,MAAA,KAAW,OAAA,IAAW,MAAA,KAAW,WAAW,iBAAA,EAAkB;AAAA,QACrF,CAAC;AAAA,OACH;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,WAAA,GAAc,SAAA,CAAU,EAAA,CAAA,cAAA,qBAAgC,MAAM,CAAA;AACpE,IAAA,MAAM,YAAY,SAAA,CAAU,EAAA,CAAA,mBAAA,0BAAqC,CAAC,EAAE,MAAK,KAAM;AAC7E,MAAA,IAAI,IAAA,SAAa,IAAI,CAAA;AAAA,WAChB;AACH,QAAA,QAAA,EAAS;AACT,QAAA,MAAA,CAAO,SAAS,MAAA,EAAO;AAAA,MACzB;AAAA,IACF,CAAC,CAAA;AACD,IAAA,IAAI,SAAA,CAAU,UAAA,EAAY,MAAA,CAAO,SAAA,CAAU,UAAU,CAAA;AAErD,IAAA,OAAO,MAAM;AACX,MAAA,KAAA,MAAW,IAAA,IAAQ,UAAU,QAAA,CAAS,mBAAA,CAAoB,MAAM,KAAA,EAAO,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AACxF,MAAA,WAAA,EAAY;AACZ,MAAA,SAAA,EAAU;AACV,MAAA,eAAA,EAAgB;AAChB,MAAA,KAAA,MAAW,GAAA,IAAO,SAAS,GAAA,EAAI;AAC/B,MAAA,QAAA,EAAS;AACT,MAAA,MAAA,CAAO,SAAS,OAAA,EAAQ;AACxB,MAAA,MAAA,CAAO,OAAA,GAAU,IAAA;AAAA,IACnB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,SAAA,EAAW,OAAO,CAAC,CAAA;AACzB;;;ACjGQ,IAAAC,oBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAzBD,SAAS,eAAA,CAAgB;AAAA,EAC9B,OAAA;AAAA,EACA;AACF,CAAA,EAAoF;AAClF,EAAA,MAAM,YAAY,YAAA,EAAa;AAG/B,EAAA,MAAM,GAAA,GAAM,SAAA,CAAU,OAAA,CAAQ,MAAA,GAAS,GAAG,IAAM,CAAA;AAEhD,EAAA,MAAM,QAAA,GAAW,CAAC,MAAA,KAAiC;AACjD,IAAA,OAAA,CAAQ,OAAO,EAAE,CAAA;AACjB,IAAA,IAAI,MAAA,CAAO,QAAQ,KAAK,SAAA,CAAU,KAAK,MAAA,CAAO,MAAM,CAAA,CAAE,KAAA,CAAM,MAAM;AAAA,IAAC,CAAC,CAAA;AAAA,EACtE,CAAA;AAEA,EAAA,uBACE,IAAA,oBAAA,CAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,qBAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,IAAA,EAAK,kBAAA;AAAA,MAIL,kBAAA,EAAkB,QAAQ,MAAA,GAAS,CAAA;AAAA,MAElC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAQ,MAAA,GAAS,CAAA,mBAChB,IAAA,oBAAA,CAAA,IAAA,EAAC,GAAA,EAAA,EAAE,WAAU,2BAAA,EAA6B,QAAA,EAAA;AAAA,UAAA,OAAA,CAAQ,MAAA;AAAA,UAAO;AAAA,SAAA,EAAuB,CAAA,GAC9E,IAAA;AAAA,QACH,OAAA,CAAQ,IAAI,CAAC,MAAA,oDACX,KAAA,EAAA,EAAoB,SAAA,EAAU,oBAAA,EAAqB,IAAA,EAAK,iBAAA,EACvD,QAAA,EAAA;AAAA,0BAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,MAAA,EAAA,EAAK,WAAU,yBAAA,EAA0B,aAAA,EAAW,MACnD,QAAA,kBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,WAAA,EAAA,EAAY,IAAA,EAAM,EAAA,EAAI,CAAA,EACzB,CAAA;AAAA,0BACA,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAKb,QAAA,EAAA;AAAA,4BAAA,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,WAAU,2BAAA,EACb,QAAA,EAAA;AAAA,8BAAA,IAAA,oBAAA,CAAA,IAAA,EAAC,GAAA,EAAA,EAAE,WAAU,0BAAA,EAA2B,QAAA,EAAA;AAAA,gBAAA,gBAAA;AAAA,gBAAe,MAAA,CAAO,MAAA;AAAA,gBAAO;AAAA,eAAA,EAAc,CAAA;AAAA,8BACnF,IAAA,oBAAA,CAAA,GAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,QAAA;AAAA,kBACL,SAAA,EAAU,4BAAA;AAAA,kBACV,OAAA,EAAS,MAAM,OAAA,CAAQ,MAAA,CAAO,EAAE,CAAA;AAAA,kBAChC,YAAA,EAAW,iBAAA;AAAA,kBACX,IAAA,EAAK,yBAAA;AAAA,kBAEL,QAAA,kBAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,CAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA;AACf,aAAA,EACF,CAAA;AAAA,YAIC,MAAA,CAAO,MAAA,mBACN,IAAA,oBAAA,CAAA,IAAA,EAAC,GAAA,EAAA,EAAE,WAAU,6BAAA,EAA+B,QAAA,EAAA;AAAA,cAAA,MAAA,CAAO,MAAA;AAAA,cAAO;AAAA,aAAA,EAAoB,CAAA,GAC5E,IAAA;AAAA,4BACJ,IAAA,oBAAA,CAAA,IAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,8BAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,GAAA,EAAA,EAAE,WAAU,wBAAA,EAA0B,QAAA,EAAA,SAAA,CAAU,eAAe,MAAA,CAAO,EAAA,EAAI,GAAG,CAAC,CAAA,EAAE,CAAA;AAAA,cAEhF,OAAO,MAAA,mBACN,IAAA,oBAAA,CAAA,IAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,QAAA;AAAA,kBACL,SAAA,EAAU,mDAAA;AAAA,kBACV,OAAA,EAAS,MAAM,QAAA,CAAS,MAAM,CAAA;AAAA,kBAC9B,IAAA,EAAK,0BAAA;AAAA,kBAEL,QAAA,EAAA;AAAA,oCAAA,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,oBAAE;AAAA;AAAA;AAAA,eAEjC,GACE;AAAA,aAAA,EACN;AAAA,WAAA,EACF;AAAA,SAAA,EAAA,EA1CQ,MAAA,CAAO,EA2CjB,CACD;AAAA;AAAA;AAAA,GACH;AAEJ;;;ACpGA,IAAAD,cAAAA,GAAyD,OAAA,CAAA,aAAA,EAAA,EAAA,CAAA,CAAA;AAmClD,SAAS,kBAAA,GAGd;AACA,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAA,IAAI,cAAA,CAAA,QAAA,EAAoC,EAAE,CAAA;AACpE,EAAA,MAAM,MAAA,GAAA,IAAS,uBAAO,CAAC,CAAA;AAEvB,EAAA,MAAM,OAAA,GAAA,IAAU,cAAA,CAAA,WAAA,EAAY,CAAC,EAAA,KAAe;AAC1C,IAAA,UAAA,CAAW,CAAC,SAAS,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,CAAA,CAAE,EAAA,KAAO,EAAE,CAAC,CAAA;AAAA,EACtD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAA,cAAA,CAAA,SAAA;AAAA,IACE,MACE,SAAA,CAAU,EAAA,CAAA,iBAAA,wBAAmC,CAAC,OAAA,KAAY;AAIxD,MAAA,IAAI,OAAA,CAAQ,WAAW,eAAA,EAAiB;AACtC,QAAA,MAAM,KAAK,MAAA,CAAO,OAAA,EAAA;AAClB,QAAA,UAAA,CAAW,CAAC,IAAA,KAAS,CAAC,GAAG,IAAA,EAAM,EAAE,EAAA,EAAI,MAAA,EAAQ,OAAA,CAAQ,MAAA,EAAQ,QAAQ,OAAA,CAAQ,MAAA,EAAQ,IAAI,OAAA,CAAQ,EAAA,EAAI,CAAC,CAAA;AAAA,MACxG;AAAA,IACF,CAAC,CAAA;AAAA,IACH,CAAC,SAAS;AAAA,GACZ;AAEA,EAAA,OAAO,EAAE,SAAS,OAAA,EAAQ;AAC5B;;;AnEuEQ,IAAAC,oBAAAA,GAAA,OAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;AAlGD,SAAS,gBAAgB,KAAA,EAA6B;AAC3D,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA,kBAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA,GAAQ,QAAA;AAAA,IACR,UAAA,GAAa,IAAA;AAAA,IACb,MAAA,GAAS;AAAA,GACX,GAAI,KAAA;AACJ,EAAA,MAAM,YAAY,YAAA,EAAa;AAW/B,EAAA,MAAM,WAAW,SAAA,CAAU,OAAA;AAC3B,EAAA,MAAM,cAAA,GAAiB,YAAY,QAAA,EAAU,QAAA;AAC7C,EAAA,MAAM,aAAA,GAAgB,WAAW,QAAA,EAAU,OAAA;AAC3C,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAA,IAAI,yBAAgB,QAAQ,CAAA;AAC9C,EAAA,MAAM,OAAO,aAAA,EAAc;AAC3B,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,MAAM,iBAAiB,iBAAA,EAAkB;AAMzC,EAAA,MAAM,UAAA,GAAa,CAAC,QAAA,IAAY,cAAA,KAAmB,UAAA;AAEnD,EAAA,MAAM,MAAM,gBAAA,EAAiB;AAE7B,EAAA,YAAA,CAAa,MAAM,CAAA;AACnB,EAAA,MAAM,OAAA,GAAU,UAAA,IAAc,GAAA,CAAI,KAAA,KAAU,OAAA;AAC5C,EAAA,MAAM,QAAQ,YAAA,EAAa;AAI3B,EAAA,MAAM,eAAe,CAAC,IAAA,IAAQ,CAAC,OAAA,IAAW,CAAC,SAAS,CAAC,UAAA;AAGrD,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,EAAO,YAAA,KAAiB,cAAA,EAAe;AAKxD,EAAA,MAAM,EAAE,OAAA,EAAS,eAAA,EAAiB,OAAA,EAAS,qBAAA,KAA0B,kBAAA,EAAmB;AAWxF,EAAA,MAAM,QAAQ,MAAM;AAClB,IAAA,KAAA,CAAM,YAAY;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,UAAU,IAAA,EAAK;AACrB,QAAA,MAAM,UAAU,KAAA,EAAM;AAAA,MACxB,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF,CAAA,GAAG;AAAA,EACL,CAAA;AAEA,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,EAAE,IAAI,QAAA,EAAmB,IAAA,EAAM,SAAS,KAAA,EAAO,SAAA,EAAW,MAAM,IAAA,EAAK;AAAA,IACrE,EAAE,EAAA,EAAI,UAAA,EAAqB,IAAA,EAAM,KAAA,EAAO,OAAO,WAAA,EAAa,IAAA,EAAM,CAAC,CAAC,cAAA,EAAe;AAAA,IACnF,EAAE,EAAA,EAAI,SAAA,EAAoB,IAAA,EAAM,KAAA,EAAO,OAAO,WAAA,EAAa,IAAA,EAAM,CAAC,CAAC,aAAA,EAAc;AAAA;AAAA;AAAA,IAGjF,EAAE,IAAI,UAAA,EAAqB,IAAA,EAAM,UAAU,KAAA,EAAO,SAAA,EAAW,MAAM,IAAA;AAAK,GAC1E,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM,EAAE,IAAI,CAAA;AAEtB,EAAA,uBACE,IAAA,oBAAA,CAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,SAAA,GAAY,CAAA,aAAA,EAAgB,SAAS,CAAA,CAAA,GAAK,cAAA;AAAA,MAEpD,GAAI,KAAA,KAAU,QAAA,GAAW,EAAC,GAAI,EAAE,iBAAiB,KAAA,EAAM;AAAA,MAUvD,QAAA,EAAA;AAAA,QAAA,YAAA,iDACE,eAAA,EAAA,EAAgB,OAAA,EAAS,eAAA,EAAiB,OAAA,EAAS,uBAAuB,CAAA,GACzE,IAAA;AAAA,sDACH,KAAA,EAAA,EAAI,SAAA,EAAU,SAAA,EAiBZ,QAAA,EAAA,UAAA,iDACE,UAAA,EAAA,EAAW,CAAA,GACV,OAAA,mBACF,IAAA,oBAAA,CAAA,GAAA,EAAC,aAAU,KAAA,EAAO,GAAA,CAAI,KAAA,EAAO,SAAA,EAAW,MAAM,KAAK,GAAA,CAAI,OAAA,EAAQ,EAAG,IAChE,IAAA,mBACF,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAA,EAAA,EAAW,IAAA,EAAY,UAAU,MAAA,EAAS,GAAI,kBAAA,GAAqB,EAAE,oBAAmB,GAAI,IAAK,CAAA,GAChG,KAAA,iDACD,SAAA,EAAA,EAAU,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,OAAO,CAAA,GACvC,GAAA,KAAQ,UAAA,IAAc,cAAA,iDACvB,WAAA,EAAA,EAAY,MAAA,EAAQ,cAAA,EAAiB,GAAI,gBAAgB,EAAE,aAAA,EAAc,GAAI,IAAK,CAAA,GACjF,GAAA,KAAQ,SAAA,IAAa,aAAA,iDACtB,UAAA,EAAA,EAAW,MAAA,EAAQ,aAAA,EAAe,CAAA,GACjC,QAAQ,UAAA,mBACV,IAAA,oBAAA,CAAA,GAAA,EAAC,WAAA,EAAA,EAAY,CAAA,iDAEZ,OAAA,EAAA,EAAQ,OAAA,EAAkB,UAAU,YAAA,EAAc,QAAA,EAAU,QAAQ,CAAA,EAEzE,CAAA;AAAA,QAKC,YAAA,mBACC,IAAA,oBAAA,CAAA,GAAA,EAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAU,IAAA,EAAK,SAAA,EAC3B,QAAA,EAAA,IAAA,CAAK,GAAA,CAAI,CAAC,EAAE,EAAA,EAAI,IAAA,EAAMC,KAAAA,EAAM,OAAM,qBACjC,IAAA,oBAAA,CAAA,IAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,KAAA;AAAA,YACL,iBAAe,GAAA,KAAQ,EAAA;AAAA,YACvB,SAAA,EAAU,QAAA;AAAA,YACV,OAAA,EAAS,MAAM,MAAA,CAAO,EAAE,CAAA;AAAA,YAExB,QAAA,EAAA;AAAA,8BAAA,IAAA,oBAAA,CAAA,GAAA,EAACA,KAAAA,EAAA,EAAK,IAAA,EAAM,EAAA,EAAI,CAAA;AAAA,8BAChB,IAAA,oBAAA,CAAA,GAAA,EAAC,UAAM,QAAA,EAAA,KAAA,EAAM;AAAA;AAAA,WAAA;AAAA,UAPR;AAAA,SASR,GACH,CAAA,GACE;AAAA;AAAA;AAAA,GACN;AAEJ;;;AoEhMA,IAAA,iBAAA,GAAA,0nvGAAA;;;AtEmIA,IAAM,MAAA,GAAS;AAAA,EACb,YAAA,EAAc,kBAAA;AAAA,EACd,YAAA,EAAc,kBAAA;AAAA,EACd,WAAA,EAAa,iBAAA;AAAA,EACb,SAAA,EAAW,eAAA;AAAA,EACX,KAAA,EAAO,UAAA;AAAA,EACP,aAAA,EAAe,uBAAA;AAAA,EACf,eAAA,EAAiB;AACnB,CAAA;AAyBO,IAAM,wBAAA,GAAN,cAAuC,WAAA,CAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOxD,OAAgB,kBAAA,GAAqB,CAAC,OAAA,EAAS,eAAe,QAAQ,CAAA;AAAA,EAEtE,KAAA,GAAqB,IAAA;AAAA,EACrB,UAAA,GAA+B,IAAA;AAAA,EAC/B,UAAkC,EAAC;AAAA,EACnC,eAAkC,EAAC;AAAA,EAC1B,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAA;AAAA,EAET,WAAA,GAAc;AACZ,IAAA,KAAA,EAAM;AACN,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,YAAA,CAAa,EAAE,IAAA,EAAM,QAAQ,CAAA;AACjD,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,IAAA,KAAA,CAAM,WAAA,GAAc,iBAAA;AACpB,IAAA,IAAA,CAAK,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC1C,IAAA,IAAA,CAAK,OAAO,SAAA,GAAY,UAAA;AACxB,IAAA,IAAA,CAAK,OAAA,CAAQ,MAAA,CAAO,KAAA,EAAO,IAAA,CAAK,MAAM,CAAA;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAI,SAAA,GAA8B;AAChC,IAAA,OAAO,IAAA,CAAK,UAAA;AAAA,EACd;AAAA,EACA,IAAI,UAAU,KAAA,EAAyB;AACrC,IAAA,IAAA,CAAK,OAAA,EAAQ;AACb,IAAA,IAAA,CAAK,UAAA,GAAa,KAAA;AAClB,IAAA,IAAA,CAAK,OAAA,EAAQ;AACb,IAAA,IAAA,CAAK,OAAA,EAAQ;AAAA,EACf;AAAA;AAAA,EAGA,IAAI,MAAA,GAAiC;AACnC,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EACd;AAAA,EACA,IAAI,OAAO,KAAA,EAA+B;AACxC,IAAA,IAAA,CAAK,OAAA,GAAU,SAAS,EAAC;AACzB,IAAA,IAAA,CAAK,OAAA,EAAQ;AAAA,EACf;AAAA,EAEA,iBAAA,GAA0B;AACxB,IAAA,IAAA,CAAK,OAAA,EAAQ;AACb,IAAA,IAAA,CAAK,OAAA,EAAQ;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,oBAAA,GAA6B;AAC3B,IAAA,cAAA,CAAe,MAAM;AACnB,MAAA,IAAI,KAAK,WAAA,EAAa;AACtB,MAAA,IAAA,CAAK,OAAA,EAAQ;AACb,MAAA,MAAM,OAAO,IAAA,CAAK,KAAA;AAClB,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAA;AACb,MAAA,IAAA,EAAM,OAAA,EAAQ;AAAA,IAChB,CAAC,CAAA;AAAA,EACH;AAAA,EAEA,wBAAA,GAAiC;AAC/B,IAAA,IAAA,CAAK,OAAA,EAAQ;AAAA,EACf;AAAA;AAAA,EAGA,OAAA,GAAgB;AACd,IAAA,MAAM,QAAQ,IAAA,CAAK,UAAA;AACnB,IAAA,IAAI,CAAC,KAAA,IAAS,IAAA,CAAK,YAAA,CAAa,MAAA,EAAQ;AAIxC,IAAA,IAAA,CAAK,YAAA,GAAe;AAAA,MAClB,KAAA,CAAM,EAAA,CAAA,cAAA,qBAAgC,CAAC,EAAE,KAAA,EAAM,KAAM,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,YAAA,EAAc,EAAE,KAAA,EAAO,CAAC,CAAA;AAAA,MAC/F,KAAA,CAAM,EAAA;AAAA,QAAA,cAAA;AAAA,QAAgC,CAAC,IAAA,KACrC,IAAA,CAAK,KAAA,CAAM,OAAO,YAAA,EAAc,EAAE,MAAA,EAAQ,IAAA,CAAK,OAAO,MAAA,EAAQ,IAAA,EAAM,IAAA,CAAK,MAAA,CAAO,aAAa;AAAA,OAC/F;AAAA,MACA,KAAA,CAAM,EAAA,CAAA,mBAAA,0BAAqC,CAAC,EAAE,MAAK,KAAM;AACvD,QAAA,IAAI,CAAC,IAAA,EAAM;AACX,QAAA,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,WAAA,EAAa,EAAE,MAAA,EAAQ,IAAA,CAAK,MAAA,CAAO,MAAA,EAAQ,SAAA,EAAW,IAAA,CAAK,SAAA,EAAW,CAAA;AACxF,QAAA,MAAM,MAAM,IAAA,CAAK,EAAA,CAAA,OAAA,cAAoB,CAAC,EAAE,QAAO,KAAM;AACnD,UAAA,GAAA,EAAI;AACJ,UAAA,IAAA,CAAK,KAAA,CAAM,OAAO,SAAA,EAAW,EAAE,QAAQ,IAAA,CAAK,MAAA,CAAO,MAAA,EAAQ,MAAA,EAAQ,CAAA;AAAA,QACrE,CAAC,CAAA;AAAA,MACH,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAKD,KAAA,CAAM,EAAA;AAAA,QAAA,OAAA;AAAA,QAAyB,CAAC,KAAA,KAC9B,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,OAAO,EAAE,IAAA,EAAM,KAAA,CAAM,IAAA,EAAM,OAAO,KAAA,CAAM,KAAA,EAAO,OAAA,EAAS,KAAA,CAAM,SAAS;AAAA,OAC3F;AAAA,MACA,KAAA,CAAM,EAAA;AAAA,QAAA,eAAA;AAAA,QAAiC,CAAC,EAAE,QAAA,EAAS,KACjD,IAAA,CAAK,MAAM,MAAA,CAAO,aAAA,EAAe,EAAE,QAAA,EAAU;AAAA,OAC/C;AAAA;AAAA,MAEA,KAAA,CAAM,4CAAmC,CAAC,OAAA,KAAY,KAAK,KAAA,CAAM,MAAA,CAAO,eAAA,EAAiB,OAAO,CAAC;AAAA,KACnG;AAAA,EACF;AAAA,EAEA,OAAA,GAAgB;AACd,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,YAAA,EAAc,GAAA,EAAI;AACzC,IAAA,IAAA,CAAK,eAAe,EAAC;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,UAAU,IAAA,EAAmC;AAC3C,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,YAAA,CAAa,IAAI,CAAA;AAClC,IAAA,IAAI,GAAA,KAAQ,MAAM,OAAO,MAAA;AACzB,IAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,IAAA,EAAK,CAAE,WAAA,EAAY;AACrC,IAAA,IAAI,KAAA,KAAU,SAAS,OAAO,KAAA;AAE9B,IAAA,IAAI,KAAA,KAAU,MAAA,IAAU,KAAA,KAAU,EAAA,EAAI,OAAO,IAAA;AAC7C,IAAA,OAAO,MAAA;AAAA,EACT;AAAA;AAAA,EAGA,KAAA,CAAgD,MAAS,MAAA,EAA2B;AAClF,IAAA,IAAA,CAAK,aAAA,CAAc,IAAI,WAAA,CAAY,IAAA,EAAM,EAAE,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,CAAC,CAAA;AAAA,EACrF;AAAA,EAEA,OAAA,GAAgB;AACd,IAAA,IAAI,CAAC,IAAA,CAAK,WAAA,IAAe,CAAC,KAAK,UAAA,EAAY;AAC3C,IAAA,IAAA,CAAK,KAAA,KAAA,IAAU,aAAA,CAAA,UAAA,EAAW,IAAA,CAAK,MAAM,CAAA;AAErC,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,YAAA,CAAa,OAAO,CAAA;AAM3C,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,OAAA,CAAQ,KAAA,IAAS,SAAA,IAAa,QAAA;AACjD,IAAA,MAAM,aAAa,IAAA,CAAK,OAAA,CAAQ,UAAA,IAAc,IAAA,CAAK,UAAU,aAAa,CAAA;AAC1E,IAAA,MAAM,SAAS,IAAA,CAAK,OAAA,CAAQ,MAAA,IAAU,IAAA,CAAK,UAAU,QAAQ,CAAA;AAI7D,IAAA,MAAM,WAAA,GAAoC;AAAA,MACxC,KAAA;AAAA,MACA,GAAI,UAAA,KAAe,MAAA,GAAY,EAAC,GAAI,EAAE,UAAA,EAAW;AAAA,MACjD,GAAI,MAAA,KAAW,MAAA,GAAY,EAAC,GAAI,EAAE,MAAA,EAAO;AAAA,MACzC,GAAI,IAAA,CAAK,OAAA,CAAQ,QAAA,GAAW,EAAE,UAAU,IAAA,CAAK,OAAA,CAAQ,QAAA,EAAS,GAAI,EAAC;AAAA,MACnE,GAAI,IAAA,CAAK,OAAA,CAAQ,OAAA,GAAU,EAAE,SAAS,IAAA,CAAK,OAAA,CAAQ,OAAA,EAAQ,GAAI,EAAC;AAAA,MAChE,GAAI,IAAA,CAAK,OAAA,CAAQ,aAAA,GAAgB,EAAE,eAAe,IAAA,CAAK,OAAA,CAAQ,aAAA,EAAc,GAAI,EAAC;AAAA,MAClF,GAAI,IAAA,CAAK,OAAA,CAAQ,kBAAA,GAAqB,EAAE,oBAAoB,IAAA,CAAK,OAAA,CAAQ,kBAAA,EAAmB,GAAI;AAAC,KACnG;AAEA,IAAA,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,MAAA,IACT,cAAA,CAAA,aAAA;AAAA,QACE,iBAAA;AAAA,QACA,EAAE,WAAW,IAAA,CAAK,UAAA,EAAY,cAAU,cAAA,CAAA,aAAA,EAAc,eAAA,EAAiB,WAAW,CAAA;AAAE;AACtF,KACF;AAAA,EACF;AACF;AAGO,SAAS,sBAAA,CAAuB,UAAU,oBAAA,EAA4B;AAC3E,EAAA,IAAI,OAAO,mBAAmB,WAAA,EAAa;AAC3C,EAAA,IAAI,cAAA,CAAe,GAAA,CAAI,OAAO,CAAA,EAAG;AACjC,EAAA,cAAA,CAAe,MAAA,CAAO,SAAS,wBAAwB,CAAA;AACzD;AAIA,sBAAA,EAAuB","file":"index.js","sourcesContent":["/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\r\n * `<coventia-softphone>` — the drop-in Web Component (SPEC §2.5).\r\n *\r\n * A Custom Element is a DOM element, so ANY framework can place it: React, Vue, Angular, Svelte,\r\n * plain HTML, or HTML rendered by PHP/Laravel/Rails. This entry bundles its own React and stylesheet,\r\n * so a host with no npm and no React gets a working softphone from one <script> and one tag.\r\n *\r\n * **A React host should NOT use this** — import `@coventia/softphone/react` + `/ui` instead, which\r\n * reuses the host's React. The element's bundled React is a second copy, worth paying for only when\r\n * the host has none.\r\n *\r\n * Rendered into a SHADOW ROOT: the host's CSS selectors cannot reach in and break the layout (a\r\n * stray `button { width:100% }` would destroy the dialpad). Theming still works fully, because custom\r\n * properties inherit THROUGH the shadow boundary — see SPEC §2.6 and `::part()` below.\r\n */\r\nimport { createElement } from 'react';\r\nimport { createRoot, type Root } from 'react-dom/client';\r\nimport { SoftphoneProvider } from '../react/context.js';\r\nimport { SoftphoneWidget } from '../ui/SoftphoneWidget.js';\r\nimport { SoftphoneEvent, CallEvent } from '../core/events.js';\r\nimport type { Softphone } from '../core/softphone.js';\r\nimport type { Call, HangupReason } from '../core/call.js';\r\nimport type {\r\n SoftphoneTheme,\r\n ContactAction,\r\n ContactsSource,\r\n HistorySource,\r\n SoftphoneWidgetProps,\r\n} from '../ui/types.js';\r\nimport type { CallDirection, SoftphoneState, TransferOutcomeEvent } from '../core/types.js';\r\nimport type { SoftphoneErrorCode } from '../core/errors.js';\r\n// Inlined by the element build (`loader: { '.css': 'text' }`) — the drop-in needs no <link>.\r\nimport css from '../styles/softphone.css';\r\n\r\n/**\r\n * Config that cannot be expressed as HTML attributes.\r\n *\r\n * Attributes are strings; `contacts`/`history`/`contactAction` carry FUNCTIONS. So this is set as a\r\n * JS PROPERTY, not an attribute — one line in vanilla JS or a PHP-rendered page. (`theme` is a\r\n * string, so it is also available as the `theme` attribute.)\r\n */\r\nexport interface SoftphoneElementConfig {\r\n /**\r\n * Ask for the microphone before showing the dialer. **On by default** — see\r\n * `SoftphoneWidgetProps.requireMic`. Set `false` only when the mic is somebody else's problem.\r\n */\r\n readonly requireMic?: boolean;\r\n /**\r\n * Play call audio — the remote party, the inbound ring, the outbound ringback, the end-of-call cue\r\n * and the keypad's key tones. **On by default**; see `SoftphoneWidgetProps.sounds`.\r\n *\r\n * Turning this off makes a connected call silent in both directions, because nothing else attaches\r\n * the remote `MediaStream`. Only correct when the host attaches `call.remoteStream` itself, or for\r\n * a view that watches calls without listening to them.\r\n */\r\n readonly sounds?: boolean;\r\n readonly contacts?: ContactsSource;\r\n readonly history?: HistorySource;\r\n /** The action row on a contact's detail page. See `ContactAction` from `@coventia/softphone/ui`. */\r\n readonly contactAction?: ContactAction;\r\n /**\r\n * A second, independent action chip on the INCOMING call screen — see `ContactAction` and\r\n * `SoftphoneWidgetProps.incomingCallAction`. A different value from `contactAction`, not the same\r\n * one reused; a host may configure either, both, or neither.\r\n */\r\n readonly incomingCallAction?: ContactAction;\r\n readonly theme?: SoftphoneTheme;\r\n}\r\n\r\n/**\r\n * Every CustomEvent the element dispatches, with its payload. The single source of truth for both\r\n * sides of the wire.\r\n *\r\n * **Emitting** (`#emit`): fully checked — a name outside this map, or a payload that does not match\r\n * it, is a compile error.\r\n *\r\n * **Listening**: merged into the DOM's event maps below, so a TypeScript consumer gets the name\r\n * autocompleted and `e.detail` narrowed, with no cast. One honest gap — a MISSPELLED name is not\r\n * rejected outright: `addEventListener(type: string, …)` is a real DOM overload and must accept any\r\n * string, or arbitrary CustomEvents would be unlistenable. The typo surfaces one step later, as\r\n * \"Property 'detail' does not exist on type 'Event'\", since the fallback overload hands back a plain\r\n * `Event`. So a typo is caught if the handler reads the payload, and silent if it ignores it.\r\n */\r\nexport interface SoftphoneElementEventMap {\r\n /** The connection state changed (registering, ready, reconnecting…). */\r\n 'cv-state-changed': CustomEvent<{ readonly state: SoftphoneState }>;\r\n /** An inbound INVITE landed. `name` IS the number until a contact resolves (SPEC §5.4). */\r\n 'cv-incoming-call': CustomEvent<{ readonly number: string; readonly name: string }>;\r\n /** A call became the active one, in either direction. */\r\n 'cv-call-started': CustomEvent<{ readonly number: string; readonly direction: CallDirection }>;\r\n /** The active call ended, for `reason`. */\r\n 'cv-call-ended': CustomEvent<{ readonly number: string; readonly reason: HangupReason }>;\r\n /**\r\n * Something failed. **The widget has already shown the user why** — a fatal error replaces the\r\n * dialpad, a call outcome appears as a line under the number — so this is for the host's own\r\n * logging, toasts or call records, not for building an error UI that would say it twice.\r\n *\r\n * `message` is the DEVELOPER's sentence and is English (see `ERROR_CATALOGUE`). It belongs in a log\r\n * or a Sentry group, never on screen. The user's Spanish copy is the widget's business.\r\n *\r\n * `fatal` is the split worth branching on: `true` means calling is impossible until something\r\n * changes, `false` means one call ended badly and the phone is still fine.\r\n */\r\n 'cv-error': CustomEvent<{\r\n readonly code: SoftphoneErrorCode;\r\n readonly fatal: boolean;\r\n readonly message: string;\r\n }>;\r\n /**\r\n * This tab's leadership changed (`multi-tab-leader-election.md`) — a DIFFERENT axis from\r\n * `cv-state-changed`: that is reachability, this is whether this tab is even allowed to be\r\n * reachable while another open tab holds the same extension.\r\n */\r\n 'cv-leadership-changed': CustomEvent<{ readonly isLeader: boolean }>;\r\n /**\r\n * A transfer's final handoff step resolved — `status` says whether the caller actually reached\r\n * `target`. Polled, not instant (Phase A, `docs/specs/transfer-outcome-relay.md`); only for that\r\n * handoff, never for the consult leg itself, which already reports its own outcome in real time via\r\n * `cv-call-ended` on that leg. **The widget already shows its own dismissable notice for this** —\r\n * listen here only for your own logging, or if you are replacing the built-in UI.\r\n */\r\n 'cv-transfer-outcome': CustomEvent<TransferOutcomeEvent>;\r\n}\r\n\r\ntype DetailOf<K extends keyof SoftphoneElementEventMap> =\r\n SoftphoneElementEventMap[K] extends CustomEvent<infer D> ? D : never;\r\n\r\n/**\r\n * `satisfies` — not a plain object — so these keys cannot drift from the map above. Add an event to\r\n * the map and forget it here and nothing breaks; get a name WRONG here and it is a compile error.\r\n */\r\nconst EVENTS = {\r\n stateChanged: 'cv-state-changed',\r\n incomingCall: 'cv-incoming-call',\r\n callStarted: 'cv-call-started',\r\n callEnded: 'cv-call-ended',\r\n error: 'cv-error',\r\n leaderChanged: 'cv-leadership-changed',\r\n transferOutcome: 'cv-transfer-outcome',\r\n} as const satisfies Record<string, keyof SoftphoneElementEventMap>;\r\n\r\n/*\r\n * Declaration merging into the DOM's maps. The two `extends`-only interfaces below are flagged by\r\n * `no-empty-object-type`, but emptiness is the POINT here: merging is the only way to teach TS about\r\n * an event the platform has never heard of, and re-listing the members would duplicate the map above\r\n * and let the two drift. Disabled locally rather than loosening the rule for the whole package.\r\n */\r\n/* eslint-disable @typescript-eslint/no-empty-object-type */\r\ndeclare global {\r\n /** `document.querySelector('coventia-softphone')` returns the real type — no cast to set `.softphone`. */\r\n interface HTMLElementTagNameMap {\r\n 'coventia-softphone': CoventiaSoftphoneElement;\r\n }\r\n /** Types `el.addEventListener` — and any ANCESTOR's, since these events bubble. */\r\n interface HTMLElementEventMap extends SoftphoneElementEventMap {}\r\n /**\r\n * Types `document.addEventListener` too. Needed separately: `DocumentEventMap` extends\r\n * `GlobalEventHandlersEventMap`, NOT `HTMLElementEventMap` — so augmenting the element map alone\r\n * would leave the most common listening spot for a `composed` event untyped.\r\n */\r\n interface DocumentEventMap extends SoftphoneElementEventMap {}\r\n}\r\n/* eslint-enable @typescript-eslint/no-empty-object-type */\r\n\r\nexport class CoventiaSoftphoneElement extends HTMLElement {\r\n /**\r\n * `require-mic` and `sounds` are here so a host with **no JavaScript at all** can turn them off —\r\n * a PHP/WordPress page or a CDN `<script>` drop-in, which is the whole point of this entry. The\r\n * function-valued config (contacts, history, contactAction) can never be attributes; these two\r\n * are booleans and have no such excuse.\r\n */\r\n static readonly observedAttributes = ['theme', 'require-mic', 'sounds'];\r\n\r\n #root: Root | null = null;\r\n #softphone: Softphone | null = null;\r\n #config: SoftphoneElementConfig = {};\r\n #unsubscribe: Array<() => void> = [];\r\n readonly #shadow: ShadowRoot;\r\n /**\r\n * React's container. Held explicitly rather than looked up by position in the shadow root: any\r\n * node appended here later would silently steal the lookup and mount the widget into the wrong\r\n * element.\r\n *\r\n * It carries `cv-mount`, which exists for one reason: this div must not break the height chain.\r\n * `.cv-softphone` is `height: 100%`, and a percentage height resolves against the PARENT — so an\r\n * unstyled wrapper here silently computes to `auto`, the widget shrinks to its content, and the\r\n * host's `height` is quietly ignored. React hosts never see it (they render the widget straight\r\n * into their own sized box); the element is the only path with a wrapper to get wrong.\r\n */\r\n readonly #mount: HTMLElement;\r\n\r\n constructor() {\r\n super();\r\n this.#shadow = this.attachShadow({ mode: 'open' });\r\n const style = document.createElement('style');\r\n style.textContent = css;\r\n this.#mount = document.createElement('div');\r\n this.#mount.className = 'cv-mount';\r\n this.#shadow.append(style, this.#mount);\r\n }\r\n\r\n /**\r\n * The engine. REQUIRED — the host constructs it, so it owns the connection's lifetime and can keep\r\n * a call alive across re-renders/navigations (SPEC §5.1).\r\n *\r\n * el.softphone = createSoftphone({ tokenSource, provider: createZadarmaEngine({…}) });\r\n */\r\n get softphone(): Softphone | null {\r\n return this.#softphone;\r\n }\r\n set softphone(value: Softphone | null) {\r\n this.#detach();\r\n this.#softphone = value;\r\n this.#attach();\r\n this.#render();\r\n }\r\n\r\n /** Config carrying functions (contacts/history/contactAction) — a property, not an attribute. */\r\n get config(): SoftphoneElementConfig {\r\n return this.#config;\r\n }\r\n set config(value: SoftphoneElementConfig) {\r\n this.#config = value ?? {};\r\n this.#render();\r\n }\r\n\r\n connectedCallback(): void {\r\n this.#attach(); // idempotent — re-subscribes if a real removal tore us down\r\n this.#render();\r\n }\r\n\r\n /**\r\n * Moving a node in the DOM fires disconnect→connect **synchronously**, so nothing may be torn down\r\n * here: by the next microtask the element may be connected again. Deferring the decision — not just\r\n * the unmount — is what makes a move survivable. Two things go wrong if you tear down eagerly:\r\n *\r\n * - `#detach()` here kills the engine subscriptions, and `#attach()` would not run again → the\r\n * widget still renders but `cv-*` events stop forever. Silent, and invisible in the UI.\r\n * - Nulling `#root` here makes the reconnect's `??=` call `createRoot` on a container that\r\n * already has a root (\"You are calling createRoot() on a container that has already been\r\n * passed to createRoot()\") — two roots on one div.\r\n *\r\n * The unmount stays asynchronous regardless: React forbids unmounting synchronously from inside a\r\n * lifecycle it may still be rendering.\r\n */\r\n disconnectedCallback(): void {\r\n queueMicrotask(() => {\r\n if (this.isConnected) return; // it was a move — keep the listeners and the root\r\n this.#detach();\r\n const root = this.#root;\r\n this.#root = null;\r\n root?.unmount();\r\n });\r\n }\r\n\r\n attributeChangedCallback(): void {\r\n this.#render();\r\n }\r\n\r\n // ── internals ──────────────────────────────────────────────────────────────\r\n #attach(): void {\r\n const phone = this.#softphone;\r\n if (!phone || this.#unsubscribe.length) return; // already subscribed — never double-subscribe\r\n\r\n // Mirror engine events out as CustomEvents so a non-React host can react to calls without\r\n // touching the JS API. They bubble + compose so they escape the shadow root.\r\n this.#unsubscribe = [\r\n phone.on(SoftphoneEvent.StateChanged, ({ state }) => this.#emit(EVENTS.stateChanged, { state })),\r\n phone.on(SoftphoneEvent.IncomingCall, (call: Call) =>\r\n this.#emit(EVENTS.incomingCall, { number: call.remote.number, name: call.remote.displayName }),\r\n ),\r\n phone.on(SoftphoneEvent.ActiveCallChanged, ({ call }) => {\r\n if (!call) return;\r\n this.#emit(EVENTS.callStarted, { number: call.remote.number, direction: call.direction });\r\n const off = call.on(CallEvent.Ended, ({ reason }) => {\r\n off();\r\n this.#emit(EVENTS.callEnded, { number: call.remote.number, reason });\r\n });\r\n }),\r\n // `message` is deliberately the English developer string, not the Spanish the widget shows —\r\n // a host reading this is logging, and a log in the reader's language is worth more than one in\r\n // the caller's. `error.cause` is not forwarded: it holds live objects (a DOM error, a JsSIP\r\n // response) that do not survive a CustomEvent boundary usefully.\r\n phone.on(SoftphoneEvent.Error, (error) =>\r\n this.#emit(EVENTS.error, { code: error.code, fatal: error.fatal, message: error.message }),\r\n ),\r\n phone.on(SoftphoneEvent.LeaderChanged, ({ isLeader }) =>\r\n this.#emit(EVENTS.leaderChanged, { isLeader }),\r\n ),\r\n // Payload is already exactly `TransferOutcomeEvent` — no reshaping needed, unlike the events above.\r\n phone.on(SoftphoneEvent.TransferOutcome, (payload) => this.#emit(EVENTS.transferOutcome, payload)),\r\n ];\r\n }\r\n\r\n #detach(): void {\r\n for (const off of this.#unsubscribe) off();\r\n this.#unsubscribe = [];\r\n }\r\n\r\n /**\r\n * Read a tri-state boolean attribute: `true`, `false`, or \"not stated\".\r\n *\r\n * **Not an HTML boolean attribute**, deliberately. `disabled`-style presence-means-true cannot\r\n * express the only thing anyone needs here: both flags default to ON, so the useful instruction is\r\n * `sounds=\"false\"`. This follows `draggable`/`contenteditable` instead — enumerated, value-carrying.\r\n *\r\n * An unrecognised value returns undefined and so falls back to the default, which for both of these\r\n * is the safe direction: a typo leaves the mic gate and call audio ON rather than silently\r\n * shipping a dialer that cannot be heard.\r\n */\r\n #boolAttr(name: string): boolean | undefined {\r\n const raw = this.getAttribute(name);\r\n if (raw === null) return undefined;\r\n const value = raw.trim().toLowerCase();\r\n if (value === 'false') return false;\r\n // `''` is bare presence (`<coventia-softphone sounds>`), which reads as true to anyone.\r\n if (value === 'true' || value === '') return true;\r\n return undefined;\r\n }\r\n\r\n /** `bubbles` + `composed` are what let these escape the shadow root at all — see the file header. */\r\n #emit<K extends keyof SoftphoneElementEventMap>(type: K, detail: DetailOf<K>): void {\r\n this.dispatchEvent(new CustomEvent(type, { detail, bubbles: true, composed: true }));\r\n }\r\n\r\n #render(): void {\r\n if (!this.isConnected || !this.#softphone) return;\r\n this.#root ??= createRoot(this.#mount);\r\n\r\n const attrTheme = this.getAttribute('theme') as SoftphoneTheme | null;\r\n /*\r\n * The `config` PROPERTY wins over the attribute, for all three. A host that sets both has a\r\n * build step and a JS object; the attribute is the fallback for hosts that have neither, so it\r\n * must not override the more specific source. `??` and not `||`, so `false` is honoured.\r\n */\r\n const theme = this.#config.theme ?? attrTheme ?? 'system';\r\n const requireMic = this.#config.requireMic ?? this.#boolAttr('require-mic');\r\n const sounds = this.#config.sounds ?? this.#boolAttr('sounds');\r\n\r\n // Built as one typed object rather than inline conditional spreads: under\r\n // exactOptionalPropertyTypes the spreads widen the type and no createElement overload matches.\r\n const widgetProps: SoftphoneWidgetProps = {\r\n theme,\r\n ...(requireMic === undefined ? {} : { requireMic }),\r\n ...(sounds === undefined ? {} : { sounds }),\r\n ...(this.#config.contacts ? { contacts: this.#config.contacts } : {}),\r\n ...(this.#config.history ? { history: this.#config.history } : {}),\r\n ...(this.#config.contactAction ? { contactAction: this.#config.contactAction } : {}),\r\n ...(this.#config.incomingCallAction ? { incomingCallAction: this.#config.incomingCallAction } : {}),\r\n };\r\n\r\n this.#root.render(\r\n createElement(\r\n SoftphoneProvider,\r\n { softphone: this.#softphone, children: createElement(SoftphoneWidget, widgetProps) },\r\n ),\r\n );\r\n }\r\n}\r\n\r\n/** Register the element. Idempotent — a page may load the bundle more than once. */\r\nexport function defineSoftphoneElement(tagName = 'coventia-softphone'): void {\r\n if (typeof customElements === 'undefined') return; // SSR / non-browser — no-op\r\n if (customElements.get(tagName)) return;\r\n customElements.define(tagName, CoventiaSoftphoneElement);\r\n}\r\n\r\n// Auto-register for the `<script type=\"module\" src=\"…/element.js\">` case, which is the whole point\r\n// of the drop-in. Guarded so importing this module under SSR is still safe (SPEC §10.2).\r\ndefineSoftphoneElement();\r\n","import { createContext, useContext, type ReactNode } from 'react';\r\nimport type { Softphone } from '../core/softphone.js';\r\n\r\n/**\r\n * The provider takes an INSTANCE the host constructed — not config props.\r\n *\r\n * This is LiveKit's hard-won lesson (SPEC §5.1): they are deprecating their config-props\r\n * `<LiveKitRoom>` in favour of a provider that accepts an instance. Holding the `Softphone` above the\r\n * React tree lets the app own the connection, survive route changes and unmounts without dropping a\r\n * call, and unit-test the engine with no React at all. Config-props would rebuild the engine on\r\n * every prop change — catastrophic for something holding a live `RTCPeerConnection`.\r\n */\r\nconst SoftphoneContext = createContext<Softphone | null>(null);\r\n\r\nexport interface SoftphoneProviderProps {\r\n readonly softphone: Softphone;\r\n readonly children: ReactNode;\r\n}\r\n\r\nexport function SoftphoneProvider({ softphone, children }: SoftphoneProviderProps) {\r\n return <SoftphoneContext.Provider value={softphone}>{children}</SoftphoneContext.Provider>;\r\n}\r\n\r\n/** The `Softphone` instance from context. Stable — does not re-render on state changes. */\r\nexport function useSoftphone(): Softphone {\r\n const softphone = useContext(SoftphoneContext);\r\n if (!softphone) {\r\n throw new Error('useSoftphone() must be used within a <SoftphoneProvider>.');\r\n }\r\n return softphone;\r\n}\r\n","import { useState } from 'react';\r\nimport { Grid3x3, Users, Clock, Settings } from 'lucide-react';\r\nimport {\r\n useActiveCall,\r\n useIsLeader,\r\n useLastError,\r\n useSoftphone,\r\n useSoftphoneState,\r\n} from '../react/index.js';\r\nimport { Dialpad } from './views/Dialpad.js';\r\nimport { CallScreen } from './views/CallScreen.js';\r\nimport { ContactsTab } from './views/ContactsTab.js';\r\nimport { HistoryTab } from './views/HistoryTab.js';\r\nimport { SettingsTab } from './views/SettingsTab.js';\r\nimport { MicPrompt } from './permission/MicPermissionGate.js';\r\nimport { ErrorGate } from './permission/ErrorGate.js';\r\nimport { LeaderGate } from './permission/LeaderGate.js';\r\nimport { useCallOutcome } from './lib/useCallOutcome.js';\r\nimport { useMicPermission } from './permission/useMicPermission.js';\r\nimport { useCallAudio } from './audio/useCallAudio.js';\r\nimport { TransferNotices } from './notices/TransferNotices.js';\r\nimport { useTransferNotices } from './notices/useTransferNotices.js';\r\nimport type { SoftphoneWidgetProps } from './types.js';\r\n\r\ntype TabId = 'dialer' | 'contacts' | 'history' | 'settings';\r\n\r\n/**\r\n * The softphone widget (legacy ZadarmaWidget) — the drop-in call UI. Wrap it in a\r\n * `<SoftphoneProvider softphone={…}>` and that is all: it asks for the microphone ITSELF\r\n * (`requireMic`, on by default), so no integrator has to know that a phone needs one.\r\n *\r\n * When a call is live, the call screen takes the whole body and the tabs hide. Otherwise the tabbed\r\n * interface (Teclado / Contactos / Historial) shows. Contactos/Historial appear only when their data\r\n * source is provided — the widget stays useful as a bare dialer with no backend at all.\r\n */\r\nexport function SoftphoneWidget(props: SoftphoneWidgetProps) {\r\n const {\r\n contacts,\r\n history,\r\n contactAction,\r\n incomingCallAction,\r\n className,\r\n theme = 'system',\r\n requireMic = true,\r\n sounds = true,\r\n } = props;\r\n const softphone = useSoftphone();\r\n\r\n /*\r\n * The sources come from the SOFTPHONE, not from a prop.\r\n *\r\n * `createSoftphone({ coventia })` builds them once, because caller ID has to work when an INVITE\r\n * lands — which can be before any UI is mounted. Reading them back here means one instance and one\r\n * name cache, and a host never imports an adapter or repeats a config to wire the tabs.\r\n *\r\n * An explicit `contacts`/`history` prop still wins, for a host driving the UI from somewhere else.\r\n */\r\n const fallback = softphone.sources;\r\n const contactsSource = contacts ?? fallback?.contacts;\r\n const historySource = history ?? fallback?.history;\r\n const [tab, setTab] = useState<TabId>('dialer');\r\n const call = useActiveCall();\r\n const isLeader = useIsLeader();\r\n const softphoneState = useSoftphoneState();\r\n // `isLeader` alone cannot tell \"never started\" from \"started, currently a follower\" — both are\r\n // `isLeader === false`. `state === 'starting'` is the disambiguator: it now covers the whole\r\n // in-progress window, including waiting behind another tab (SPEC — `softphone-impl.ts#start()`,\r\n // `multi-tab-leader-election.md` §3.4). A phone that was simply never `start()`-ed must fall\r\n // through to the mic gate / dialer exactly as before this feature existed.\r\n const isFollower = !isLeader && softphoneState === 'starting';\r\n // Always called — hooks cannot be conditional — but ignored when the host opted out.\r\n const mic = useMicPermission();\r\n // The remote party, the ring, the ringback. Without it a connected call is silent.\r\n useCallAudio(sounds);\r\n const blocked = requireMic && mic.state !== 'ready';\r\n const fatal = useLastError();\r\n // Shared by the tab bar (below) and `TransferNotices`: both are lower-priority than whatever else\r\n // the widget might be showing, and both simply don't render — never hidden, never queued behind —\r\n // while a call, the mic gate, a fatal error, or another tab's leadership owns the screen instead.\r\n const screenIsFree = !call && !blocked && !fatal && !isFollower;\r\n // Held HERE, not in the dialpad: the outcome is raised as the call ends, which is the same moment\r\n // the dialpad remounts — it would be born into a remounting component and lost.\r\n const { outcome, clear: clearOutcome } = useCallOutcome();\r\n // Held HERE too, and for a stronger version of the same reason: an outcome for an EARLIER transfer\r\n // can arrive while the agent is on a brand new, unrelated call — `TransferNotices` below is only\r\n // ever RENDERED once the screen is free, but the SUBSCRIPTION must stay alive the whole time the\r\n // widget is mounted, or that outcome reaches nobody (`useTransferNotices`'s own comment).\r\n const { notices: transferNotices, dismiss: dismissTransferNotice } = useTransferNotices();\r\n\r\n /*\r\n * `stop()` then `start()`, not `start()` alone — `start()` early-returns once the softphone has\r\n * been started, so on its own it would be a button that visibly does nothing.\r\n *\r\n * The round trip is also what makes recovery observable: it tears the signal channel down and\r\n * builds it again with fresh credentials, producing a real `offline → online` transition, which is\r\n * what clears `lastError` and takes the gate away. If it fails the same way, the error is\r\n * re-emitted and the gate returns — which is the honest outcome.\r\n */\r\n const retry = () => {\r\n void (async () => {\r\n try {\r\n await softphone.stop();\r\n await softphone.start();\r\n } catch {\r\n // Already reported through the error channel; the gate simply stays.\r\n }\r\n })();\r\n };\r\n\r\n const tabs = [\r\n { id: 'dialer' as const, icon: Grid3x3, label: 'Teclado', show: true },\r\n { id: 'contacts' as const, icon: Users, label: 'Contactos', show: !!contactsSource },\r\n { id: 'history' as const, icon: Clock, label: 'Historial', show: !!historySource },\r\n // Unlike Contactos/Historial, needs no host-supplied source — a microphone and a speaker are not\r\n // optional parts of a phone, so this is never conditionally hidden.\r\n { id: 'settings' as const, icon: Settings, label: 'Ajustes', show: true },\r\n ].filter((t) => t.show);\r\n\r\n return (\r\n <div\r\n className={className ? `cv-softphone ${className}` : 'cv-softphone'}\r\n // 'system' omits the attribute entirely, letting the prefers-color-scheme media query decide.\r\n {...(theme === 'system' ? {} : { 'data-cv-theme': theme })}\r\n >\r\n {/*\r\n A sibling of `.cv-body`, not inside it: a persistent notice must never scroll away with a long\r\n Contactos/Historial list, and must stay put across every tab. It OVERLAYS `.cv-body` (CSS —\r\n `position: absolute`) rather than pushing it down, so the widget's overall height never changes\r\n just because a notice appeared or was dismissed. `screenIsFree` gates it the same way it gates\r\n the tab bar below — it simply doesn't render, rather than queuing, while a call, the mic gate, a\r\n fatal error or another tab's leadership needs the screen instead.\r\n */}\r\n {screenIsFree ? (\r\n <TransferNotices notices={transferNotices} dismiss={dismissTransferNotice} />\r\n ) : null}\r\n <div className=\"cv-body\">\r\n {/*\r\n Order matters. `isFollower` comes FIRST, ahead even of the mic gate: another open tab\r\n holding this extension is a structural reason this tab cannot call, and asking for\r\n microphone permission somewhere that can never place or receive a call would be pure\r\n friction (`multi-tab-leader-election.md`). It clears on its own — no user action here helps\r\n it along. (A phone that was simply never `start()`-ed is NOT a follower — `isFollower`\r\n requires `state === 'starting'` too — so it falls through to the checks below, unchanged.)\r\n\r\n The mic gate comes next because it IS the precondition once leadership is not in question: no\r\n microphone means no call regardless of anything else, and it is the one thing here the user\r\n can complete right now. A fatal error outlives it — `lastError` persists — so nothing is lost\r\n by showing the actionable thing first.\r\n\r\n The call screen outranks the error gate, which is how \"suppress during a call\" is enforced:\r\n a live call is the highest-value state the widget has and nothing may cover it.\r\n */}\r\n {isFollower ? (\r\n <LeaderGate />\r\n ) : blocked ? (\r\n <MicPrompt state={mic.state} onRequest={() => void mic.request()} />\r\n ) : call ? (\r\n <CallScreen call={call} keyTones={sounds} {...(incomingCallAction ? { incomingCallAction } : {})} />\r\n ) : fatal ? (\r\n <ErrorGate error={fatal} onRetry={retry} />\r\n ) : tab === 'contacts' && contactsSource ? (\r\n <ContactsTab source={contactsSource} {...(contactAction ? { contactAction } : {})} />\r\n ) : tab === 'history' && historySource ? (\r\n <HistoryTab source={historySource} />\r\n ) : tab === 'settings' ? (\r\n <SettingsTab />\r\n ) : (\r\n <Dialpad outcome={outcome} onIntent={clearOutcome} keyTones={sounds} />\r\n )}\r\n </div>\r\n\r\n {/* No tabs while the mic is pending: Contactos and Historial would work, but offering them\r\n implies the phone is usable, and it is not until the mic is granted. Same reasoning extends\r\n to `isFollower` — a follower tab has nothing behind any of these tabs to be usable at all. */}\r\n {screenIsFree ? (\r\n <div className=\"cv-tabs\" role=\"tablist\">\r\n {tabs.map(({ id, icon: Icon, label }) => (\r\n <button\r\n key={id}\r\n role=\"tab\"\r\n aria-selected={tab === id}\r\n className=\"cv-tab\"\r\n onClick={() => setTab(id)}\r\n >\r\n <Icon size={20} />\r\n <span>{label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n })\n .join(' ');\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) => {\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props,\n }),\n );\n\n Component.displayName = `${iconName}`;\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeftRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeftRight = createLucideIcon('ArrowLeftRight', [\n ['path', { d: 'M8 3 4 7l4 4', key: '9rb6wj' }],\n ['path', { d: 'M4 7h16', key: '6tx8e3' }],\n ['path', { d: 'm16 21 4-4-4-4', key: 'siv7j2' }],\n ['path', { d: 'M20 17H4', key: 'h6l3hr' }],\n]);\n\nexport default ArrowLeftRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeft = createLucideIcon('ArrowLeft', [\n ['path', { d: 'm12 19-7-7 7-7', key: '1l729n' }],\n ['path', { d: 'M19 12H5', key: 'x3x0zl' }],\n]);\n\nexport default ArrowLeft;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowRight = createLucideIcon('ArrowRight', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'm12 5 7 7-7 7', key: 'xquz4c' }],\n]);\n\nexport default ArrowRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CalendarClock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/calendar-clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CalendarClock = createLucideIcon('CalendarClock', [\n ['path', { d: 'M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5', key: '1osxxc' }],\n ['path', { d: 'M16 2v4', key: '4m81vk' }],\n ['path', { d: 'M8 2v4', key: '1cmpym' }],\n ['path', { d: 'M3 10h5', key: 'r794hk' }],\n ['path', { d: 'M17.5 17.5 16 16.3V14', key: 'akvzfd' }],\n ['circle', { cx: '16', cy: '16', r: '6', key: 'qoo3c4' }],\n]);\n\nexport default CalendarClock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('Check', [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]]);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('ChevronDown', [\n ['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }],\n]);\n\nexport default ChevronDown;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('ChevronRight', [\n ['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }],\n]);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CircleHelp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-help\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleHelp = createLucideIcon('CircleHelp', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3', key: '1u773s' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default CircleHelp;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Clock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Clock = createLucideIcon('Clock', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['polyline', { points: '12 6 12 12 16 14', key: '68esgv' }],\n]);\n\nexport default Clock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Delete\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/delete\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Delete = createLucideIcon('Delete', [\n [\n 'path',\n {\n d: 'M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z',\n key: '1yo7s0',\n },\n ],\n ['path', { d: 'm12 9 6 6', key: 'anjzzh' }],\n ['path', { d: 'm18 9-6 6', key: '1fp51s' }],\n]);\n\nexport default Delete;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('ExternalLink', [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n]);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Grid3x3\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/grid-3x3\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Grid3x3 = createLucideIcon('Grid3x3', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n ['path', { d: 'M3 9h18', key: '1pudct' }],\n ['path', { d: 'M3 15h18', key: '5xshup' }],\n ['path', { d: 'M9 3v18', key: 'fh3hqa' }],\n ['path', { d: 'M15 3v18', key: '14nvp0' }],\n]);\n\nexport default Grid3x3;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Hash\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/hash\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Hash = createLucideIcon('Hash', [\n ['line', { x1: '4', x2: '20', y1: '9', y2: '9', key: '4lhtct' }],\n ['line', { x1: '4', x2: '20', y1: '15', y2: '15', key: 'vyu0kd' }],\n ['line', { x1: '10', x2: '8', y1: '3', y2: '21', key: '1ggp8o' }],\n ['line', { x1: '16', x2: '14', y1: '3', y2: '21', key: 'weycgp' }],\n]);\n\nexport default Hash;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Headphones\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/headphones\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Headphones = createLucideIcon('Headphones', [\n [\n 'path',\n {\n d: 'M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3',\n key: '1xhozi',\n },\n ],\n]);\n\nexport default Headphones;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name LoaderCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LoaderCircle = createLucideIcon('LoaderCircle', [\n ['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }],\n]);\n\nexport default LoaderCircle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MicOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/mic-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MicOff = createLucideIcon('MicOff', [\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22', key: 'a6p6uj' }],\n ['path', { d: 'M18.89 13.23A7.12 7.12 0 0 0 19 12v-2', key: '80xlxr' }],\n ['path', { d: 'M5 10v2a7 7 0 0 0 12 5', key: 'p2k8kg' }],\n ['path', { d: 'M15 9.34V5a3 3 0 0 0-5.68-1.33', key: '1gzdoj' }],\n ['path', { d: 'M9 9v3a3 3 0 0 0 5.12 2.12', key: 'r2i35w' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22', key: 'x3vr5v' }],\n]);\n\nexport default MicOff;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Mic\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/mic\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Mic = createLucideIcon('Mic', [\n ['path', { d: 'M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z', key: '131961' }],\n ['path', { d: 'M19 10v2a7 7 0 0 1-14 0v-2', key: '1vc78b' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22', key: 'x3vr5v' }],\n]);\n\nexport default Mic;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MonitorSmartphone\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/monitor-smartphone\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MonitorSmartphone = createLucideIcon('MonitorSmartphone', [\n ['path', { d: 'M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8', key: '10dyio' }],\n ['path', { d: 'M10 19v-3.96 3.15', key: '1irgej' }],\n ['path', { d: 'M7 19h5', key: 'qswx4l' }],\n ['rect', { width: '6', height: '10', x: '16', y: '12', rx: '2', key: '1egngj' }],\n]);\n\nexport default MonitorSmartphone;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pause\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/pause\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pause = createLucideIcon('Pause', [\n ['rect', { x: '14', y: '4', width: '4', height: '16', rx: '1', key: 'zuxfzm' }],\n ['rect', { x: '6', y: '4', width: '4', height: '16', rx: '1', key: '1okwgv' }],\n]);\n\nexport default Pause;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneIncoming\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-incoming\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneIncoming = createLucideIcon('PhoneIncoming', [\n ['polyline', { points: '16 2 16 8 22 8', key: '1ygljm' }],\n ['line', { x1: '22', x2: '16', y1: '2', y2: '8', key: '1xzwqn' }],\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default PhoneIncoming;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneMissed\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-missed\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneMissed = createLucideIcon('PhoneMissed', [\n ['line', { x1: '22', x2: '16', y1: '2', y2: '8', key: '1xzwqn' }],\n ['line', { x1: '16', x2: '22', y1: '2', y2: '8', key: '13zxdn' }],\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default PhoneMissed;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneOff = createLucideIcon('PhoneOff', [\n [\n 'path',\n {\n d: 'M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91',\n key: 'z86iuo',\n },\n ],\n ['line', { x1: '22', x2: '2', y1: '2', y2: '22', key: '11kh81' }],\n]);\n\nexport default PhoneOff;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PhoneOutgoing\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone-outgoing\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PhoneOutgoing = createLucideIcon('PhoneOutgoing', [\n ['polyline', { points: '22 8 22 2 16 2', key: '1g204g' }],\n ['line', { x1: '16', x2: '22', y1: '8', y2: '2', key: '1ggias' }],\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default PhoneOutgoing;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Phone\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/phone\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Phone = createLucideIcon('Phone', [\n [\n 'path',\n {\n d: 'M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z',\n key: 'foiqr5',\n },\n ],\n]);\n\nexport default Phone;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('Play', [\n ['polygon', { points: '6 3 20 12 6 21 6 3', key: '1oa8hb' }],\n]);\n\nexport default Play;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('Search', [\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ['path', { d: 'm21 21-4.3-4.3', key: '1qie3q' }],\n]);\n\nexport default Search;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Settings\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/settings\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Settings = createLucideIcon('Settings', [\n [\n 'path',\n {\n d: 'M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z',\n key: '1qme2f',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n]);\n\nexport default Settings;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Timer\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/timer\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Timer = createLucideIcon('Timer', [\n ['line', { x1: '10', x2: '14', y1: '2', y2: '2', key: '14vaq8' }],\n ['line', { x1: '12', x2: '15', y1: '14', y2: '11', key: '17fdiu' }],\n ['circle', { cx: '12', cy: '14', r: '8', key: '1e1u0o' }],\n]);\n\nexport default Timer;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TriangleAlert = createLucideIcon('TriangleAlert', [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default TriangleAlert;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name User\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/user\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst User = createLucideIcon('User', [\n ['path', { d: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2', key: '975kel' }],\n ['circle', { cx: '12', cy: '7', r: '4', key: '17ys0d' }],\n]);\n\nexport default User;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Users\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/users\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Users = createLucideIcon('Users', [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2', key: '1yyitq' }],\n ['circle', { cx: '9', cy: '7', r: '4', key: 'nufk8' }],\n ['path', { d: 'M22 21v-2a4 4 0 0 0-3-3.87', key: 'kshegd' }],\n ['path', { d: 'M16 3.13a4 4 0 0 1 0 7.75', key: '1da9ce' }],\n]);\n\nexport default Users;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('X', [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n]);\n\nexport default X;\n","// Built-in, no shim: the peer floor is React 18 (SPEC §2.7), which ships useSyncExternalStore.\r\nimport { useCallback, useRef, useSyncExternalStore } from 'react';\r\nimport { useSoftphone } from './context.js';\r\nimport { SoftphoneEvent, CallEvent } from '../core/events.js';\r\nimport type { Call, CallState } from '../core/call.js';\r\nimport type { PresenceEntry, RemoteParty, SoftphoneState } from '../core/types.js';\r\nimport type { AudioDevices } from '../core/softphone.js';\r\nimport type { FatalSoftphoneError } from '../core/errors.js';\r\n\r\n/** Reactive softphone lifecycle state (`stopped` → `online` → …). */\r\n/**\r\n * The reason the phone cannot currently be used, or `null`.\r\n *\r\n * Reads `softphone.lastError`, which is STATE rather than only an event — the widget is usually\r\n * opened *after* something broke, and a listener mounted at that point would have missed the event\r\n * entirely and rendered a dialpad with no explanation.\r\n *\r\n * Re-reads on both channels because both can change it: `Error` sets it, and `StateChanged` clears it\r\n * on reaching `online`. Subscribing to only the first would leave a stale gate on screen after the\r\n * phone recovered.\r\n */\r\nexport function useLastError(): FatalSoftphoneError | null {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback(\r\n (cb: () => void) => {\r\n const offError = phone.on(SoftphoneEvent.Error, () => cb());\r\n const offState = phone.on(SoftphoneEvent.StateChanged, () => cb());\r\n return () => {\r\n offError();\r\n offState();\r\n };\r\n },\r\n [phone],\r\n ),\r\n useCallback(() => phone.lastError, [phone]),\r\n );\r\n}\r\n\r\nexport function useSoftphoneState(): SoftphoneState {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback((cb: () => void) => phone.on(SoftphoneEvent.StateChanged, () => cb()), [phone]),\r\n useCallback(() => phone.state, [phone]),\r\n );\r\n}\r\n\r\n/**\r\n * Whether THIS tab is the one allowed to be reachable (`multi-tab-leader-election.md`). `false` by\r\n * default and while waiting for another open tab to release it — show your own \"active in another\r\n * tab\" state for that duration; the `/ui` widget already does.\r\n */\r\nexport function useIsLeader(): boolean {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback((cb: () => void) => phone.on(SoftphoneEvent.LeaderChanged, () => cb()), [phone]),\r\n useCallback(() => phone.isLeader, [phone]),\r\n );\r\n}\r\n\r\n/**\r\n * The current call, or null. Re-renders when it changes — inbound, outbound, or ended.\r\n *\r\n * `phone.activeCall` returns a stable reference for a given call, so it is a safe snapshot.\r\n */\r\nexport function useActiveCall(): Call | null {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback((cb: () => void) => phone.on(SoftphoneEvent.ActiveCallChanged, () => cb()), [phone]),\r\n useCallback(() => phone.activeCall, [phone]),\r\n );\r\n}\r\n\r\n/**\r\n * The live agent-presence list (`phone.presence`, Phase B) — reactive on `SoftphoneEvent.\r\n * PresenceChanged`. `active` gates the SUBSCRIPTION only, not the underlying connection: the socket\r\n * itself stays governed entirely by `online && isLeader` inside the softphone (spec's own\r\n * always-connected decision), so passing `false` here does not close it — it only stops this\r\n * particular component from re-rendering on every update while it has no reason to care, e.g. the\r\n * transfer step being closed (spec §4.5: \"subscribe when the step opens... unsubscribe when it\r\n * closes\"). `phone.presence` is still read fresh on every call, so flipping `active` back to `true`\r\n * never shows a stale snapshot.\r\n */\r\nexport function usePresence(active: boolean): readonly PresenceEntry[] {\r\n const phone = useSoftphone();\r\n return useSyncExternalStore(\r\n useCallback(\r\n (cb: () => void) => {\r\n if (!active) return () => {};\r\n return phone.on(SoftphoneEvent.PresenceChanged, () => cb());\r\n },\r\n [phone, active],\r\n ),\r\n useCallback(() => phone.presence, [phone]),\r\n );\r\n}\r\n\r\n/** An immutable snapshot of a call's reactive fields. */\r\nexport interface CallView {\r\n readonly state: CallState;\r\n readonly isMuted: boolean;\r\n readonly isOnHold: boolean;\r\n readonly remote: RemoteParty;\r\n readonly remoteStream: MediaStream | null;\r\n readonly answeredAt: Date | null;\r\n}\r\n\r\nconst CALL_EVENTS: readonly CallEvent[] = [\r\n CallEvent.StateChanged,\r\n CallEvent.Muted,\r\n CallEvent.Held,\r\n CallEvent.Unheld,\r\n CallEvent.RemotePartyUpdated,\r\n CallEvent.RemoteStream,\r\n CallEvent.Ended,\r\n];\r\n\r\n/**\r\n * Reactive view of a specific call. Re-renders only when one of the call's own events fires — no\r\n * polling, no re-render storms.\r\n *\r\n * The snapshot is CACHED and invalidated only on an event, so `useSyncExternalStore` gets a stable\r\n * reference between changes (returning a fresh object every render would infinite-loop).\r\n */\r\nexport function useCall(call: Call | null): CallView | null {\r\n const cache = useRef<{ call: Call; view: CallView } | null>(null);\r\n\r\n const subscribe = useCallback(\r\n (cb: () => void) => {\r\n if (!call) return () => {};\r\n const unsubs = CALL_EVENTS.map((event) =>\r\n call.on(event, () => {\r\n cache.current = null; // invalidate; getSnapshot rebuilds on the next read\r\n cb();\r\n }),\r\n );\r\n return () => {\r\n for (const off of unsubs) off();\r\n };\r\n },\r\n [call],\r\n );\r\n\r\n const getSnapshot = useCallback((): CallView | null => {\r\n if (!call) return null;\r\n if (cache.current?.call === call) return cache.current.view;\r\n const view: CallView = {\r\n state: call.state,\r\n isMuted: call.isMuted,\r\n isOnHold: call.isOnHold,\r\n remote: call.remote,\r\n remoteStream: call.remoteStream,\r\n answeredAt: call.answeredAt,\r\n };\r\n cache.current = { call, view };\r\n return view;\r\n }, [call]);\r\n\r\n return useSyncExternalStore(subscribe, getSnapshot);\r\n}\r\n\r\n/**\r\n * The audio device surface (`phone.audio`) — reactive. Re-renders on `SoftphoneEvent.DeviceChange`: a\r\n * device plugged/unplugged, or a selection changed (SPEC §7 Phase 2).\r\n *\r\n * The snapshot is CACHED and invalidated only on that event, same reasoning as `useCall`'s own\r\n * `CallView`: `phone.audio` is ONE stable object whose fields mutate in place, so returning it\r\n * directly would never change by reference and `useSyncExternalStore` would never re-render. A fresh\r\n * object, rebuilt only when something actually changed, is what makes this reactive without polling.\r\n */\r\nexport function useDevices(): AudioDevices {\r\n const phone = useSoftphone();\r\n const cache = useRef<{ audio: AudioDevices; view: AudioDevices } | null>(null);\r\n\r\n const subscribe = useCallback(\r\n (cb: () => void) =>\r\n phone.on(SoftphoneEvent.DeviceChange, () => {\r\n cache.current = null; // invalidate; getSnapshot rebuilds on the next read\r\n cb();\r\n }),\r\n [phone],\r\n );\r\n\r\n const getSnapshot = useCallback((): AudioDevices => {\r\n const audio = phone.audio;\r\n if (cache.current?.audio === audio) return cache.current.view;\r\n const view: AudioDevices = {\r\n inputs: audio.inputs,\r\n outputs: audio.outputs,\r\n currentInputId: audio.currentInputId,\r\n currentOutputId: audio.currentOutputId,\r\n canSelectOutput: audio.canSelectOutput,\r\n setInput: (deviceId) => audio.setInput(deviceId),\r\n setOutput: (deviceId) => audio.setOutput(deviceId),\r\n setRingtoneOutput: (deviceId) => audio.setRingtoneOutput(deviceId),\r\n refresh: () => audio.refresh(),\r\n };\r\n cache.current = { audio, view };\r\n return view;\r\n }, [phone]);\r\n\r\n return useSyncExternalStore(subscribe, getSnapshot);\r\n}\r\n","import { useLayoutEffect, useRef, useState } from 'react';\r\nimport { Phone, Delete } from 'lucide-react';\r\nimport { useSoftphone, useSoftphoneState } from '../../react/index.js';\r\nimport { CountryPicker } from '../dialing/CountryPicker.js';\r\nimport { DEFAULT_COUNTRY, toE164 } from '../dialing/countries.js';\r\nimport { caretAfterDigits, digitsBeforeCaret, useNumberFormatter } from '../dialing/format-number.js';\r\nimport { KEYPAD_KEYS } from '../dialing/keys.js';\r\nimport { playKeyTone } from '../audio/audio.js';\r\n\r\n/**\r\n * `*` and `#` render here but are **not dialable**: `toE164` keeps digits only, so a number carrying\r\n * them would lose them silently at dial time and the display would have lied.\r\n *\r\n * The CRM has the same keys and the same rule (`IdleView.setNational` runs `replace(/\\D/g,'')`, so a\r\n * `*` press is swallowed before it is ever shown). This states it instead of leaving it to a regex\r\n * three functions away: they are DTMF tones for an ACTIVE call (CallScreen's own keypad), not part of\r\n * a number.\r\n */\r\nconst NOT_DIALABLE = new Set(['*', '#']);\r\n\r\n/**\r\n * The keypad view (legacy IdleView). Strings are Spanish (SPEC §2.4).\r\n *\r\n * Layout is three flex rows — head (fixed) / keypad (flex:1) / foot (fixed) — so the keypad absorbs\r\n * whatever height is left. Sizing keys by aspect-ratio instead would overflow the shell and push the\r\n * call button under the tab bar.\r\n */\r\nexport interface DialpadProps {\r\n /** The outcome of the last attempt — \"Sin respuesta\", \"Llamada rechazada\". Non-fatal only. */\r\n readonly outcome?: { readonly code: string; readonly text: string } | null;\r\n /** Called on any action that supersedes that outcome: a digit, a backspace, a dial. */\r\n readonly onIntent?: () => void;\r\n /**\r\n * Play a key tone when a digit is pressed. **On by default**; `SoftphoneWidget` passes its own\r\n * `sounds` flag, so a host that silences the widget silences this too.\r\n */\r\n readonly keyTones?: boolean;\r\n}\r\n\r\nexport function Dialpad({ outcome = null, onIntent, keyTones = true }: DialpadProps = {}) {\r\n const softphone = useSoftphone();\r\n const state = useSoftphoneState();\r\n // The NATIONAL number, as the CRM's IdleView held it: the prefix lives in the chip, so the user\r\n // types what they would read off a business card. `toE164` composes the two at dial time.\r\n //\r\n // State holds RAW DIGITS; the input displays them GROUPED. Keeping the raw digits as the source of\r\n // truth means the separators are pure presentation — nothing downstream ever has to un-format, and\r\n // `toE164` sees exactly what was typed.\r\n const [value, setValue] = useState('');\r\n const [country, setCountry] = useState(DEFAULT_COUNTRY);\r\n const format = useNumberFormatter();\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const caretRef = useRef<number | null>(null);\r\n\r\n const display = format(country, value);\r\n const target = toE164(country, value);\r\n const canCall = state === 'online' && target.length > 1;\r\n\r\n // Restore the caret AFTER React paints the regrouped string, or inserting a digit mid-number would\r\n // throw it to the end and the next keystroke would land in the wrong place. Layout effect, not\r\n // effect: the caret must not be visibly wrong for a frame.\r\n useLayoutEffect(() => {\r\n const caret = caretRef.current;\r\n if (caret === null || !inputRef.current) return;\r\n caretRef.current = null;\r\n const pos = caretAfterDigits(display, caret);\r\n inputRef.current.setSelectionRange(pos, pos);\r\n }, [display]);\r\n\r\n const append = (key: string) => {\r\n onIntent?.();\r\n setValue((v) => v + key);\r\n // Only for a key that did something: `*` and `#` are inert here (see `NOT_DIALABLE`) and never\r\n // reach this, because a tone on a key that does nothing would tell the user it worked. Backspace\r\n // is silent too — it is not a keypad key and has no DTMF tone.\r\n if (keyTones) playKeyTone(key);\r\n };\r\n const backspace = () => {\r\n onIntent?.();\r\n setValue((v) => v.slice(0, -1));\r\n };\r\n const call = () => {\r\n if (!canCall) return;\r\n onIntent?.();\r\n void softphone.call(target);\r\n };\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n {/*\r\n The prefix sits on its OWN row, above the number — as the CRM's IdleView always did.\r\n\r\n Sharing one line reads fine at 340px and starves the number at 310: the chip and the erase\r\n button each take a fixed ~36-70px out of the middle, so \"Número\" gets whatever is left, and a\r\n formatted international number (`+34 600 11 12 22`) is exactly when there is least of it. The\r\n number is the content; the prefix is a setting you touch once a week. Give the content the\r\n full width.\r\n */}\r\n <div className=\"cv-dial-prefix\">\r\n <CountryPicker value={country} onChange={setCountry} />\r\n </div>\r\n\r\n <div className=\"cv-dial-head\">\r\n {/* Mirrors the erase button so the number stays optically centred. */}\r\n <span className=\"cv-dial-side\" aria-hidden />\r\n <input\r\n ref={inputRef}\r\n className=\"cv-display\"\r\n value={display}\r\n onChange={(e) => {\r\n onIntent?.();\r\n // Remember the caret in DIGITS before reformatting — see `caretAfterDigits`.\r\n caretRef.current = digitsBeforeCaret(e.target.value, e.target.selectionStart ?? 0);\r\n // Digits and a leading `+` only, matching what `toE164` will actually honour. This used\r\n // to accept `*#`, so a typed `*` displayed fine and then vanished at dial time.\r\n setValue(e.target.value.replace(/[^\\d+]/g, ''));\r\n }}\r\n onKeyDown={(e) => e.key === 'Enter' && call()}\r\n placeholder=\"Número\"\r\n aria-label=\"Número a marcar\"\r\n inputMode=\"tel\"\r\n />\r\n <button\r\n type=\"button\"\r\n className=\"cv-dial-side\"\r\n data-hidden={value.length === 0}\r\n onClick={backspace}\r\n aria-label=\"Borrar\"\r\n >\r\n <Delete size={19} />\r\n </button>\r\n </div>\r\n\r\n {/*\r\n What happened to the last attempt, under the number it was dialled from. Muted and inline\r\n rather than a banner: the phone still works, so nothing here should block or alarm.\r\n\r\n `role=\"status\"` and not `alert` — an alert interrupts a screen reader mid-sentence, and\r\n \"Sin respuesta\" is not worth interrupting for. Always rendered so the region exists before the\r\n text arrives; an aria-live region inserted at the same moment as its content is not announced.\r\n */}\r\n <p className=\"cv-dial-outcome\" role=\"status\" part=\"error\" data-shown={outcome !== null}>\r\n {outcome?.text ?? ''}\r\n </p>\r\n\r\n <div className=\"cv-keypad\">\r\n {KEYPAD_KEYS.map(([key, letters]) => {\r\n const dialable = !NOT_DIALABLE.has(key);\r\n return (\r\n <button\r\n key={key}\r\n type=\"button\"\r\n className=\"cv-key\"\r\n data-dialable={dialable}\r\n onClick={() => dialable && append(key)}\r\n aria-disabled={!dialable}\r\n // Not `disabled`: the key must stay in the grid and stay legible. It does nothing here\r\n // because `*`/`#` are DTMF for a live call, not digits in a number.\r\n title={dialable ? undefined : 'Solo disponible durante una llamada'}\r\n >\r\n <b>{key}</b>\r\n {letters ? <small>{letters}</small> : null}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n\r\n <div className=\"cv-dial-foot\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--answer\"\r\n onClick={call}\r\n disabled={!canCall}\r\n aria-label=\"Llamar\"\r\n part=\"call-button\"\r\n >\r\n <Phone size={26} />\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useEffect, useMemo, useRef, useState, type ComponentType } from 'react';\r\nimport { Check, ChevronDown } from 'lucide-react';\r\nimport { COUNTRIES, DIAL_CODES, countryName } from './countries.js';\r\n\r\ntype FlagSet = Readonly<Record<string, ComponentType<{ className?: string }> | undefined>>;\r\n\r\n/**\r\n * Real SVG flags, fetched once, on nobody's critical path.\r\n *\r\n * All 245 are **40 kB brotli** and cannot tree-shake (the picker looks them up by code), which is a\r\n * lot to put in front of every consumer for a chip most never open. Named imports shake to ~350 B\r\n * each, so this is the one place the cost is unavoidable — and the one place it is easy to defer.\r\n *\r\n * Module-level, not per component: the chip and 245 rows share one import and one chunk. tsup emits\r\n * it as a relative chunk, so `/element` stays self-contained (`verify-static` walks relative imports)\r\n * and a CDN `<script type=\"module\">` resolves it fine.\r\n */\r\nlet FLAGS: FlagSet | null = null;\r\nlet flagsPromise: Promise<FlagSet> | null = null;\r\n\r\nfunction loadFlags(): Promise<FlagSet> {\r\n flagsPromise ??= import('country-flag-icons/react/3x2')\r\n .then((m) => (FLAGS = m as FlagSet))\r\n .catch(() => (FLAGS = {})); // offline / blocked: keep the plates, never break the dialer\r\n return flagsPromise;\r\n}\r\n\r\nfunction useFlags(): FlagSet | null {\r\n const [flags, setFlags] = useState<FlagSet | null>(FLAGS);\r\n useEffect(() => {\r\n if (flags) return;\r\n let alive = true;\r\n void loadFlags().then((f) => {\r\n if (alive) setFlags(f);\r\n });\r\n return () => {\r\n alive = false;\r\n };\r\n }, [flags]);\r\n return flags;\r\n}\r\n\r\n/**\r\n * The country mark: a flag, or the ISO code set into a plate.\r\n *\r\n * **Both are designed states in one 20×14 box** — a flag's own 3:2 — so the chip and every row keep\r\n * their rhythm regardless of which is showing. Nothing reflows when the flags arrive.\r\n *\r\n * The plate is the LOADING state (and the offline state), not a fallback. That distinction is the\r\n * whole design: there is no flash of something broken, only a designed plate becoming a designed flag\r\n * once, on the first widget of the session.\r\n */\r\nfunction CountryMark({ code }: Readonly<{ code: string }>) {\r\n const flags = useFlags();\r\n const Flag = flags?.[code];\r\n return (\r\n <span className=\"cv-mark\" data-plate={!Flag} aria-hidden part=\"country-mark\">\r\n {Flag ? <Flag className=\"cv-mark-svg\" /> : code}\r\n </span>\r\n );\r\n}\r\n\r\n/**\r\n * The prefix chip: flag + dial code, opening a searchable country list.\r\n *\r\n * Own combobox — no `cmdk`, no Radix `Popover`, no `ScrollArea` (S7 dropped those with the rest of\r\n * shadcn). It is a `<button>` and a positioned `<div>`, which is all the CRM's version was underneath.\r\n *\r\n * Search matches the localised NAME, the ISO code, and the dial code, so \"esp\", \"ES\" and \"+34\" all\r\n * find Spain — the CRM's `CommandItem value={`${name} ${code} +${calling}`}` did the same thing, and\r\n * it is the difference between a picker you can use and one you scroll for twenty seconds.\r\n */\r\nexport function CountryPicker({\r\n value,\r\n onChange,\r\n}: Readonly<{ value: string; onChange: (code: string) => void }>) {\r\n const [open, setOpen] = useState(false);\r\n const [query, setQuery] = useState('');\r\n const rootRef = useRef<HTMLDivElement>(null);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const results = useMemo(() => {\r\n const q = query.trim().toLowerCase().replace(/^\\+/, '');\r\n if (!q) return COUNTRIES;\r\n return COUNTRIES.filter(\r\n (c) =>\r\n c.name.toLowerCase().includes(q) ||\r\n c.code.toLowerCase().includes(q) ||\r\n String(c.dial).startsWith(q),\r\n );\r\n }, [query]);\r\n\r\n // Close on outside click / Escape. Deliberately on the SHADOW ROOT's node when there is one:\r\n // inside a shadow tree, `document` click targets are retargeted to the host, so `contains()`\r\n // against the host would report every internal click as \"outside\" and the list would never open.\r\n useEffect(() => {\r\n if (!open) return;\r\n const root = rootRef.current?.getRootNode() ?? document;\r\n const onDown = (e: Event) => {\r\n if (!rootRef.current?.contains(e.target as Node)) setOpen(false);\r\n };\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') setOpen(false);\r\n };\r\n root.addEventListener('pointerdown', onDown);\r\n document.addEventListener('keydown', onKey);\r\n return () => {\r\n root.removeEventListener('pointerdown', onDown);\r\n document.removeEventListener('keydown', onKey);\r\n };\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n if (open) inputRef.current?.focus();\r\n else setQuery('');\r\n }, [open]);\r\n\r\n const dial = DIAL_CODES.get(value);\r\n\r\n return (\r\n <div className=\"cv-cp\" ref={rootRef}>\r\n <button\r\n type=\"button\"\r\n className=\"cv-cp-chip\"\r\n onClick={() => setOpen((o) => !o)}\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={open}\r\n // The mark is aria-hidden — a flag glyph reads as \"flag of Spain\" or, on a plate, as the bare\r\n // letters \"ES\". Neither is what a screen-reader user needs, so the name carries it instead.\r\n aria-label={`Prefijo: ${countryName(value)} (+${dial ?? '?'}). Cambiar país`}\r\n part=\"country-chip\"\r\n >\r\n <CountryMark code={value} />\r\n <span className=\"cv-cp-dial\">+{dial ?? '?'}</span>\r\n <ChevronDown size={13} className=\"cv-cp-caret\" data-open={open} />\r\n </button>\r\n\r\n {open ? (\r\n <div className=\"cv-cp-pop\" role=\"dialog\" part=\"country-list\">\r\n <input\r\n ref={inputRef}\r\n className=\"cv-cp-search\"\r\n value={query}\r\n onChange={(e) => setQuery(e.target.value)}\r\n placeholder=\"Buscar país…\"\r\n aria-label=\"Buscar país\"\r\n />\r\n <div className=\"cv-cp-list\" role=\"listbox\">\r\n {results.length === 0 ? (\r\n <p className=\"cv-cp-empty\">No se encontró ningún país.</p>\r\n ) : (\r\n results.map((c) => (\r\n <button\r\n key={c.code}\r\n type=\"button\"\r\n role=\"option\"\r\n aria-selected={c.code === value}\r\n className=\"cv-cp-item\"\r\n onClick={() => {\r\n onChange(c.code);\r\n setOpen(false);\r\n }}\r\n >\r\n <CountryMark code={c.code} />\r\n <span className=\"cv-cp-name\">{c.name}</span>\r\n <span className=\"cv-cp-dial\">+{c.dial}</span>\r\n <Check size={14} className=\"cv-cp-check\" data-on={c.code === value} />\r\n </button>\r\n ))\r\n )}\r\n </div>\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","/**\r\n * Country → dial code, flags and names — **data and platform APIs, not a dependency** (SPEC §11).\r\n *\r\n * The CRM reached all of this through `react-phone-number-input` + its flag SVGs: **82 kB brotli,\r\n * measured**. Everything below costs **~1 kB**, because the expensive parts are already in the\r\n * browser:\r\n *\r\n * - **names** → `Intl.DisplayNames`, localised, shipped with the runtime\r\n * - **codes** → the table below, 245 regions in 1,364 characters\r\n *\r\n * Flags are the exception and live in `CountryPicker`: real SVGs from `country-flag-icons`, 40 kB\r\n * brotli for all 245, **lazily imported** so they cost nothing until someone opens the picker. An\r\n * earlier cut used flag EMOJI (free, but Windows ships none and degrades to stray letters) — that is\r\n * gone: an SVG renders the same everywhere, and the emoji-support probe it needed went with it.\r\n *\r\n * What we give up is libphonenumber's parsing and validation — deliberately. A dialer must let you\r\n * dial anything: refusing a call because a number looks wrong for a region is a bug, not a feature.\r\n * We compose `+<code><digits>` and let the PBX decide.\r\n */\r\n\r\n/**\r\n * ISO 3166-1 alpha-2 immediately followed by its E.164 calling code, space-separated.\r\n *\r\n * Packed as one string rather than an object literal: no quotes, no colons, no commas — it compresses\r\n * to **729 bytes brotli**, and it parses once at module load into the Map below.\r\n *\r\n * GENERATED — do not hand-edit. Regenerate against a real source with:\r\n *\r\n * node -e \"const{getCountries,getCountryCallingCode}=require('libphonenumber-js/min');\\\r\n * console.log(getCountries().map(c=>c+getCountryCallingCode(c)).join(' '))\"\r\n */\r\nconst PACKED =\r\n 'AC247 AD376 AE971 AF93 AG1 AI1 AL355 AM374 AO244 AR54 AS1 AT43 AU61 AW297 AX358 AZ994 ' +\r\n 'BA387 BB1 BD880 BE32 BF226 BG359 BH973 BI257 BJ229 BL590 BM1 BN673 BO591 BQ599 BR55 BS1 ' +\r\n 'BT975 BW267 BY375 BZ501 CA1 CC61 CD243 CF236 CG242 CH41 CI225 CK682 CL56 CM237 CN86 CO57 ' +\r\n 'CR506 CU53 CV238 CW599 CX61 CY357 CZ420 DE49 DJ253 DK45 DM1 DO1 DZ213 EC593 EE372 EG20 ' +\r\n 'EH212 ER291 ES34 ET251 FI358 FJ679 FK500 FM691 FO298 FR33 GA241 GB44 GD1 GE995 GF594 ' +\r\n 'GG44 GH233 GI350 GL299 GM220 GN224 GP590 GQ240 GR30 GT502 GU1 GW245 GY592 HK852 HN504 ' +\r\n 'HR385 HT509 HU36 ID62 IE353 IL972 IM44 IN91 IO246 IQ964 IR98 IS354 IT39 JE44 JM1 JO962 ' +\r\n 'JP81 KE254 KG996 KH855 KI686 KM269 KN1 KP850 KR82 KW965 KY1 KZ7 LA856 LB961 LC1 LI423 ' +\r\n 'LK94 LR231 LS266 LT370 LU352 LV371 LY218 MA212 MC377 MD373 ME382 MF590 MG261 MH692 MK389 ' +\r\n 'ML223 MM95 MN976 MO853 MP1 MQ596 MR222 MS1 MT356 MU230 MV960 MW265 MX52 MY60 MZ258 NA264 ' +\r\n 'NC687 NE227 NF672 NG234 NI505 NL31 NO47 NP977 NR674 NU683 NZ64 OM968 PA507 PE51 PF689 ' +\r\n 'PG675 PH63 PK92 PL48 PM508 PR1 PS970 PT351 PW680 PY595 QA974 RE262 RO40 RS381 RU7 RW250 ' +\r\n 'SA966 SB677 SC248 SD249 SE46 SG65 SH290 SI386 SJ47 SK421 SL232 SM378 SN221 SO252 SR597 ' +\r\n 'SS211 ST239 SV503 SX1 SY963 SZ268 TA290 TC1 TD235 TG228 TH66 TJ992 TK690 TL670 TM993 ' +\r\n 'TN216 TO676 TR90 TT1 TV688 TW886 TZ255 UA380 UG256 US1 UY598 UZ998 VA39 VC1 VE58 VG1 VI1 ' +\r\n 'VN84 VU678 WF681 WS685 XK383 YE967 YT262 ZA27 ZM260 ZW263';\r\n\r\n/** ISO alpha-2 → calling code, e.g. `'ES' → 34`. */\r\nexport const DIAL_CODES: ReadonlyMap<string, number> = new Map(\r\n PACKED.split(' ').map((token) => [token.slice(0, 2), Number(token.slice(2))]),\r\n);\r\n\r\n/** The picker's default. Coventia is Spanish and so is the UI (SPEC §2.4). */\r\nexport const DEFAULT_COUNTRY = 'ES';\r\n\r\n// Built once, not per render — `Intl.DisplayNames` construction is not free, and this module is\r\n// imported by a component that re-renders on every keystroke.\r\nconst REGION_NAMES = (() => {\r\n try {\r\n return new Intl.DisplayNames(['es'], { type: 'region' });\r\n } catch {\r\n return null; // ancient runtime — fall back to the code\r\n }\r\n})();\r\n\r\n/** `'ES'` → `'España'`, localised by the platform. Falls back to the code. */\r\nexport function countryName(country: string): string {\r\n try {\r\n return REGION_NAMES?.of(country) ?? country;\r\n } catch {\r\n return country; // `of()` throws on codes it does not know (e.g. 'TA', 'XK')\r\n }\r\n}\r\n\r\nexport interface CountryOption {\r\n readonly code: string;\r\n readonly name: string;\r\n readonly dial: number;\r\n}\r\n\r\n/** Every country, sorted by localised name — the picker's list. Computed once. */\r\nexport const COUNTRIES: readonly CountryOption[] = [...DIAL_CODES.entries()]\r\n .map(([code, dial]) => ({ code, name: countryName(code), dial }))\r\n .sort((a, b) => a.name.localeCompare(b.name, 'es'));\r\n\r\n/**\r\n * Compose what the user sees into what the PBX gets: `('ES', '600 111 222')` → `'+34600111222'`.\r\n *\r\n * No validation, on purpose (see the module header). Two rules earn their place:\r\n * - a national number written with a trunk `0` (`06 12 34 56 78` in FR) must lose it, or the PBX\r\n * receives a number with a digit that only means something domestically;\r\n * - if the user typed a full international number themselves, respect it and do not prepend a\r\n * second country code.\r\n */\r\nexport function toE164(country: string, national: string): string {\r\n const typed = String(national ?? '').trim();\r\n if (typed.startsWith('+')) return '+' + typed.slice(1).replace(/\\D/g, '');\r\n\r\n const digits = typed.replace(/\\D/g, '').replace(/^0+/, '');\r\n if (!digits) return '';\r\n const dial = DIAL_CODES.get(country);\r\n return dial === undefined ? `+${digits}` : `+${dial}${digits}`;\r\n}\r\n","/**\r\n * As-you-type national grouping — `600111222` → `600 11 12 22`.\r\n *\r\n * **Lazily imported, like the flags.** `libphonenumber-js/min` is 27 kB brotli, which is 3× the whole\r\n * `/ui` entry, and it is needed only once someone actually types. Preloaded on mount so it is there\r\n * before a human can reach the keypad; until then digits render unformatted and then snap into\r\n * groups, which is a far better failure than blocking first paint on a formatting table.\r\n *\r\n * **Why a library at all**, when `countries.ts` deliberately avoids one: there is no universal rule.\r\n *\r\n * ES 600111222 → 600 11 12 22 (3-2-2-2)\r\n * FR 0612345678 → 06 12 34 56 78 (2-2-2-2-2)\r\n * GB 07911123456 → 07911 123456 (5-6)\r\n * DE 01701234567 → 0170 1234567 (4-7)\r\n *\r\n * GB and DE group differently again for landlines. A hand-rolled table would be wrong for most of the\r\n * world, and wrong grouping reads as broken rather than as a simplification. This is grouping ONLY —\r\n * we still do not validate, and `toE164` is still the thing that decides what gets dialled.\r\n */\r\nimport { useEffect, useState } from 'react';\r\n\r\ntype AsYouTypeCtor = new (country?: string) => { input(text: string): string };\r\ntype ParseIntl = (text: string) => { formatInternational(): string } | undefined;\r\n\r\nlet AsYouType: AsYouTypeCtor | null = null;\r\nlet parseIntl: ParseIntl | null = null;\r\nlet loading: Promise<void> | null = null;\r\n\r\n/**\r\n * Fetch the metadata once per page. Safe to call repeatedly; resolves immediately once loaded.\r\n *\r\n * One shared load for BOTH formatters this file exports (`formatNational` for as-you-type in the\r\n * dialer, `formatIntl` for a full E.164 number on the contact detail page) — same 27 kB chunk either\r\n * way, so a second consumer must not pay for it twice or drift onto a second copy of the metadata.\r\n */\r\nexport function loadNumberFormatter(): Promise<void> {\r\n loading ??= import('libphonenumber-js/min')\r\n .then((m) => {\r\n AsYouType = m.AsYouType as unknown as AsYouTypeCtor;\r\n parseIntl = m.parsePhoneNumberFromString as unknown as ParseIntl;\r\n })\r\n .catch(() => {\r\n // Offline, blocked, or a bundler that could not fetch the chunk: keep dialing with plain\r\n // digits. Formatting is a nicety; the dialer is not.\r\n });\r\n return loading;\r\n}\r\n\r\n/**\r\n * A full E.164 number (`+34600111222`) as it is normally written (`+34 600 11 12 22`). Same\r\n * never-empty-never-mangled contract as `formatNational`: the raw number until metadata loads or on\r\n * any parse failure — a contact's own phone number is never worth blocking on or hiding behind a\r\n * formatting error.\r\n */\r\nexport function formatIntl(e164: string): string {\r\n if (!parseIntl) return e164;\r\n try {\r\n return parseIntl(e164)?.formatInternational() ?? e164;\r\n } catch {\r\n return e164;\r\n }\r\n}\r\n\r\n/** Subscribe a component to the formatter, the same way `useNumberFormatter` does for typing. */\r\nexport function useIntlFormatter(): typeof formatIntl {\r\n const [, bump] = useState(0);\r\n useEffect(() => {\r\n if (parseIntl) return;\r\n let alive = true;\r\n void loadNumberFormatter().then(() => {\r\n if (alive) bump((n) => n + 1);\r\n });\r\n return () => {\r\n alive = false;\r\n };\r\n }, []);\r\n return formatIntl;\r\n}\r\n\r\n/**\r\n * Group `digits` the way `country` writes them. Returns the input unchanged until the metadata has\r\n * loaded, and on any parse failure — so the display is always *at worst* the digits the user typed,\r\n * never empty and never mangled.\r\n */\r\nexport function formatNational(country: string, digits: string): string {\r\n if (!AsYouType || !digits) return digits;\r\n try {\r\n return new AsYouType(country).input(digits);\r\n } catch {\r\n return digits;\r\n }\r\n}\r\n\r\n/**\r\n * Subscribe a component to the formatter. Returns `formatNational`, re-rendering once when the\r\n * metadata lands so an already-typed number regroups itself.\r\n */\r\nexport function useNumberFormatter(): typeof formatNational {\r\n const [, bump] = useState(0);\r\n useEffect(() => {\r\n if (AsYouType) return;\r\n let alive = true;\r\n void loadNumberFormatter().then(() => {\r\n if (alive) bump((n) => n + 1);\r\n });\r\n return () => {\r\n alive = false;\r\n };\r\n }, []);\r\n return formatNational;\r\n}\r\n\r\n/**\r\n * Where the caret belongs after reformatting, counted in DIGITS rather than characters.\r\n *\r\n * Without this, inserting a digit mid-number reformats the string, the caret snaps to the end, and\r\n * the next keystroke lands somewhere the user did not choose. Counting digits is the only stable\r\n * anchor, because the separators are exactly what moves.\r\n */\r\nexport function caretAfterDigits(formatted: string, digitsBefore: number): number {\r\n if (digitsBefore <= 0) return 0;\r\n let seen = 0;\r\n for (let i = 0; i < formatted.length; i++) {\r\n if (/\\d/.test(formatted[i]!)) seen++;\r\n if (seen === digitsBefore) return i + 1;\r\n }\r\n return formatted.length;\r\n}\r\n\r\n/** Digits appearing before `caret` in `text` — the position we must preserve across a reformat. */\r\nexport function digitsBeforeCaret(text: string, caret: number): number {\r\n return (text.slice(0, caret).match(/\\d/g) ?? []).length;\r\n}\r\n","/**\r\n * The 3×4 grid every phone has — shared between the pre-call dialer (`Dialpad`) and the in-call DTMF\r\n * panel (`CallScreen`). One types a number, the other sends tones, but it's the same physical pad\r\n * either way, so the layout lives once.\r\n */\r\nexport const KEYPAD_KEYS: ReadonlyArray<readonly [key: string, letters: string]> = [\r\n ['1', ''],\r\n ['2', 'ABC'],\r\n ['3', 'DEF'],\r\n ['4', 'GHI'],\r\n ['5', 'JKL'],\r\n ['6', 'MNO'],\r\n ['7', 'PQRS'],\r\n ['8', 'TUV'],\r\n ['9', 'WXYZ'],\r\n ['*', ''],\r\n ['0', '+'],\r\n ['#', ''],\r\n];\r\n","/**\r\n * Everything the softphone plays: the remote party, the inbound ring, the outbound ringback, the\r\n * end-of-call cue, and the keypad's key tones.\r\n *\r\n * Framework-free and lazy — nothing here touches `AudioContext`, `Audio` or `URL.createObjectURL`\r\n * at module scope, so importing it under SSR is safe (SPEC §10.2). The legacy code built the ringback\r\n * blob at module scope, which would have thrown on any server render.\r\n *\r\n * `core/` deliberately does not create audio elements: it hands the stream out and the UI attaches it\r\n * (see `CallEvent.RemoteStream`). This is the UI half of that contract.\r\n */\r\n\r\n/** 425 Hz — the EU/ES call-progress tone. Both the ring and the ringback are built on it. */\r\nconst TONE_HZ = 425;\r\n\r\n// ── Remote party ────────────────────────────────────────────────────────────\r\n\r\nexport interface RemoteAudio {\r\n attach(stream: MediaStream): void;\r\n detach(): void;\r\n destroy(): void;\r\n /**\r\n * Route the remote party to a specific output device, or `null` for the browser's own default\r\n * (SPEC §7 Phase 2 — device management). A no-op when the browser has no `setSinkId` (Safari, most\r\n * of Firefox — see `AudioDevices.canSelectOutput`), and swallows a rejection from an\r\n * already-unplugged device rather than throwing into a caller that has no useful recovery for it.\r\n */\r\n setOutputDevice(deviceId: string | null): Promise<void>;\r\n}\r\n\r\n/**\r\n * The `<audio>` element that plays the person on the other end.\r\n *\r\n * **Without this there is no call audio at all** — a `MediaStream` from `ontrack` is silent until it\r\n * is attached to a media element. The SDK exposed `call.remoteStream` and nothing consumed it.\r\n *\r\n * A media element rather than Web Audio, for the same reason as the ringback below: it follows the OS\r\n * default output device and survives Bluetooth A2DP↔HFP transitions.\r\n */\r\nexport function createRemoteAudio(): RemoteAudio {\r\n const el = document.createElement('audio');\r\n el.autoplay = true;\r\n // Off-screen but IN the document: some browsers will not play a detached element.\r\n el.style.display = 'none';\r\n document.body.appendChild(el);\r\n\r\n return {\r\n attach(stream) {\r\n el.srcObject = stream;\r\n // Rejects only under autoplay policy, which the dial/answer click already satisfied.\r\n void el.play().catch(() => {});\r\n },\r\n detach() {\r\n el.srcObject = null;\r\n },\r\n destroy() {\r\n el.srcObject = null;\r\n el.remove();\r\n },\r\n async setOutputDevice(deviceId) {\r\n if (typeof el.setSinkId !== 'function') return;\r\n try {\r\n // `''` is the spec's own way of saying \"the default device\" — the same meaning `null` carries\r\n // on this method's own signature, translated at this one boundary rather than asking every\r\n // caller to know the DOM's convention.\r\n await el.setSinkId(deviceId ?? '');\r\n } catch {\r\n // A device that vanished between selection and this call landing (unplugged, or a stale ID\r\n // from a previous session) — nothing useful to do beyond leaving the previous route in place.\r\n }\r\n },\r\n };\r\n}\r\n\r\n// ── Inbound ring ────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * ONE `AudioContext` for the page, created on demand and never closed.\r\n *\r\n * Ringing used to build a fresh context per call and close it on hangup. That produced three Firefox\r\n * warnings on every inbound call — *\"An AudioContext was prevented from starting automatically…\"* —\r\n * because an INVITE is not a user gesture, so the context, its oscillator and its `resume()` were all\r\n * created outside one. The ring still played (the user had clicked something earlier in the session),\r\n * but a console that cries wolf on a healthy path is how real warnings get ignored.\r\n *\r\n * Sharing it also avoids a limit worth knowing about: Chrome caps a page at ~6 live `AudioContext`s,\r\n * and `close()` is asynchronous — so a burst of short calls could reach it and leave the phone silent.\r\n *\r\n * Not closed on teardown deliberately: a suspended context costs nothing, and the next ring needs it\r\n * ready before any gesture is available.\r\n */\r\nlet shared: AudioContext | null = null;\r\n\r\nfunction sharedContext(): AudioContext | null {\r\n if (shared) return shared;\r\n const Ctor: typeof AudioContext | undefined =\r\n typeof AudioContext !== 'undefined'\r\n ? AudioContext\r\n : (globalThis as { webkitAudioContext?: typeof AudioContext }).webkitAudioContext;\r\n if (!Ctor) return null;\r\n shared = new Ctor();\r\n return shared;\r\n}\r\n\r\n/**\r\n * Build the shared context **inside a user gesture**, so it starts `running` and nothing later has to\r\n * ask for permission it cannot get.\r\n *\r\n * Call from a click/keydown handler. Idempotent and safe to call when audio is already unlocked; on a\r\n * browser with no Web Audio it is a no-op.\r\n */\r\nexport function primeAudio(): void {\r\n const ctx = sharedContext();\r\n if (ctx && ctx.state === 'suspended') void ctx.resume?.().catch(() => {});\r\n}\r\n\r\n/** @internal — tests only: forget the shared context so each case starts clean. */\r\nexport function __resetSharedAudioForTests(): void {\r\n shared = null;\r\n}\r\n\r\nexport interface Tone {\r\n stop(): void;\r\n}\r\n\r\n/**\r\n * The inbound ring: a synthesised EU double-burst, looping until answered or gone.\r\n *\r\n * Web Audio rather than a file: there is no asset to ship or license, and during INBOUND ringing the\r\n * microphone is not open — so the tone is not subject to the OS \"communications\" ducking that would\r\n * silence a locally generated tone while a mic is live. (Outbound is the opposite case; see below.)\r\n *\r\n * **The look-ahead scheduler is not premature optimisation.** Scheduling each cycle at\r\n * `ctx.currentTime` from a chained `setTimeout` lands the rising ramp at or behind the live audio\r\n * clock on Chrome, which silently drops the cycle — the symptom is \"it rings once, then nothing\"\r\n * (Firefox tolerates it, so it looks fine in one browser). Instead the audio clock is kept ~0.5 s\r\n * filled, topped up every 150 ms, always scheduling on a future-dated accumulator.\r\n *\r\n * **Loud — the loudest tone this file plays, on purpose.** This first shipped at `LEVEL = 0.18`\r\n * (\"gentle — a ring should not startle\"), the exact same wrong instinct the end-of-call cue also\r\n * shipped with (see `playCallEndedTone`'s own comment): quiet-by-default was never examined against\r\n * what a ring is actually FOR. Every platform treats it as its own, separately loud category —\r\n * iOS/CallKit gives incoming calls a higher ceiling than a normal audio session, and RingCentral\r\n * exposes ringtone loudness as its own dedicated control, distinct from in-call volume — because a\r\n * missed call is the one failure mode you cannot recover from by just looking at the screen a moment\r\n * later. `LEVEL` here sits above even `playCallEndedTone`'s own boosted level for the same reason:\r\n * ringing has to compete with a genuinely noisy room in a way a goodbye click, glanced at on screen,\r\n * does not. The attack (`RAMP`) stays soft, unlike the goodbye click's sharp one — this repeats every\r\n * 3 seconds for as long as the phone rings, and a percussive click that many times in a row reads as\r\n * harsh rather than urgent; loudness carries the urgency here, not the envelope shape.\r\n */\r\nexport function playRingtone(): Tone {\r\n const ctx = sharedContext();\r\n if (!ctx) return { stop() {} };\r\n\r\n const gain = ctx.createGain();\r\n gain.gain.value = 0;\r\n gain.connect(ctx.destination);\r\n\r\n const osc = ctx.createOscillator();\r\n osc.type = 'sine';\r\n osc.frequency.value = TONE_HZ;\r\n osc.connect(gain);\r\n osc.start();\r\n\r\n const LEVEL = 0.8; // louder than the end-of-call cue (0.55) — has to cut through a noisy room\r\n const RAMP = 0.02; // short fades, or the bursts click — soft on purpose, see this function's comment\r\n\r\n const burst = (at: number, dur: number): void => {\r\n gain.gain.setValueAtTime(0, at);\r\n gain.gain.linearRampToValueAtTime(LEVEL, at + RAMP);\r\n gain.gain.setValueAtTime(LEVEL, at + dur - RAMP);\r\n gain.gain.linearRampToValueAtTime(0, at + dur);\r\n };\r\n\r\n /** One EU cadence: two 0.4 s rings 0.2 s apart, then ~2 s of silence. 3 s total. */\r\n const scheduleCycle = (at: number): number => {\r\n burst(at, 0.4);\r\n burst(at + 0.6, 0.4);\r\n return 3.0;\r\n };\r\n\r\n const LOOKAHEAD = 0.5;\r\n const TICK_MS = 150;\r\n const LEAD = 0.08; // so the first cycle is never scheduled at exactly \"now\"\r\n\r\n let stopped = false;\r\n let timer: ReturnType<typeof setInterval> | null = null;\r\n let nextAt = 0;\r\n\r\n const pump = (): void => {\r\n while (nextAt < ctx.currentTime + LOOKAHEAD) nextAt += scheduleCycle(nextAt);\r\n };\r\n\r\n // Resume first: a fresh context may be suspended by autoplay policy. By the time a call rings the\r\n // user has interacted with the softphone, so this succeeds; if not, it degrades to silence.\r\n void Promise.resolve(ctx.resume?.())\r\n .catch(() => {})\r\n .finally(() => {\r\n if (stopped) return;\r\n nextAt = ctx.currentTime + LEAD;\r\n pump();\r\n timer = setInterval(pump, TICK_MS);\r\n });\r\n\r\n return {\r\n stop() {\r\n stopped = true;\r\n if (timer) clearInterval(timer);\r\n try {\r\n osc.stop();\r\n } catch {\r\n /* already stopped */\r\n }\r\n try {\r\n gain.disconnect();\r\n } catch {\r\n /* ignore */\r\n }\r\n // The context is SHARED and outlives the ring — see `sharedContext`. Closing it here is what\r\n // forced a new one per call, and a context built outside a user gesture is what Firefox warns\r\n // about. Only the nodes are disposable.\r\n },\r\n };\r\n}\r\n\r\n// ── Call ended ──────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * The \"call has ended\" cue: ONE short 425 Hz beep, fired once a LIVE call is hung up — by either\r\n * side. Without it the call screen just disappears, which reads as a dropped connection rather than\r\n * an ordinary goodbye; a real phone always gives you SOMETHING before it goes back to the dial tone.\r\n *\r\n * A single beep, not a repeating pattern — this is a device-level confirmation click, not one of the\r\n * network's own call-progress tones (the ring and ringback ARE those, which is why they alone match\r\n * the ETSI/Telefónica cadence: 425 Hz, 1.5 s on, 3 s off). Spain has no standardised \"call ended\"\r\n * network tone to replicate; the closest real-world precedent is each platform's own end-of-call\r\n * click — iOS plays three short 425 Hz bursts, Android a single soft one. A single beep is what\r\n * Spanish users actually expect here, so that is what this plays, kept on the same 425 Hz the rest of\r\n * this file already uses for consistency.\r\n *\r\n * **Loud and sharp, NOT gentle** — this first shipped at the ringtone's own `LEVEL`/`RAMP`, on the\r\n * unexamined assumption that \"quiet and soft\" was a safe default throughout this file. It is the\r\n * wrong instinct here: a ring is heard from across a room and must not startle, but a goodbye click\r\n * is a confirmation the user is already looking at their screen for and expects to be unmistakable —\r\n * \"you notice that sound immediately\" was the actual bar. `LEVEL` now sits above even the ringback's\r\n * own 0.5 amp, and `RAMP` is a fraction of the ringtone's — an audible, percussive click rather than\r\n * a fade-in a quiet room can still miss.\r\n *\r\n * Web Audio, like the ringtone, not a media element like the ringback: this fires as the call is\r\n * already tearing down, so — unlike the ringback — there is no still-open microphone to route around\r\n * a Bluetooth profile switch for. A fire-and-forget cue on the shared context is simpler than a WAV\r\n * blob for something this short.\r\n *\r\n * Deliberately NOT looping and NOT cancellable — one beep and it is done on its own. Nothing in\r\n * `useCallAudio` needs to stop this mid-flight the way the ring/ringback do, so it does not return a\r\n * `Tone`.\r\n */\r\nexport function playCallEndedTone(): void {\r\n const ctx = sharedContext();\r\n if (!ctx) return;\r\n\r\n const gain = ctx.createGain();\r\n gain.gain.value = 0;\r\n gain.connect(ctx.destination);\r\n\r\n const osc = ctx.createOscillator();\r\n osc.type = 'sine';\r\n osc.frequency.value = TONE_HZ;\r\n osc.connect(gain);\r\n osc.start();\r\n\r\n const LEVEL = 0.55; // louder than the ringback (0.5) — a deliberate goodbye click, not a background tone\r\n const RAMP = 0.008; // sharp, percussive attack — long enough not to click, short enough to feel instant\r\n const BEEP = 0.25; // long enough to register as a deliberate signal, short enough to stay \"a beep\"\r\n\r\n void Promise.resolve(ctx.resume?.())\r\n .catch(() => {})\r\n .finally(() => {\r\n const at = ctx.currentTime + 0.02;\r\n gain.gain.setValueAtTime(0, at);\r\n gain.gain.linearRampToValueAtTime(LEVEL, at + RAMP);\r\n gain.gain.setValueAtTime(LEVEL, at + BEEP - RAMP);\r\n gain.gain.linearRampToValueAtTime(0, at + BEEP);\r\n\r\n const totalMs = (at + BEEP - ctx.currentTime) * 1000;\r\n setTimeout(() => {\r\n try {\r\n osc.stop();\r\n } catch {\r\n /* already stopped */\r\n }\r\n try {\r\n gain.disconnect();\r\n } catch {\r\n /* ignore */\r\n }\r\n }, totalMs);\r\n });\r\n}\r\n\r\n// ── Key tones ───────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * The keypad's own sound: each key is the SUM of one row tone and one column tone (ITU-T Q.23 — the\r\n * same pairs every phone on earth uses). The frequencies, not a recording, so there is nothing to\r\n * ship or license; Zadarma's own widget bundles proprietary `.wav` tones that are not ours to reuse.\r\n *\r\n * Rows are listed as the keypad is drawn (1-2-3 / 4-5-6 / 7-8-9 / *-0-#), so a key's position IS its\r\n * pair. The fourth column (A–D, 1633 Hz) is not on a phone keypad and is deliberately absent.\r\n */\r\nconst DTMF_ROWS_HZ = [697, 770, 852, 941] as const;\r\nconst DTMF_COLS_HZ = [1209, 1336, 1477] as const;\r\nconst DTMF_LAYOUT = ['123', '456', '789', '*0#'] as const;\r\n\r\n/** The two frequencies for a keypad key, or `null` for anything that is not one of the 12 keys. */\r\nexport function dtmfFrequencies(key: string): readonly [number, number] | null {\r\n if (key.length !== 1) return null; // `indexOf('')` is 0 — \"no key\" must not read as the first key\r\n for (let row = 0; row < DTMF_LAYOUT.length; row++) {\r\n const col = DTMF_LAYOUT[row]!.indexOf(key);\r\n if (col !== -1) return [DTMF_ROWS_HZ[row]!, DTMF_COLS_HZ[col]!];\r\n }\r\n return null;\r\n}\r\n\r\n/**\r\n * A short local tone for a keypad press — what every phone plays so you KNOW the key registered.\r\n *\r\n * Without it the keypad is silent, and mid-call that costs more than it looks: DTMF goes out as a SIP\r\n * INFO message, which the far end acts on but which the local user never hears, so an agent keying an\r\n * IVR menu option has no feedback at all that the digit went anywhere.\r\n *\r\n * Fire-and-forget on the shared context, like `playCallEndedTone` — nothing here needs to be stopped\r\n * early. Presses overlap rather than queue, as on a real phone: a fast run of digits each gets its\r\n * own tone instead of a backlog that plays on after the user has stopped typing.\r\n *\r\n * Plays on the page's default output, not the device chosen in Dispositivos — the same as the\r\n * ring and the end-of-call cue (only the remote party's `<audio>` element follows that selection).\r\n *\r\n * `LEVEL` is the gain node's own peak; two unit sines sum to 2, so the signal peaks at 0.4 of full\r\n * scale — firmly audible, a notch under the end-of-call cue's 0.55, and not tiring across the ten or\r\n * more presses of a phone number. It is one constant: retune it by ear.\r\n */\r\nexport function playKeyTone(key: string): void {\r\n const hz = dtmfFrequencies(key);\r\n if (!hz) return;\r\n const ctx = sharedContext();\r\n if (!ctx) return;\r\n\r\n const LEVEL = 0.2;\r\n const RAMP = 0.006; // long enough not to click, short enough to feel instant\r\n const DURATION = 0.12; // the 100 ms JsSIP puts on the wire, plus the fades\r\n const LEAD = 0.01; // a ramp at or behind the live clock is dropped on Chrome — see `playRingtone`\r\n\r\n const gain = ctx.createGain();\r\n gain.gain.value = 0;\r\n gain.connect(ctx.destination);\r\n\r\n const oscillators = hz.map((freq) => {\r\n const osc = ctx.createOscillator();\r\n osc.type = 'sine';\r\n osc.frequency.value = freq;\r\n osc.connect(gain);\r\n osc.start();\r\n return osc;\r\n });\r\n\r\n const fire = (): void => {\r\n const at = ctx.currentTime + LEAD;\r\n gain.gain.setValueAtTime(0, at);\r\n gain.gain.linearRampToValueAtTime(LEVEL, at + RAMP);\r\n gain.gain.setValueAtTime(LEVEL, at + DURATION - RAMP);\r\n gain.gain.linearRampToValueAtTime(0, at + DURATION);\r\n for (const osc of oscillators) osc.stop(at + DURATION);\r\n // The nodes are disposable; the context is shared and outlives them (see `sharedContext`).\r\n oscillators[0]!.onended = () => gain.disconnect();\r\n };\r\n\r\n // Already unlocked (the first gesture on the page primes it — see `primeAudio`): play NOW, with no\r\n // promise hop in front of a key press. Otherwise resume first — this click is itself a gesture.\r\n if (ctx.state === 'running') fire();\r\n else void Promise.resolve(ctx.resume?.()).catch(() => {}).finally(fire);\r\n}\r\n\r\n// ── Outbound ringback ───────────────────────────────────────────────────────\r\n\r\nlet ringbackUrl: string | null = null;\r\n\r\n/**\r\n * The EU/ES ringback loop as a WAV blob: 425 Hz, 1.5 s tone, 3 s silence.\r\n *\r\n * **Stereo 48 kHz 16-bit PCM, deliberately.** A mono 8 kHz source went silent on a device configured\r\n * for a single channel — Chrome's mono-source→mono-endpoint path drops it. Stereo plays directly on\r\n * stereo devices and downmixes cleanly on mono ones.\r\n *\r\n * A Blob URL rather than a `data:` URI: Chrome treats a Blob URL as a real media resource, while\r\n * `data:` URIs stall when looped.\r\n */\r\nfunction ringbackSource(): string {\r\n if (ringbackUrl) return ringbackUrl;\r\n\r\n const sampleRate = 48_000;\r\n const channels = 2;\r\n const bytesPerSample = 2;\r\n const amp = 0.5;\r\n const toneSec = 1.5;\r\n const silenceSec = 3;\r\n const totalFrames = Math.round((toneSec + silenceSec) * sampleRate);\r\n const toneFrames = Math.round(toneSec * sampleRate);\r\n const ramp = Math.round(0.02 * sampleRate); // 20 ms fades, or it clicks\r\n\r\n const blockAlign = channels * bytesPerSample;\r\n const dataSize = totalFrames * blockAlign;\r\n const buffer = new ArrayBuffer(44 + dataSize);\r\n const view = new DataView(buffer);\r\n const str = (off: number, s: string): void => {\r\n for (let i = 0; i < s.length; i++) view.setUint8(off + i, s.charCodeAt(i));\r\n };\r\n\r\n str(0, 'RIFF');\r\n view.setUint32(4, 36 + dataSize, true);\r\n str(8, 'WAVE');\r\n str(12, 'fmt ');\r\n view.setUint32(16, 16, true); // PCM chunk size\r\n view.setUint16(20, 1, true); // PCM\r\n view.setUint16(22, channels, true);\r\n view.setUint32(24, sampleRate, true);\r\n view.setUint32(28, sampleRate * blockAlign, true); // byte rate\r\n view.setUint16(32, blockAlign, true);\r\n view.setUint16(34, bytesPerSample * 8, true);\r\n str(36, 'data');\r\n view.setUint32(40, dataSize, true);\r\n\r\n for (let i = 0; i < totalFrames; i++) {\r\n let sample = 0;\r\n if (i < toneFrames) {\r\n let env = 1;\r\n if (i < ramp) env = i / ramp;\r\n else if (i > toneFrames - ramp) env = Math.max(0, (toneFrames - i) / ramp);\r\n sample = Math.sin(2 * Math.PI * TONE_HZ * (i / sampleRate)) * amp * env;\r\n }\r\n const s16 = Math.round(sample * 32767);\r\n const off = 44 + i * blockAlign;\r\n for (let c = 0; c < channels; c++) view.setInt16(off + c * bytesPerSample, s16, true);\r\n }\r\n\r\n ringbackUrl = URL.createObjectURL(new Blob([buffer], { type: 'audio/wav' }));\r\n return ringbackUrl;\r\n}\r\n\r\n/**\r\n * Outbound ringback, played the way production softphones do it: a looping `HTMLAudioElement`, NOT\r\n * the Web Audio API.\r\n *\r\n * A media element follows the OS default output device when it changes, and Chrome re-routes it\r\n * across Bluetooth A2DP↔HFP transitions. An `AudioContext` binds to whichever endpoint existed when\r\n * it was created and gets stranded on a stale one after the headset cycles profiles — which made a\r\n * Web Audio ringback miss intermittently on back-to-back calls.\r\n *\r\n * A media element rather than Web Audio for a second reason too: JsSIP opens the real microphone when\r\n * an outbound call is placed, so on Bluetooth the headset switches to HFP as the ringback starts. An\r\n * element follows the OS default endpoint across that switch; a Web Audio graph would stay bound to\r\n * the one that existed when it was built.\r\n */\r\nexport function playRingback(): Tone {\r\n const el = document.createElement('audio');\r\n el.src = ringbackSource();\r\n el.loop = true;\r\n el.style.display = 'none';\r\n document.body.appendChild(el);\r\n void el.play().catch(() => {});\r\n\r\n return {\r\n stop() {\r\n el.pause();\r\n el.remove();\r\n },\r\n };\r\n}\r\n","import { useEffect, useRef, useState } from 'react';\r\nimport {\r\n Phone,\r\n PhoneOff,\r\n Mic,\r\n MicOff,\r\n Pause,\r\n Play,\r\n ArrowLeft,\r\n ArrowLeftRight,\r\n ExternalLink,\r\n Grid3x3,\r\n Headphones,\r\n type LucideIcon,\r\n} from 'lucide-react';\r\nimport { useCall, usePresence, useSoftphone } from '../../react/index.js';\r\nimport type { CallView } from '../../react/index.js';\r\nimport { CallEvent } from '../../core/events.js';\r\nimport type { Call, HangupReason } from '../../core/call.js';\r\nimport type { SoftphoneErrorCode } from '../../core/errors.js';\r\nimport { formatDuration, elapsedSeconds, initials } from '../lib/format.js';\r\nimport { ERROR_TEXT } from '../lib/error-text.js';\r\nimport { useTicker } from '../lib/useTicker.js';\r\nimport { DevicePickers } from './DevicePicker.js';\r\nimport { KEYPAD_KEYS } from '../dialing/keys.js';\r\nimport { playKeyTone } from '../audio/audio.js';\r\nimport type { ContactAction, PresenceEntry, PresenceState } from '../types.js';\r\n\r\n/**\r\n * A secondary control: the button and the word for it.\r\n *\r\n * **The label is not decoration.** These were icon-only, and an icon-only control is a quiz — `⇄` is\r\n * transfer or swap or call-waiting depending on who you ask, and you are asking someone mid-call. The\r\n * CRM labels every one of these (`Silenciar` / `Colgar` / `Transferir`) and it is right to.\r\n *\r\n * `tone` carries the ON state's meaning rather than a colour, so muted reads as *danger* and held\r\n * reads as *held* — using the same `--cv-*` tokens the rest of the widget themes with.\r\n */\r\nfunction Control({\r\n icon: Icon,\r\n label,\r\n pressed = false,\r\n tone,\r\n onClick,\r\n disabled = false,\r\n title,\r\n}: Readonly<{\r\n icon: LucideIcon;\r\n label: string;\r\n pressed?: boolean;\r\n tone?: 'danger' | 'hold' | 'accent';\r\n onClick: () => void;\r\n disabled?: boolean;\r\n title?: string | undefined;\r\n}>) {\r\n return (\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-ctrl\"\r\n data-tone={pressed ? tone : undefined}\r\n aria-pressed={pressed}\r\n aria-label={label}\r\n onClick={onClick}\r\n disabled={disabled}\r\n title={title}\r\n >\r\n <Icon size={19} />\r\n </button>\r\n {/* aria-hidden: the button's own name already says this — do not announce it twice. */}\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n {label}\r\n </span>\r\n </div>\r\n );\r\n}\r\n\r\nconst STATUS_LABEL: Record<string, string> = {\r\n ringing: 'Llamada entrante',\r\n dialing: 'Llamando…',\r\n early: 'Llamando…',\r\n answering: 'Conectando…',\r\n reconnecting: 'Reconectando…',\r\n held: 'En espera',\r\n};\r\n\r\n/**\r\n * A consult leg (attended transfer, SPEC §5.6) that ends without being completed reports a REAL\r\n * reason — it's an ordinary outbound call, not the REFER black box blind `transfer()` is\r\n * (`docs/specs/transfer-availability.md` §2). Reusing `ERROR_TEXT`'s existing call-outcome copy\r\n * rather than inventing new strings; `call/transfer-failed` is the fallback for a reason this table\r\n * doesn't otherwise name — it should be unreachable in practice, but a consult leg has more possible\r\n * `HangupReason`s than this maps, and staying exhaustive costs four lines.\r\n */\r\nconst CONSULT_FAIL_CODE: Partial<Record<HangupReason, SoftphoneErrorCode>> = {\r\n busy: 'call/busy',\r\n 'no-answer': 'call/no-answer',\r\n rejected: 'call/rejected',\r\n failed: 'call/failed',\r\n};\r\n\r\nfunction consultFailText(reason: HangupReason): string {\r\n return ERROR_TEXT[CONSULT_FAIL_CODE[reason] ?? 'call/transfer-failed'].title;\r\n}\r\n\r\n/**\r\n * Found live (plan T5, 2026-09-28): completing a consulted transfer via `ConsultScreen`'s own\r\n * \"Completar\" within ~1-2s of the consult answering can drop the caller entirely — `REFER` gets\r\n * accepted and the agent's own leg gets a clean \"Normal Clearing\" `BYE`, wire-identical to a genuine\r\n * success (`transfer-availability.md` §15 item 5's own evidence table), but the target's line was never\r\n * actually ready for the immediately-following fresh INVITE. Reusing `consultView.answeredAt` and the\r\n * existing ticker, no new tracking state. Same \"observed starting point, tune if real usage shows\r\n * otherwise\" posture this codebase's own `POST_CALL_COOLDOWN_MS` (5s, presence) was set with, not a\r\n * rigorously derived number — and it needed tuning twice: 3s (real margin above the ~1-2s that actually\r\n * failed) turned out live not to be enough; 6s STILL failed intermittently in further live testing;\r\n * raised to 10s, which live re-testing then confirmed reliable for THIS path. Exported so\r\n * `CallScreen.test.tsx` references this value directly instead of a duplicated literal.\r\n *\r\n * This same gate used to ALSO cover \"Transferir directo\" — the auto-handoff path completed the\r\n * identical warm-blind-transfer automatically, the instant this same minimum passed. That path kept\r\n * dropping calls even at 10s, live, while manual stayed reliable at the same value — an automated\r\n * completion apparently races Zadarma's own readiness signal harder than a human's incidental\r\n * reaction-time delay ever did, for reasons never root-caused. Rather than keep chasing a bigger\r\n * number on a mechanism that had already needed two rounds of \"still sometimes fails,\" \"Transferir\r\n * directo\" was redesigned (2026-09-28) into a literal, immediate blind transfer with no consult at\r\n * all — see `selectPresenceAgentAuto`'s own comment. This constant now only gates the manual path.\r\n */\r\nexport const MIN_CONSULT_HOLD_SECONDS = 10;\r\n\r\n/**\r\n * Full takeover while a consult is in progress (SPEC §5.6) — not a panel bolted onto the caller's own\r\n * screen, which is what this replaced. Two real calls exist simultaneously the whole time this is on\r\n * screen: the caller, silently on hold, and the consult target, who is who the agent is actually\r\n * talking to. Showing the CALLER's own screen with a collapsible transfer panel made that easy to\r\n * lose track of — found live: an agent reached for the ordinary \"Reanudar\" hold toggle without\r\n * realising the consult leg was still up, unholding the caller INTO a second already-live call and\r\n * putting both ends within earshot of each other at once. This screen removes that toggle from reach\r\n * entirely (it doesn't exist here) and makes \"go back to the caller\" a single, impossible-to-miss\r\n * action instead of something buried behind a panel someone could forget was open.\r\n */\r\nfunction ConsultScreen({\r\n mainName,\r\n consultView,\r\n now,\r\n onReturn,\r\n onComplete,\r\n onHangupAll,\r\n}: Readonly<{\r\n /** The ORIGINAL caller's name — for the \"who's waiting\" banner, not this screen's own subject. */\r\n mainName: string;\r\n consultView: CallView;\r\n now: number;\r\n /** Ends the consult leg and un-holds the caller — \"Cancelar\" and the return banner do the same thing. */\r\n onReturn: () => void;\r\n onComplete: () => void;\r\n /** Ends BOTH legs — the one true \"I'm done with all of this\" escape hatch. */\r\n onHangupAll: () => void;\r\n}>) {\r\n const s = consultView.state;\r\n const answered = s === 'active';\r\n const name = consultView.remote.displayName;\r\n const number = consultView.remote.number;\r\n const showNumber = number !== name;\r\n const heldSeconds = elapsedSeconds(consultView.answeredAt, now);\r\n const [rawM = '0', ss = '00'] = formatDuration(heldSeconds).split(':');\r\n const mm = rawM.padStart(2, '0');\r\n // See MIN_CONSULT_HOLD_SECONDS's own comment — a real, live-found gap, not a guess.\r\n const canComplete = heldSeconds >= MIN_CONSULT_HOLD_SECONDS;\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n <div className=\"cv-call\">\r\n {/* The one fact that matters most on this whole screen: someone is still waiting. Full-width\r\n and tappable, not a passive status line — reads the return action as its own affordance. */}\r\n <button type=\"button\" className=\"cv-consult-hold-banner\" onClick={onReturn}>\r\n <Pause size={13} aria-hidden />\r\n {mainName} en espera · Volver\r\n </button>\r\n\r\n <div className=\"cv-avatar-wrap\">\r\n <div className=\"cv-avatar\" aria-hidden>\r\n {initials(name)}\r\n </div>\r\n {answered ? <span className=\"cv-avatar-dot\" aria-hidden /> : null}\r\n </div>\r\n <div className=\"cv-call-name\">{name}</div>\r\n {showNumber ? <div className=\"cv-call-number\">{number}</div> : null}\r\n\r\n {answered ? (\r\n <div className=\"cv-timer\" aria-label=\"Duración de la llamada\">\r\n <b>{mm}</b>\r\n <i>:</i>\r\n <b>{ss}</b>\r\n </div>\r\n ) : (\r\n <div className=\"cv-call-status\">{STATUS_LABEL[s] ?? ''}</div>\r\n )}\r\n </div>\r\n\r\n <div className=\"cv-controls\">\r\n <div className=\"cv-transfer-actions\">\r\n {answered ? (\r\n <button className=\"cv-btn cv-btn--accent\" onClick={onComplete} disabled={!canComplete}>\r\n Completar\r\n </button>\r\n ) : null}\r\n <button className=\"cv-btn\" onClick={onReturn}>\r\n Cancelar\r\n </button>\r\n </div>\r\n <div className=\"cv-controls-primary\">\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--hangup\"\r\n onClick={onHangupAll}\r\n aria-label=\"Colgar todo\"\r\n >\r\n <PhoneOff size={26} />\r\n </button>\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n Colgar todo\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nconst PRESENCE_LABEL: Record<PresenceState, string> = {\r\n disponible: 'Disponible',\r\n en_llamada: 'En llamada',\r\n desconectado: 'Desconectado',\r\n};\r\n\r\nconst PRESENCE_RANK: Record<PresenceState, number> = {\r\n disponible: 0,\r\n en_llamada: 1,\r\n desconectado: 2,\r\n};\r\n\r\n/** *Disponible* → *En llamada* → *Desconectado*, then by name (spec §4.5). Self-exclusion happens in\r\n * the caller, not here — `TransferPicker` needs the pre-exclusion count too, to tell \"empty org\" (no\r\n * picker at all) apart from \"no match for what's typed\" (an empty-state row inside one). */\r\nfunction filterAgents(agents: readonly PresenceEntry[], query: string): readonly PresenceEntry[] {\r\n const q = query.trim().toLowerCase();\r\n return agents\r\n .filter((a) => !q || (a.name ?? '').toLowerCase().includes(q) || a.extension.includes(q))\r\n .sort(\r\n (a, b) =>\r\n PRESENCE_RANK[a.state] - PRESENCE_RANK[b.state] ||\r\n (a.name ?? a.extension).localeCompare(b.name ?? b.extension),\r\n );\r\n}\r\n\r\n/** Bounds the \"Llamar a {typed}\" button's own content size — a long paste must not force the\r\n * input+button row wider than the ~340 px embed (the exact class of bug `.cv-transfer-notice`\r\n * already hit once this widget, see that component's own history). */\r\nfunction truncateForButton(text: string, max = 16): string {\r\n return text.length > max ? `${text.slice(0, max)}…` : text;\r\n}\r\n\r\n/**\r\n * The agent list under the transfer input (spec §4.5, plan T7) — the \"one control instead of two\":\r\n * the existing input/button stay the free-text fallback, this is the new part. Renders nothing at\r\n * all once `myUserId` is excluded and no one else is left — an empty org, no `PresenceSource`\r\n * configured, or this tab not currently `online && isLeader` all look identical from here (spec\r\n * §4.4's success criterion: no error, just nothing to show) — the caller falls straight back to\r\n * today's free-text-only field, unchanged.\r\n */\r\nfunction TransferPicker({\r\n agents,\r\n myUserId,\r\n query,\r\n onSelect,\r\n}: Readonly<{\r\n agents: readonly PresenceEntry[];\r\n myUserId: string | null;\r\n query: string;\r\n onSelect: (extension: string) => void;\r\n}>) {\r\n const others = agents.filter((a) => a.userId !== myUserId);\r\n if (others.length === 0) return null;\r\n const filtered = filterAgents(others, query);\r\n\r\n return (\r\n <div className=\"cv-presence\">\r\n <div className=\"cv-presence-list\" role=\"listbox\" aria-label=\"Compañeros\">\r\n {filtered.length === 0 ? (\r\n <p className=\"cv-presence-empty\">Sin coincidencias</p>\r\n ) : (\r\n filtered.map((agent) => {\r\n // Found live (2026-09-28): transferring (either path) to a colleague who is genuinely\r\n // `en_llamada` — mid-call, or still inside Zadarma's own post-call settling window\r\n // (backend `POST_CALL_COOLDOWN_MS`, `redisPubSub/index.js`) — can leave the call a silent\r\n // ghost: the target's phone never rings, the caller just waits with no failure signal at\r\n // all, not even the \"busy\" a normal consult would surface. Unlike *Desconectado* (§4.6: a\r\n // HINT, since presence only sees our own web softphone and a colleague could be reachable\r\n // elsewhere), `en_llamada` is a real, currently-true signal we already have and were simply\r\n // not acting on — so this one is a hard block, not a hint: the row stays visible (an agent\r\n // should still see who's busy) but isn't selectable. It un-blocks itself the moment presence\r\n // reports them free again — no separate retry affordance needed. Free text remains a\r\n // deliberate escape hatch (spec §4: presence is what justifies this restriction too, and\r\n // free text has no presence behind it).\r\n const isBusy = agent.state === 'en_llamada';\r\n return (\r\n <button\r\n key={agent.userId}\r\n type=\"button\"\r\n role=\"option\"\r\n className=\"cv-presence-item\"\r\n disabled={isBusy}\r\n onClick={() => onSelect(agent.extension)}\r\n >\r\n <span className=\"cv-presence-dot\" data-state={agent.state} aria-hidden />\r\n <span className=\"cv-presence-name\">{agent.name ?? agent.extension}</span>\r\n <span className=\"cv-presence-meta\">\r\n {agent.extension} · {PRESENCE_LABEL[agent.state]}\r\n </span>\r\n </button>\r\n );\r\n })\r\n )}\r\n </div>\r\n {/* Decided 2026-09-21 (spec §4.6): *Desconectado* is a HINT, never \"can't transfer\" — presence\r\n only sees our own web softphone, so a colleague on a desk phone or Zadarma's own app reads\r\n Desconectado while genuinely reachable. This is what keeps that from being misread. */}\r\n <p className=\"cv-presence-legend\">\r\n Desconectado: sin conexión en el softphone web. Puede atender desde otro dispositivo.\r\n </p>\r\n </div>\r\n );\r\n}\r\n\r\n/** The active-call view: incoming, outgoing and in-call in one, switched on call.state. */\r\nexport function CallScreen({\r\n call,\r\n incomingCallAction,\r\n keyTones = true,\r\n}: Readonly<{\r\n call: Call;\r\n incomingCallAction?: ContactAction;\r\n /**\r\n * Play a tone for each keypad press. **On by default**; `SoftphoneWidget` passes its own `sounds`\r\n * flag, so a host that silences the widget silences this too.\r\n */\r\n keyTones?: boolean;\r\n}>) {\r\n const view = useCall(call);\r\n const softphone = useSoftphone();\r\n // ONE panel at a time. These were three independent booleans, and two of them could be open at once —\r\n // found live (2026-10-06): the keypad popover opened over the transfer panel and hid its input and\r\n // agent list entirely. One value makes that state unrepresentable instead of guarding against it in\r\n // each click handler.\r\n const [panel, setPanel] = useState<'transfer' | 'keypad' | 'devices' | null>(null);\r\n const showTransfer = panel === 'transfer';\r\n const showKeypad = panel === 'keypad';\r\n const showDevices = panel === 'devices';\r\n const togglePanel = (p: 'transfer' | 'keypad') => setPanel((cur) => (cur === p ? null : p));\r\n const [transferTo, setTransferTo] = useState('');\r\n const [consultCall, setConsultCall] = useState<Call | null>(null);\r\n const [consultOutcome, setConsultOutcome] = useState<HangupReason | null>(null);\r\n const [myUserId, setMyUserId] = useState<string | null>(null);\r\n const consultView = useCall(consultCall);\r\n // Set right before completeTransfer()/cancelConsult() so the Ended listener below can tell \"we just\r\n // ended this ourselves\" apart from \"the target hung up on us\" — the same event fires either way, and\r\n // only the second case is a failure worth showing.\r\n const consultIntentRef = useRef<'complete' | 'cancel' | null>(null);\r\n const controlsRef = useRef<HTMLDivElement>(null);\r\n const now = useTicker(view?.state === 'active');\r\n // `ConsultScreen` needs its OWN timer — the consult leg answers, and stays live, independently of\r\n // whatever the main call's own state is doing underneath it.\r\n const consultNow = useTicker(consultView?.state === 'active');\r\n // Needed ahead of the early-return guard below, since the outside-click effect depends on it and\r\n // hooks can't follow a conditional return.\r\n const isConnected = view ? view.state === 'active' || view.state === 'held' || view.state === 'reconnecting' : false;\r\n // Same reasoning — `usePresence` is a hook too. Mirrors `inCall && showTransfer && !consultCall`\r\n // below exactly (`inCall` is this same value under a different name, post-early-return).\r\n const transferPickerActive = isConnected && showTransfer && !consultCall;\r\n // Subscribes only while the transfer step is open (spec §4.5) — the CONNECTION itself stays\r\n // governed by `online && isLeader` regardless (`usePresence`'s own doc comment); this only scopes\r\n // which component bothers re-rendering on an update.\r\n const presence = usePresence(transferPickerActive);\r\n\r\n // The org's phone directory, fetched once — same source, same \"absent ⇒ feature quietly does not\r\n // render\" shape `HistoryTab`'s own `PersonFilter` already uses. `me.userId` is the ONE piece needed\r\n // here: excluding the agent from their own transfer picker (spec §4.5).\r\n useEffect(() => {\r\n const listAgents = softphone.sources?.listAgents;\r\n if (!listAgents) return;\r\n let cancelled = false;\r\n void listAgents()\r\n .then((d) => !cancelled && setMyUserId(d.me?.userId ?? null))\r\n .catch(() => {});\r\n return () => {\r\n cancelled = true;\r\n };\r\n }, [softphone]);\r\n\r\n // The consult leg's terminal event — NOT unsubscribed on anything UI-side: `ConsultScreen` is on\r\n // screen for exactly as long as `consultCall` is non-null, so there is no \"panel closed but the\r\n // call is still ringing\" state left to strand (there was, before this was its own screen — see that\r\n // component's own comment).\r\n useEffect(() => {\r\n if (!consultCall) return;\r\n return consultCall.on(CallEvent.Ended, ({ reason }) => {\r\n const intent = consultIntentRef.current;\r\n consultIntentRef.current = null;\r\n setConsultCall(null);\r\n if (!intent) {\r\n // Ended on its own — busy/no-answer/rejected/failed. Plan T2: recover the caller automatically\r\n // instead of leaving them silently held until the agent notices this notice and resumes them by\r\n // hand — a real gap that existed before this fix.\r\n setConsultOutcome(reason);\r\n // Guard against the MAIN call having ALSO already ended by now (spec §5.3/plan §10 Q5) — found\r\n // to be a REAL, reachable ordering, not just a theoretical one: `CallImpl#end()`'s own\r\n // consult-leg cleanup fires `consult.hangup()` without awaiting it, so this listener can still\r\n // run — the component hasn't unmounted yet — before React processes the main call's own `ended`\r\n // state. Caught directly by a spy in the \"caller hangs up first\" test, which failed on the first\r\n // attempt without this guard: `unhold()` doesn't throw when called on an ended call (its own\r\n // `!this.#onHold` short-circuit doesn't help here, since the caller genuinely WAS on hold right\r\n // up to that point), but calling it on a dead session is still wrong to do on purpose. `call.state`\r\n // is `CallImpl`'s own live getter, not a React-closure value — reading it fresh here, not `view`.\r\n if (call.state !== 'ended') void call.unhold();\r\n }\r\n // else: we ended it ourselves (bridged by completeTransfer, or hung up by cancelConsult) —\r\n // nothing failed, nothing to show.\r\n });\r\n }, [consultCall, call]);\r\n\r\n /**\r\n * `target` overrides `transferTo` — needed when a `TransferPicker` row is clicked (plan T7):\r\n * `setTransferTo` is async (React state), so a caller that set it and immediately called this\r\n * without the override would still read the PREVIOUS render's `transferTo` here, off by one click.\r\n * Free text (the button) omits it and falls back to the input's own current value, unchanged.\r\n */\r\n const startConsult = async (target?: string) => {\r\n const t = (target ?? transferTo).trim();\r\n if (!t) return;\r\n setConsultOutcome(null);\r\n setConsultCall(await call.startConsult(t));\r\n };\r\n const selectPresenceAgent = (extension: string) => {\r\n setTransferTo(extension);\r\n void startConsult(extension);\r\n };\r\n // Which of the two paths (spec §5.4) a picker row click starts — \"Hablar primero\" (the consult flow\r\n // above, unchanged) by default, or \"Transferir directo\" once switched. Free text (the `Llamar` button\r\n // below) always uses `startConsult` directly, unaffected either way — presence is what justifies a\r\n // one-click transfer at all, and free text has no presence behind it.\r\n const [quickTransfer, setQuickTransfer] = useState(false);\r\n /**\r\n * \"Transferir directo\": a literal, immediate blind transfer — no consult, no ring-first confirmation,\r\n * no hold-timer gate. This replaces an earlier design (plan `transfer-auto-handoff-plan.md` T1–T5)\r\n * that reused the \"warm blind transfer\" pattern automatically — consult the target, wait for it to\r\n * answer, hold `MIN_CONSULT_HOLD_SECONDS`, then bridge — the exact same mechanism `ConsultScreen`'s\r\n * manual \"Completar\" still uses. That approach kept dropping the caller live even after the hold was\r\n * raised to 10s (found reliable for the MANUAL path at that value), for reasons never root-caused —\r\n * an automated completion apparently doesn't get the same margin a human's incidental reaction-time\r\n * delay was providing. Found live, 2026-09-28: \"Sometimes it still fails at 6s... [still] fails\" even\r\n * at 10s, direct transfer only — the consult-first path was confirmed reliable at 10s in the same\r\n * round of testing.\r\n *\r\n * Rather than keep tuning an interval that had already needed three rounds, this path now does what\r\n * its label says: an honest, single-step blind transfer, same call as a fresh cold transfer to any\r\n * number would be. The trade-off is real and accepted, not hidden — a failed transfer here drops the\r\n * caller with no recovery on screen, same as any blind transfer (`transfer-availability.md` §2's own\r\n * foundational finding: success and failure are indistinguishable at the SIP layer). The existing\r\n * outcome-relay (`transfer-outcome-relay.md`, Phase A, already live) catches it roughly a minute later\r\n * and offers the agent a callback — the accepted safety net. \"Hablar primero\" remains the path for an\r\n * agent who wants certainty over speed; this one is for speed.\r\n */\r\n const selectPresenceAgentAuto = (extension: string) => {\r\n void call.transfer(extension);\r\n };\r\n /**\r\n * NOT `call.completeTransfer()` (REFER…Replaces) — confirmed dead against Zadarma, three times, live\r\n * (`docs/specs/transfer-availability.md` §12.3): Zadarma accepts the REFER, drops the caller's leg\r\n * the same way it does for blind transfer, and never bridges anything — the consult leg is simply\r\n * orphaned. What actually works: hang up the consult leg (freeing the target's line) and then blind-\r\n * transfer the caller to that SAME target — the \"warm blind transfer\" pattern (§15 item 5's chosen\r\n * fix). Blind transfer to a target that's already known to be there and answering is exactly Phase\r\n * 0's capture 2, which worked. The one honest cost: the target's phone rings a SECOND time (once for\r\n * the consult, once for the actual transferred call) — REFER always triggers a fresh INVITE, there is\r\n * no seamless hand-off available here. They just confirmed they're expecting it, so this reads as\r\n * \"the call is coming through now,\" not a mystery second ring.\r\n */\r\n const completeTransfer = async () => {\r\n if (!consultCall) return;\r\n const target = transferTo.trim();\r\n consultIntentRef.current = 'complete';\r\n await consultCall.hangup();\r\n await call.transfer(target);\r\n };\r\n const cancelConsult = async () => {\r\n consultIntentRef.current = 'cancel';\r\n await call.cancelConsult();\r\n };\r\n\r\n // Dispositivos is inline content swapped into `.cv-call` in EVERY state now (see that JSX's own\r\n // comment for why) — once connected it used to be a floating popover. Inline content has no\r\n // \"outside\" to click away from (a stray tap on Silenciar must not dismiss it), so the only ways\r\n // out are its own back button, Escape, or opening another panel.\r\n useEffect(() => {\r\n if (!showDevices) return;\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') setPanel(null);\r\n };\r\n document.addEventListener('keydown', onKey);\r\n return () => document.removeEventListener('keydown', onKey);\r\n }, [showDevices]);\r\n\r\n // The keypad is the one popover left on this screen, so it is the one panel that closes on outside\r\n // click / Escape — same shape as `PersonFilter`'s own (HistoryTab.tsx), not shared: duplicating this\r\n // dozen lines is cheaper than coupling two unrelated pickers through an abstraction neither needs.\r\n useEffect(() => {\r\n if (!showKeypad) return;\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') setPanel(null);\r\n };\r\n document.addEventListener('keydown', onKey);\r\n if (!isConnected) return () => document.removeEventListener('keydown', onKey);\r\n // On the SHADOW ROOT's node when there is one — inside a shadow tree, `document` click targets\r\n // are retargeted to the host, so `contains()` against the host would report every internal click\r\n // as \"outside\" and the popover would never open.\r\n const root = controlsRef.current?.getRootNode() ?? document;\r\n const onDown = (e: Event) => {\r\n if (!controlsRef.current?.contains(e.target as Node)) setPanel(null);\r\n };\r\n root.addEventListener('pointerdown', onDown);\r\n return () => {\r\n document.removeEventListener('keydown', onKey);\r\n root.removeEventListener('pointerdown', onDown);\r\n };\r\n }, [showKeypad, isConnected]);\r\n\r\n // DTMF only means anything with live media flowing both ways — held and reconnecting don't qualify\r\n // (see the control's own `disabled` below). Leaving the panel open over a disabled trigger would\r\n // read as broken, so it closes the moment the call leaves 'active'. Only the keypad: another panel\r\n // that happens to be open (Transferir, Dispositivos) has nothing to do with media state.\r\n useEffect(() => {\r\n if (view && view.state !== 'active') setPanel((cur) => (cur === 'keypad' ? null : cur));\r\n }, [view?.state]);\r\n\r\n if (!view || view.state === 'ended') return null;\r\n\r\n const s = view.state;\r\n const isRinging = s === 'ringing';\r\n const inCall = isConnected;\r\n const name = view.remote.displayName;\r\n const number = view.remote.number;\r\n const showNumber = number !== name;\r\n\r\n // Full takeover, not a branch further down inside the normal layout — see `ConsultScreen`'s own\r\n // comment for why the caller's screen with a bolted-on panel was the wrong shape for this. Only\r\n // \"Hablar primero\" ever creates a consult call now — \"Transferir directo\" bypasses this entirely\r\n // (see `selectPresenceAgentAuto`'s own comment).\r\n if (consultCall && consultView) {\r\n return (\r\n <ConsultScreen\r\n mainName={name}\r\n consultView={consultView}\r\n now={consultNow}\r\n onReturn={() => void cancelConsult()}\r\n onComplete={() => void completeTransfer()}\r\n onHangupAll={() => void call.hangup()}\r\n />\r\n );\r\n }\r\n\r\n // Incoming calls only (matches the legacy softphone's own `IncomingCallView`, a screen distinct\r\n // from outbound/in-call) — and only once `resolveContact` has actually matched this number to a\r\n // real contact, the same \"known contacts only\" gate the legacy's own \"Ver mensajes\" button used.\r\n // Independent of `contactAction` (the Contactos-tab detail page's own action): same TYPE, a\r\n // DIFFERENT host-supplied instance, because what's useful to offer while someone is ringing you\r\n // is not necessarily what belongs on a contact's static detail page.\r\n const incomingAction = isRinging && view.remote.contact && incomingCallAction ? incomingCallAction : null;\r\n const IncomingActionIcon = incomingAction?.icon ?? ExternalLink;\r\n\r\n // The call timer is always MM:SS (zero-padded), matching the product. formatDuration is left\r\n // unpadded because the history list reads better as \"1:33\" than \"01:33\".\r\n const [rawM = '0', ss = '00'] = formatDuration(elapsedSeconds(view.answeredAt, now)).split(':');\r\n const mm = rawM.padStart(2, '0');\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n <div className=\"cv-call\">\r\n {/*\r\n Before a call connects, Colgar (or Rechazar/Contestar) is the ONLY other control on screen —\r\n a Dispositivos popover anchored anywhere near it, even spaced out, either overlapped those\r\n buttons or had to clamp itself down to something cramped and scrolly for just two rows (this\r\n SDK's actual production embed — a 310×520 host panel with its own header eating further into\r\n that — leaves very little free room around a trigger sitting in vertically-centred content).\r\n Swapping the call info for the picker in the SAME space sidesteps the problem rather than\r\n measuring around it: the picker gets the full `.cv-call` box, not a leftover sliver of it.\r\n\r\n Once connected it is the same swap, not a popover: the control row below stays put and fully\r\n usable (mute, hold and hang up all work with this open), and Dispositivos moved out of that\r\n row into this same chip so the row could go back to four controls at a size a thumb can hit.\r\n */}\r\n {showDevices ? (\r\n <div className=\"cv-call-devices-inline\">\r\n <div className=\"cv-call-devices-header\">\r\n {/* Same chip as the entry point below, not an icon-only ghost button — an icon alone\r\n here read as decoration, not a way out, which is exactly the mistake `.cv-cp-chip`\r\n (CountryPicker) already made and fixed once: \"invisible until hover... nothing says\r\n you can change this.\" A visible \"Volver\" fixes it the same way that one was fixed. */}\r\n <button type=\"button\" className=\"cv-call-devices-chip\" onClick={() => setPanel(null)}>\r\n <ArrowLeft size={13} aria-hidden />\r\n Volver\r\n </button>\r\n <span className=\"cv-call-devices-title\">Dispositivos</span>\r\n </div>\r\n {/* Who's calling doesn't disappear just because you're checking your mic — and once\r\n connected, neither does how long you have been on the call. */}\r\n <p className=\"cv-call-devices-context\">\r\n {showNumber ? `${number} · ` : ''}\r\n {s === 'active' ? `${mm}:${ss}` : (STATUS_LABEL[s] ?? '')}\r\n </p>\r\n <div className=\"cv-settings-section-body\">\r\n <DevicePickers />\r\n </div>\r\n </div>\r\n ) : transferPickerActive ? (\r\n /*\r\n Found live (2026-09-29): the agent list a moment ago picked between showing ONE agent row\r\n or forcing a scroll — `.cv-presence-list`'s own `max-height` had already been trimmed twice\r\n (T7, then T3) chasing that, and both times the room it was chasing lived somewhere else.\r\n The full avatar/name/giant-timer block above stayed on screen, unconditionally, the WHOLE\r\n time the picker was open — exactly the anti-pattern `.cv-call-devices-inline` (above) was\r\n already built to avoid for the pre-connect device picker: \"an inline swap, not an overlay,\r\n so it gets the full box, not a leftover sliver.\" The picker never got that same treatment.\r\n Measured live (a temporary harness, `playground/react/picker-harness.*`, real Chromium at\r\n this SDK's own real embed footprint, 310×520): the avatar+name+timer block alone cost\r\n ~150px of `.cv-call`'s ~340px of usable height — more than the entire agent list, the mode\r\n toggle, and the free-text row combined. Reusing `.cv-call-devices-inline`'s OWN \"who's\r\n calling doesn't disappear\" compact context line (below) instead of the full block gives\r\n that ~150px back to the one thing this screen is actually for right now: the list.\r\n */\r\n <div className=\"cv-transfer\">\r\n <div className=\"cv-transfer-context\">\r\n <span className=\"cv-call-devices-title\">{name}</span>\r\n <p className=\"cv-call-devices-context\">\r\n {showNumber ? `${number} · ` : ''}\r\n {s === 'active' ? `${mm}:${ss}` : (STATUS_LABEL[s] ?? '')}\r\n </p>\r\n </div>\r\n {consultOutcome ? (\r\n <p className=\"cv-dial-outcome\" role=\"status\" data-shown=\"true\">\r\n {consultFailText(consultOutcome)}\r\n </p>\r\n ) : null}\r\n {/*\r\n Attended-first by default (SPEC §5.6, `docs/specs/transfer-availability.md` §5): free\r\n text always consults first — its target is unconfirmed, and a blind transfer's REFER\r\n outcome is unknowable against Zadarma (§2). A presence-picked colleague under\r\n \"Transferir directo\" (below) is the one deliberate exception — see\r\n `selectPresenceAgentAuto`'s own comment for why that one-click blind transfer is\r\n accepted there.\r\n */}\r\n <div className=\"cv-transfer-row\">\r\n <input\r\n className=\"cv-search\"\r\n value={transferTo}\r\n onChange={(e) => setTransferTo(e.target.value)}\r\n placeholder=\"Nombre, ext. o número\"\r\n aria-label=\"Transferir a\"\r\n autoFocus\r\n />\r\n <button\r\n className=\"cv-btn cv-btn--accent\"\r\n disabled={!transferTo.trim()}\r\n onClick={() => void startConsult()}\r\n >\r\n {transferTo.trim() ? `Llamar a ${truncateForButton(transferTo.trim())}` : 'Llamar'}\r\n </button>\r\n </div>\r\n {/* Plan T3 (spec §5.4/§10.1): reuses `HistoryTab`'s own `.cv-segmented` filter-toggle\r\n pattern verbatim — same tablist semantics, same already-styled look — rather than\r\n inventing a second segmented-control design for the same widget. */}\r\n <div className=\"cv-segmented\" role=\"tablist\" aria-label=\"Modo de transferencia\">\r\n {(\r\n [\r\n { key: 'consult', label: 'Hablar primero' },\r\n { key: 'auto', label: 'Transferir directo' },\r\n ] as const\r\n ).map(({ key, label }) => (\r\n <button\r\n key={key}\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected={quickTransfer === (key === 'auto')}\r\n className=\"cv-segmented-btn\"\r\n onClick={() => setQuickTransfer(key === 'auto')}\r\n >\r\n {label}\r\n </button>\r\n ))}\r\n </div>\r\n <TransferPicker\r\n agents={presence}\r\n myUserId={myUserId}\r\n query={transferTo}\r\n onSelect={quickTransfer ? selectPresenceAgentAuto : selectPresenceAgent}\r\n />\r\n </div>\r\n ) : (\r\n <>\r\n <div className=\"cv-avatar-wrap\">\r\n {/* The halo is the one moment worth animating — it reads as \"ringing\" at a glance. */}\r\n {isRinging ? <span className=\"cv-avatar-ping\" aria-hidden /> : null}\r\n <div className=\"cv-avatar\" aria-hidden>\r\n {initials(name)}\r\n </div>\r\n {s === 'active' ? <span className=\"cv-avatar-dot\" aria-hidden /> : null}\r\n </div>\r\n\r\n <div className=\"cv-call-name\">{name}</div>\r\n {showNumber ? <div className=\"cv-call-number\">{number}</div> : null}\r\n\r\n {s === 'active' ? (\r\n <div className=\"cv-timer\" aria-label=\"Duración de la llamada\">\r\n <b>{mm}</b>\r\n <i>:</i>\r\n <b>{ss}</b>\r\n </div>\r\n ) : (\r\n <div className=\"cv-call-status\">\r\n {s === 'held' ? <span className=\"cv-badge-hold\">{STATUS_LABEL[s]}</span> : (STATUS_LABEL[s] ?? '')}\r\n </div>\r\n )}\r\n\r\n {/* Present in every state: it is the one way to reach the device picker, and is no longer a\r\n control in the row below (that row is four controls now — see `.cv-controls-row`). */}\r\n <div className=\"cv-call-chips\">\r\n {/* The caller-specific action comes first — it is about who is calling, which\r\n outranks a phone-utility setting. Wraps onto its own line rather than forcing\r\n both chips into a fixed row: a host's label is arbitrary text, not something\r\n this component can assume is short. (`incomingAction` is only ever set while\r\n ringing, so once connected this row is Dispositivos alone.) */}\r\n {incomingAction ? (\r\n <button\r\n type=\"button\"\r\n className=\"cv-call-devices-chip\"\r\n onClick={() => incomingAction.onClick(view.remote.contact!)}\r\n >\r\n <IncomingActionIcon size={13} aria-hidden />\r\n {incomingAction.label}\r\n </button>\r\n ) : null}\r\n <button type=\"button\" className=\"cv-call-devices-chip\" onClick={() => setPanel('devices')}>\r\n <Headphones size={13} aria-hidden />\r\n Dispositivos\r\n </button>\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n\r\n {/*\r\n Two tiers, not one row. Hang up is the ONE action that must never be hunted for, so it sits\r\n alone, centred and largest — the anchor the eye lands on. The secondaries flank above it.\r\n Previously all four shared a row and hang up was simply the last of them, the same visual\r\n weight as \"transfer\", off to one side. On a live call that is the wrong hierarchy.\r\n */}\r\n <div className=\"cv-controls\" ref={controlsRef}>\r\n {isRinging ? (\r\n <div className=\"cv-controls-primary\">\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--hangup\"\r\n onClick={() => void call.reject()}\r\n aria-label=\"Rechazar\"\r\n >\r\n <PhoneOff size={26} />\r\n </button>\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n Rechazar\r\n </span>\r\n </div>\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--answer\"\r\n onClick={() => void call.answer()}\r\n aria-label=\"Contestar\"\r\n part=\"answer-button\"\r\n >\r\n <Phone size={26} />\r\n </button>\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n Contestar\r\n </span>\r\n </div>\r\n </div>\r\n ) : (\r\n <>\r\n {inCall ? (\r\n <div className=\"cv-controls-row\">\r\n <Control\r\n icon={view.isMuted ? MicOff : Mic}\r\n label={view.isMuted ? 'Activar' : 'Silenciar'}\r\n pressed={view.isMuted}\r\n tone=\"danger\"\r\n onClick={() => call.mute(!view.isMuted)}\r\n />\r\n <Control\r\n icon={view.isOnHold ? Play : Pause}\r\n label={view.isOnHold ? 'Reanudar' : 'Espera'}\r\n pressed={view.isOnHold}\r\n tone=\"hold\"\r\n onClick={() => (view.isOnHold ? void call.unhold() : void call.hold())}\r\n />\r\n <Control\r\n icon={ArrowLeftRight}\r\n label=\"Transferir\"\r\n pressed={showTransfer}\r\n tone=\"accent\"\r\n onClick={() => togglePanel('transfer')}\r\n />\r\n <Control\r\n icon={Grid3x3}\r\n label=\"Teclado\"\r\n pressed={showKeypad}\r\n tone=\"accent\"\r\n disabled={s !== 'active'}\r\n title={\r\n s === 'held'\r\n ? 'Reanuda la llamada para usar el teclado'\r\n : s === 'reconnecting'\r\n ? 'No disponible mientras se reconecta'\r\n : undefined\r\n }\r\n onClick={() => togglePanel('keypad')}\r\n />\r\n </div>\r\n ) : null}\r\n <div className=\"cv-controls-primary\">\r\n <div className=\"cv-ctrl-item\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-round cv-round--hangup\"\r\n onClick={() => void call.hangup()}\r\n aria-label=\"Colgar\"\r\n part=\"hangup-button\"\r\n >\r\n <PhoneOff size={26} />\r\n </button>\r\n <span className=\"cv-ctrl-label\" aria-hidden>\r\n Colgar\r\n </span>\r\n </div>\r\n </div>\r\n {/*\r\n Anchored to `.cv-controls` (position:relative, spanning the full row) rather than to\r\n the Teclado trigger's own small wrapper — the same fix `.cv-cp`/CountryPicker already\r\n needed (see its own comment): anchoring to a narrow, off-centre trigger let the\r\n popover's edge reach `.cv-softphone`'s `overflow:hidden` and get clipped. A full-width\r\n anchor makes that arithmetically impossible.\r\n */}\r\n {inCall && showKeypad ? (\r\n <div className=\"cv-keypad-popover cv-keypad-popover--above\" role=\"dialog\" aria-label=\"Teclado\">\r\n {KEYPAD_KEYS.map(([key, letters]) => (\r\n <button\r\n key={key}\r\n type=\"button\"\r\n className=\"cv-key\"\r\n onClick={() => {\r\n call.sendDigits(key);\r\n // AFTER the send, so the tone confirms the digit actually went out — if\r\n // `sendDigits` throws (the session is not in a state that can carry DTMF),\r\n // silence is the honest feedback. The far end gets the digit as a SIP INFO\r\n // message the local user never hears, which is why this tone exists at all.\r\n if (keyTones) playKeyTone(key);\r\n }}\r\n >\r\n <b>{key}</b>\r\n {letters ? <small>{letters}</small> : null}\r\n </button>\r\n ))}\r\n </div>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","/** Small presentational helpers. Pure — no React, no DOM. */\r\n\r\n/** `93` → `1:33`, `3725` → `1:02:05`. */\r\nexport function formatDuration(totalSeconds: number): string {\r\n const s = Math.max(0, Math.floor(totalSeconds));\r\n const hh = Math.floor(s / 3600);\r\n const mm = Math.floor((s % 3600) / 60);\r\n const ss = s % 60;\r\n const pad = (n: number) => String(n).padStart(2, '0');\r\n return hh > 0 ? `${hh}:${pad(mm)}:${pad(ss)}` : `${mm}:${pad(ss)}`;\r\n}\r\n\r\n/** `\"Ana García\"` → `\"AG\"`, `\"+34600111222\"` → `\"#\"`. */\r\nexport function initials(name: string | null | undefined): string {\r\n if (!name) return '#';\r\n const words = name.trim().split(/\\s+/).filter(Boolean);\r\n if (words.length === 0 || /^\\+?\\d/.test(words[0]!)) return '#';\r\n return words\r\n .slice(0, 2)\r\n .map((w) => w[0]!.toUpperCase())\r\n .join('');\r\n}\r\n\r\n/** Seconds elapsed since a start Date, as a live-timer-friendly integer. */\r\nexport function elapsedSeconds(since: Date | null, now: number): number {\r\n if (!since) return 0;\r\n return Math.floor((now - since.getTime()) / 1000);\r\n}\r\n\r\n/**\r\n * A notice's age, coarse and relative — `\"justo ahora\"`, `\"hace 1 min\"`, `\"hace 2 h\"`. Deliberately\r\n * never seconds: a notice worth keeping this long (no auto-dismiss — spec §5.5) is never worth timing\r\n * to the second, and a number that changes every tick reads as more urgent than the notice actually is.\r\n */\r\nexport function formatAge(totalSeconds: number): string {\r\n const s = Math.max(0, Math.floor(totalSeconds));\r\n if (s < 60) return 'justo ahora';\r\n const mm = Math.floor(s / 60);\r\n if (mm < 60) return `hace ${mm} min`;\r\n const hh = Math.floor(mm / 60);\r\n return `hace ${hh} h`;\r\n}\r\n","import type { SoftphoneErrorCode } from '../../core/errors.js';\r\n\r\n/**\r\n * What the USER reads when something fails. Spanish, because the widget is.\r\n *\r\n * **Deliberately not in the catalogue.** `ERROR_CATALOGUE.message` is documented as *\"what went\r\n * wrong, for a developer\"* and lands on `Error.message` — the string a host logs, and the one Sentry\r\n * groups by. Translating it would hand an English-speaking partner integrator Spanish stack traces,\r\n * and would put a locale into a `core/` that currently has no user-facing string in it at all.\r\n *\r\n * So the split is: the catalogue explains the failure to whoever is debugging it, and this explains\r\n * it to whoever is trying to make a call. They are different audiences and different sentences.\r\n *\r\n * `Record<SoftphoneErrorCode, ErrorText>` is what keeps them in step: a missing code will not\r\n * compile, and neither will one that no longer exists. Annotated rather than `as const satisfies`\r\n * deliberately — the literal types buy nothing, and they make `body` unreachable on the entries that\r\n * omit it, which is every call outcome.\r\n */\r\nexport interface ErrorText {\r\n /** The headline. For a non-fatal outcome this is the whole message — \"No contestaron\". */\r\n readonly title: string;\r\n /** One line of what to do. Fatal errors always have one; a call outcome rarely needs it. */\r\n readonly body?: string;\r\n}\r\n\r\nexport const ERROR_TEXT: Record<SoftphoneErrorCode, ErrorText> = {\r\n // ── Engine lifecycle ────────────────────────────────────────────────────────\r\n // Integrator mistakes rather than user-facing failures, but they must still read as something\r\n // rather than as a blank panel if one ever reaches the UI.\r\n 'engine/duplicate-instance': {\r\n title: 'Teléfono duplicado',\r\n body: 'Hay otro teléfono abierto en esta página. Cierra uno y vuelve a cargar.',\r\n },\r\n 'engine/not-started': { title: 'El teléfono aún no está listo' },\r\n 'engine/destroyed': {\r\n title: 'Teléfono cerrado',\r\n body: 'Vuelve a cargar la página para usarlo de nuevo.',\r\n },\r\n\r\n // ── Auth ────────────────────────────────────────────────────────────────────\r\n // Never \"token\": the user has no idea what one is. What they can act on is the session.\r\n 'auth/token-fetch-failed': {\r\n title: 'Sin conexión con el servidor',\r\n body: 'No se ha podido activar el teléfono. Reinténtalo en unos segundos.',\r\n },\r\n 'auth/token-rejected': {\r\n title: 'Sesión caducada',\r\n body: 'Vuelve a iniciar sesión para poder llamar.',\r\n },\r\n\r\n // ── Media ───────────────────────────────────────────────────────────────────\r\n // Verbatim from MicPermissionGate, which already says these well and says them first.\r\n //\r\n // NEVER ACTUALLY SHOWN via this table — these four codes (through `media/playback-blocked`, below)\r\n // are never raised as a `SoftphoneError` at all. See the fuller comment on each in `core/errors.ts`\r\n // for why. Copy kept here anyway so the catalogue and this file stay the same shape as every other\r\n // code — `error-text.test.ts` would fail the build the moment they drifted.\r\n 'media/permission-denied': {\r\n title: 'Micrófono bloqueado',\r\n body: 'Permítelo en tu navegador para poder llamar.',\r\n },\r\n 'media/no-input-device': {\r\n title: 'Sin micrófono',\r\n body: 'Conecta un micrófono y vuelve a intentarlo.',\r\n },\r\n 'media/webrtc-unsupported': {\r\n title: 'Llamadas no disponibles',\r\n body: 'Este navegador no admite llamadas. Prueba con Chrome, Edge o Firefox.',\r\n },\r\n 'media/playback-blocked': { title: 'Toca la pantalla para activar el sonido' },\r\n\r\n // ── Network / signalling ────────────────────────────────────────────────────\r\n // \"Centralita\" rather than \"SIP\" or \"registro\": the user knows what a phone system is.\r\n 'net/registration-failed': {\r\n title: 'No se pudo conectar',\r\n body: 'No hemos podido conectar con la centralita. Reintenta en unos segundos.',\r\n },\r\n 'net/transport-failed': {\r\n title: 'Conexión perdida',\r\n body: 'Se ha perdido la conexión con la centralita.',\r\n },\r\n // NEVER ACTUALLY SHOWN either — CallScreen's own \"Reconectando…\" already covers this, off the\r\n // call's `reconnecting` state rather than this channel. See the comment in `core/errors.ts`.\r\n 'net/ice-failed': { title: 'Recuperando el audio…' },\r\n\r\n // ── Call ────────────────────────────────────────────────────────────────────\r\n /*\r\n THE VOICE RULE FOR THIS BLOCK: say what HAPPENED, not what it is called.\r\n\r\n These were status labels — \"Llamada perdida\", \"Llamada rechazada\", \"Sin respuesta\". Each is a\r\n name for a category rather than an account of an event, which is why they read as a database enum\r\n someone forgot to translate into human. Worse, a label hides the ACTOR: \"Llamada rechazada\" never\r\n says who rejected what, so the user reading it after declining a call and the user reading it\r\n after being declined see the same three words.\r\n\r\n So each one is a short sentence about what the other person, or the phone, did — the form\r\n `call/busy` already had, and the reason it was the only one here that read clearly.\r\n\r\n Impersonal third-person plural (\"contestaron\", \"colgaron\") throughout: the user does not know who\r\n is at the other end, and it is what Spanish uses when the subject is unknown. Mixing it with the\r\n singular across neighbouring lines reads as carelessness.\r\n\r\n LENGTH IS A HARD CONSTRAINT, not a preference. `.cv-dial-outcome` is one line at a fixed\r\n `1.15rem`, and the keypad below it is `flex: 1` — a title that wraps resizes every key and shifts\r\n the grid under a finger already reaching for it. `error-text.test.ts` caps this at 48 characters.\r\n */\r\n 'call/not-answerable': { title: 'Esa llamada ya ha terminado' },\r\n /*\r\n NOT \"Comunicando\", which is what this said and what sent us looking. SIP 486 is both \"the line is\r\n engaged\" AND what almost every endpoint sends when a person presses decline — including our own\r\n `reject()`. One code, two events, no way to tell them apart, so the copy has to hold both rather\r\n than assert the less likely one. `call/rejected` can be definite: an endpoint sending 603 Decline\r\n means exactly that.\r\n */\r\n 'call/busy': { title: 'No contestaron o la línea estaba ocupada' },\r\n 'call/no-answer': { title: 'No contestaron' },\r\n 'call/rejected': { title: 'No aceptaron tu llamada' },\r\n /*\r\n The legacy CRM said \"La persona que llamaba colgó antes de que pudieras contestar.\" — the right\r\n fact, at three times the width of the line that has to hold it. This keeps the fact and drops the\r\n words: the user needs to know the call was FOR them and that nobody is waiting on the line.\r\n \"Llamada perdida\" alone tested badly for exactly the label reason above — it names the category\r\n without saying anyone rang.\r\n */\r\n 'call/missed': { title: 'Colgaron antes de que pudieras contestar' },\r\n // \"No se pudo completar la llamada\" was our own \"something went wrong\": true of every failure and\r\n // useful for none. The number is what the user can actually act on.\r\n 'call/failed': { title: 'No se pudo conectar con ese número' },\r\n // The load-bearing half is the SECOND sentence: the original call is still up, and a user who\r\n // thinks they dropped it will hang up on a client to \"fix\" it.\r\n 'call/transfer-failed': { title: 'No se pudo transferir. Sigues en la llamada' },\r\n 'call/unsupported': { title: 'Esta función no está disponible' },\r\n\r\n // ── Provider ────────────────────────────────────────────────────────────────\r\n 'provider/provision-failed': {\r\n title: 'No se pudo activar el teléfono',\r\n body: 'Si el problema continúa, contacta con soporte.',\r\n },\r\n};\r\n","import { useEffect, useState } from 'react';\r\n\r\n/**\r\n * `Date.now()`, updated every `intervalMs` while `enabled`. For the live call timer.\r\n *\r\n * Kept as its own hook so only the timer text re-renders on each tick, not the whole widget.\r\n */\r\nexport function useTicker(enabled: boolean, intervalMs = 1000): number {\r\n const [now, setNow] = useState(() => Date.now());\r\n useEffect(() => {\r\n if (!enabled) return;\r\n setNow(Date.now());\r\n const id = setInterval(() => setNow(Date.now()), intervalMs);\r\n return () => clearInterval(id);\r\n }, [enabled, intervalMs]);\r\n return now;\r\n}\r\n","import { useEffect } from 'react';\r\nimport { Headphones, Mic } from 'lucide-react';\r\nimport { useDevices, useSoftphone } from '../../react/index.js';\r\nimport type { ContactActionIcon } from '../types.js';\r\n\r\n/**\r\n * A device's own label, or a numbered fallback.\r\n *\r\n * `enumerateDevices()` returns an EMPTY `label` until the microphone has been granted at least once\r\n * (a browser privacy measure — see `AudioDevices.refresh`'s own comment) — a blank row in a picker\r\n * reads as broken, not as \"permission pending\", so this names it something a user can still pick.\r\n */\r\nfunction deviceLabel(device: MediaDeviceInfo, index: number, kind: 'input' | 'output'): string {\r\n if (device.label) return device.label;\r\n return kind === 'input' ? `Micrófono ${index + 1}` : `Altavoz ${index + 1}`;\r\n}\r\n\r\n/** `''` is the DOM's own spelling of \"system default\" on a `<select>`; `null` is this SDK's. */\r\nconst DEFAULT_OPTION = '';\r\n\r\nfunction DevicePicker({\r\n icon: Icon,\r\n label,\r\n kind,\r\n options,\r\n value,\r\n onChange,\r\n emptyText,\r\n}: Readonly<{\r\n icon: ContactActionIcon;\r\n label: string;\r\n kind: 'input' | 'output';\r\n options: readonly MediaDeviceInfo[];\r\n value: string | null;\r\n onChange: (deviceId: string | null) => void;\r\n emptyText: string;\r\n}>) {\r\n return (\r\n <div className=\"cv-settings-row\">\r\n <span className=\"cv-settings-row-icon\" aria-hidden>\r\n <Icon size={16} />\r\n </span>\r\n <span className=\"cv-settings-row-text\">\r\n <span className=\"cv-settings-row-label\" id={`cv-settings-label-${kind}`}>\r\n {label}\r\n </span>\r\n {options.length > 0 ? (\r\n <select\r\n className=\"cv-settings-select\"\r\n aria-labelledby={`cv-settings-label-${kind}`}\r\n value={value ?? DEFAULT_OPTION}\r\n onChange={(e) => onChange(e.target.value === DEFAULT_OPTION ? null : e.target.value)}\r\n >\r\n <option value={DEFAULT_OPTION}>Predeterminado del sistema</option>\r\n {options.map((d, i) => (\r\n <option key={d.deviceId} value={d.deviceId}>\r\n {deviceLabel(d, i, kind)}\r\n </option>\r\n ))}\r\n </select>\r\n ) : (\r\n <span className=\"cv-settings-empty\">{emptyText}</span>\r\n )}\r\n </span>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Both device pickers (microphone + speaker), self-contained: reads `useDevices()` itself and\r\n * re-scans on mount. Shared between the Ajustes tab and the in-call quick-switch popover\r\n * (`CallScreen`) so the two surfaces show the same devices under the same labels and can't drift\r\n * apart — there is exactly one place that knows what a device row looks like.\r\n */\r\nexport function DevicePickers() {\r\n const softphone = useSoftphone();\r\n const devices = useDevices();\r\n\r\n // Labels enumerate blank until the microphone has been granted at least once, and a permission\r\n // grant fires no `devicechange` — so every surface that shows device NAMES re-scans on mount\r\n // rather than trusting whatever `BrowserAudioDevices` happened to see when the softphone was\r\n // first constructed. `softphone`, not `devices`, is the dependency: `devices` is a fresh object\r\n // every time it changes (see `useDevices`), and depending on it here would re-trigger this effect\r\n // on its own refresh.\r\n useEffect(() => {\r\n void softphone.audio.refresh();\r\n }, [softphone]);\r\n\r\n return (\r\n <>\r\n <DevicePicker\r\n icon={Mic}\r\n label=\"Micrófono\"\r\n kind=\"input\"\r\n options={devices.inputs}\r\n value={devices.currentInputId}\r\n onChange={(id) => void devices.setInput(id)}\r\n emptyText=\"No se encontró ningún micrófono\"\r\n />\r\n {devices.canSelectOutput ? (\r\n <DevicePicker\r\n icon={Headphones}\r\n label=\"Altavoces\"\r\n kind=\"output\"\r\n options={devices.outputs}\r\n value={devices.currentOutputId}\r\n onChange={(id) => void devices.setOutput(id)}\r\n emptyText=\"No se encontró ningún altavoz\"\r\n />\r\n ) : (\r\n // Safari and most of Firefox have no `setSinkId` at all — nothing here would do anything,\r\n // and offering a picker that silently fails is worse than not offering one.\r\n <p className=\"cv-settings-note\">\r\n Tu navegador no permite elegir el altavoz desde aquí — cámbialo en los ajustes del\r\n sistema.\r\n </p>\r\n )}\r\n </>\r\n );\r\n}\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { Loader2, Phone, Search, User, Users, X } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { ContactDetail } from './ContactDetail.js';\r\nimport { useInfiniteList } from '../lib/useInfiniteList.js';\r\nimport type { Contact } from '../../core/types.js';\r\nimport type { ContactAction, ContactsSource } from '../types.js';\r\nimport { initials } from '../lib/format.js';\r\n\r\nconst PAGE = 50;\r\n\r\n/**\r\n * The Contactos tab — decoupled. Data comes from an injected `ContactsSource`; contacts are\r\n * `Contact { id, name, phone }` (never `wa_id`, SPEC §4). Tapping a contact always opens its detail\r\n * page (`ContactDetail`) — `contactAction` customises the ONE extra row on it, not what tapping the\r\n * list itself does; there is no bypass of the detail page from here.\r\n */\r\nexport function ContactsTab({\r\n source,\r\n contactAction,\r\n}: Readonly<{\r\n source: ContactsSource;\r\n contactAction?: ContactAction;\r\n}>) {\r\n const softphone = useSoftphone();\r\n const [search, setSearch] = useState('');\r\n const [debouncedSearch, setDebouncedSearch] = useState('');\r\n const [selected, setSelected] = useState<Contact | null>(null);\r\n\r\n useEffect(() => {\r\n const t = setTimeout(() => setDebouncedSearch(search), 200);\r\n return () => clearTimeout(t);\r\n }, [search]);\r\n\r\n // `loadPage`'s identity is `useInfiniteList`'s reset signal — it must only change once the\r\n // DEBOUNCED term changes, or every keystroke would restart the list instead of the fetch it\r\n // triggers being debounced.\r\n const loadPage = useCallback(\r\n (skip: number) =>\r\n source({ search: debouncedSearch, skip, limit: PAGE }).then((page) => ({\r\n items: page.items,\r\n hasMore: skip + page.items.length < page.total,\r\n })),\r\n [source, debouncedSearch],\r\n );\r\n const {\r\n items,\r\n loading: loadingPage,\r\n loadingMore,\r\n hasMore,\r\n containerRef,\r\n sentinelRef,\r\n } = useInfiniteList(loadPage);\r\n // The 200ms debounce above delays `debouncedSearch` (and with it `loadPage`'s identity), so the\r\n // very first keystroke would otherwise keep showing the PREVIOUS term's results for up to 200ms\r\n // with no loading indicator. Comparing the two search values catches exactly that window.\r\n const loading = loadingPage || search !== debouncedSearch;\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n <div className=\"cv-list-head\">\r\n {/*\r\n A wrapper, not a change to `.cv-search` itself — that class is shared with the transfer\r\n input in CallScreen, which wants none of this (no icon, no clear button, a different\r\n affordance entirely). The icon and clear button are additive, scoped to this field only.\r\n */}\r\n <div className=\"cv-search-field\">\r\n <Search className=\"cv-search-icon\" size={15} aria-hidden />\r\n <input\r\n className=\"cv-search cv-search--icon\"\r\n value={search}\r\n onChange={(e) => setSearch(e.target.value)}\r\n placeholder=\"Buscar contactos\"\r\n aria-label=\"Buscar contactos\"\r\n />\r\n {search ? (\r\n <button\r\n type=\"button\"\r\n className=\"cv-search-clear\"\r\n onClick={() => setSearch('')}\r\n aria-label=\"Limpiar búsqueda\"\r\n >\r\n <X size={14} />\r\n </button>\r\n ) : null}\r\n </div>\r\n </div>\r\n\r\n <div className=\"cv-list\" ref={containerRef}>\r\n {loading ? (\r\n // The spinner alone was silent to a screen reader — nothing else on this state carries\r\n // the word \"loading\" for it to announce. `role=\"status\"` + real text fixes both the\r\n // accessibility gap and, incidentally, gives the icon something to be decorative NEXT TO\r\n // rather than being the sole carrier of the information itself.\r\n <div className=\"cv-empty\" role=\"status\">\r\n <Loader2 className=\"cv-empty-spinner\" size={18} aria-hidden />\r\n <span className=\"cv-empty-title\">Cargando…</span>\r\n </div>\r\n ) : items.length === 0 ? (\r\n <div className=\"cv-empty\">\r\n <span className=\"cv-empty-icon\" aria-hidden>\r\n <Users size={20} />\r\n </span>\r\n <p className=\"cv-empty-title\">{search ? 'Sin resultados' : 'No tienes contactos'}</p>\r\n <p className=\"cv-empty-sub\">\r\n {search ? `Nada coincide con «${search}».` : 'Tus contactos con teléfono aparecerán aquí.'}\r\n </p>\r\n </div>\r\n ) : (\r\n <>\r\n {items.map((c) => (\r\n // A row, not a button: the name area and the call action are separate controls, so\r\n // neither is nested inside the other (nested interactives are invalid + inaccessible).\r\n <div key={c.id} className=\"cv-item\">\r\n <span className=\"cv-item-avatar\" aria-hidden>\r\n {initials(c.name) === '#' ? <User size={17} /> : initials(c.name)}\r\n </span>\r\n {/* Always enabled — tapping a contact opens its detail page unconditionally now.\r\n `contactAction` decides whether THAT page has an extra row, not whether this does\r\n anything at all. */}\r\n <button type=\"button\" className=\"cv-item-main\" onClick={() => setSelected(c)}>\r\n <span className=\"cv-item-name\">{c.name ?? c.phone}</span>\r\n <span className=\"cv-item-sub\">{c.phone}</span>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"cv-item-action\"\r\n data-tone=\"accent\"\r\n aria-label={`Llamar a ${c.name ?? c.phone}`}\r\n onClick={() => void softphone.call(c.phone)}\r\n >\r\n <Phone size={16} />\r\n </button>\r\n </div>\r\n ))}\r\n {/* The scroll-triggered \"load more\" marker — only rendered while there IS more, so the\r\n observer (see `useInfiniteList`) naturally stops firing once the list is exhausted. */}\r\n {hasMore ? <div ref={sentinelRef} className=\"cv-list-sentinel\" aria-hidden /> : null}\r\n {loadingMore ? (\r\n <div className=\"cv-list-loading-more\" role=\"status\" aria-label=\"Cargando más contactos\">\r\n <Loader2 className=\"cv-list-loading-more-spinner\" size={14} aria-hidden />\r\n </div>\r\n ) : null}\r\n </>\r\n )}\r\n </div>\r\n\r\n {/* Kept mounted underneath the list, not swapped in its place — so the list's own scroll\r\n position and size measurements survive a round trip through the detail page and back. */}\r\n {selected ? (\r\n <ContactDetail\r\n contact={selected}\r\n onBack={() => setSelected(null)}\r\n {...(contactAction ? { contactAction } : {})}\r\n />\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n","import { ChevronRight } from 'lucide-react';\r\nimport type { ReactNode } from 'react';\r\nimport type { ContactActionIcon } from '../types.js';\r\n\r\n/**\r\n * One row on a detail page (contact or call). `eyebrow` is the informational shape (a field: Teléfono,\r\n * its value below) — `onClick` is the action shape (one line, a chevron, something happens). A row is\r\n * never both: the legacy's \"Conversación\" row forced an ACTION into a field's label/value layout,\r\n * which is why it read as an odd, oversized field rather than as a button. Splitting the two here is\r\n * what fixes that.\r\n *\r\n * Shared between `ContactDetail` and `HistoryDetail` rather than duplicated — the two pages show\r\n * different fields, but the ROW itself (icon + eyebrow + value, optionally a chevron) is one thing.\r\n */\r\nexport function DetailRow({\r\n icon: Icon,\r\n eyebrow,\r\n text,\r\n onClick,\r\n}: Readonly<{\r\n icon: ContactActionIcon;\r\n eyebrow?: string;\r\n text: ReactNode;\r\n onClick?: () => void;\r\n}>) {\r\n const inner = (\r\n <>\r\n <span className=\"cv-detail-row-icon\" aria-hidden>\r\n <Icon size={16} />\r\n </span>\r\n <span className=\"cv-detail-row-text\">\r\n {eyebrow ? <span className=\"cv-detail-row-eyebrow\">{eyebrow}</span> : null}\r\n <span className=\"cv-detail-row-value\">{text}</span>\r\n </span>\r\n {onClick ? <ChevronRight size={16} className=\"cv-detail-row-chevron\" aria-hidden /> : null}\r\n </>\r\n );\r\n return onClick ? (\r\n <button type=\"button\" className=\"cv-detail-row cv-detail-row--action\" onClick={onClick}>\r\n {inner}\r\n </button>\r\n ) : (\r\n <div className=\"cv-detail-row\">{inner}</div>\r\n );\r\n}\r\n","import { ArrowLeft, ExternalLink, Phone } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { useIntlFormatter } from '../dialing/format-number.js';\r\nimport { initials } from '../lib/format.js';\r\nimport { DetailRow } from './DetailRow.js';\r\nimport type { Contact } from '../../core/types.js';\r\nimport type { ContactAction } from '../types.js';\r\n\r\n/**\r\n * A contact's detail page — avatar, name, phone, one optional host-defined action, and the call\r\n * button. Opens over the list when a contact is tapped (`ContactsTab` owns that transition); this\r\n * component only knows how to show ONE contact and get back out.\r\n */\r\nexport function ContactDetail({\r\n contact,\r\n onBack,\r\n contactAction,\r\n}: Readonly<{\r\n contact: Contact;\r\n onBack: () => void;\r\n contactAction?: ContactAction;\r\n}>) {\r\n const softphone = useSoftphone();\r\n const formatIntl = useIntlFormatter();\r\n const formatted = formatIntl(contact.phone);\r\n const name = contact.name ?? formatted;\r\n\r\n return (\r\n <div className=\"cv-detail\" role=\"region\" aria-label={name}>\r\n <div className=\"cv-detail-head\">\r\n <button type=\"button\" className=\"cv-detail-back\" onClick={onBack}>\r\n <ArrowLeft size={16} aria-hidden />\r\n Contactos\r\n </button>\r\n </div>\r\n\r\n <div className=\"cv-detail-body\">\r\n <div className=\"cv-detail-identity\">\r\n <span className=\"cv-detail-avatar\" aria-hidden>\r\n {initials(contact.name)}\r\n </span>\r\n <h2 className=\"cv-detail-name\">{name}</h2>\r\n </div>\r\n\r\n <div className=\"cv-detail-rows\">\r\n <DetailRow icon={Phone} eyebrow=\"Teléfono\" text={formatted} />\r\n {contactAction ? (\r\n <DetailRow\r\n icon={contactAction.icon ?? ExternalLink}\r\n text={contactAction.label}\r\n onClick={() => contactAction.onClick(contact)}\r\n />\r\n ) : null}\r\n </div>\r\n </div>\r\n\r\n <div className=\"cv-detail-foot\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-btn cv-btn--accent cv-detail-call\"\r\n onClick={() => void softphone.call(contact.phone)}\r\n >\r\n <Phone size={16} aria-hidden />\r\n Llamar\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nexport interface InfiniteListPage<T> {\r\n readonly items: readonly T[];\r\n /** Whether another page exists beyond this one. */\r\n readonly hasMore: boolean;\r\n}\r\n\r\nexport interface InfiniteListResult<T> {\r\n readonly items: readonly T[];\r\n /** True only while the FIRST page (for the current `loadPage`) is in flight. */\r\n readonly loading: boolean;\r\n /** True while a SUBSEQUENT page is in flight — kept separate from `loading` so the list doesn't\r\n * drop back to the full empty/spinner state on every scroll-triggered fetch. */\r\n readonly loadingMore: boolean;\r\n readonly hasMore: boolean;\r\n /** The first page failed. Subsequent-page failures are not surfaced here — see `loadMore` below. */\r\n readonly error: boolean;\r\n /** Attach to the scrollable list element — the `IntersectionObserver`'s `root`. */\r\n readonly containerRef: (node: HTMLElement | null) => void;\r\n /** Attach to a marker rendered after the last row, only while `hasMore`. */\r\n readonly sentinelRef: (node: HTMLElement | null) => void;\r\n}\r\n\r\n/**\r\n * Pages a list on scroll. `loadPage(skip)` fetches one page; the hook appends it and arms a\r\n * sentinel row, observed with a plain `IntersectionObserver` against the scrollable container, to\r\n * fetch the next one as it nears the bottom. No virtualization, no extra dependency — proportionate\r\n * to the list sizes a softphone panel holds (a CRM's contacts, a call history), where scrolling\r\n * itself is the cost, not rendering N rows of DOM.\r\n *\r\n * `root` is set explicitly to the scroll container rather than left as the default (browser\r\n * viewport), because the widget can sit anywhere on a host's page — a panel that is itself fully\r\n * on-screen but taller than the visible viewport would otherwise never fire.\r\n *\r\n * `loadPage`'s IDENTITY is the reset signal: give it a new one (`useCallback`, keyed on whatever\r\n * should restart the list — a changed `source` prop, a changed search term) and the hook drops the\r\n * current items and fetches page one again. A page landing after a newer `loadPage` has already\r\n * superseded it is discarded via `seqRef`, the same race the legacy CRM's `ContactsTab` guarded\r\n * against with its own `seqRef` bumped per search.\r\n */\r\nexport function useInfiniteList<T>(loadPage: (skip: number) => Promise<InfiniteListPage<T>>): InfiniteListResult<T> {\r\n const [items, setItems] = useState<readonly T[]>([]);\r\n const [loading, setLoading] = useState(true);\r\n const [loadingMore, setLoadingMore] = useState(false);\r\n const [hasMore, setHasMore] = useState(true);\r\n const [error, setError] = useState(false);\r\n\r\n const seqRef = useRef(0);\r\n const itemsRef = useRef<readonly T[]>(items);\r\n itemsRef.current = items;\r\n const loadingMoreRef = useRef(false);\r\n const hasMoreRef = useRef(true);\r\n\r\n useEffect(() => {\r\n const seq = ++seqRef.current;\r\n loadingMoreRef.current = false;\r\n hasMoreRef.current = true;\r\n setItems([]);\r\n setHasMore(true);\r\n setError(false);\r\n setLoading(true);\r\n void loadPage(0)\r\n .then((page) => {\r\n if (seq !== seqRef.current) return;\r\n setItems(page.items);\r\n setHasMore(page.hasMore);\r\n hasMoreRef.current = page.hasMore;\r\n })\r\n .catch(() => {\r\n if (seq !== seqRef.current) return;\r\n setItems([]);\r\n setHasMore(false);\r\n hasMoreRef.current = false;\r\n setError(true);\r\n })\r\n .finally(() => {\r\n if (seq === seqRef.current) setLoading(false);\r\n });\r\n }, [loadPage]);\r\n\r\n const loadMore = useCallback(() => {\r\n if (loadingMoreRef.current || !hasMoreRef.current) return;\r\n const seq = seqRef.current;\r\n loadingMoreRef.current = true;\r\n setLoadingMore(true);\r\n void loadPage(itemsRef.current.length)\r\n .then((page) => {\r\n if (seq !== seqRef.current) return;\r\n setItems((prev) => [...prev, ...page.items]);\r\n setHasMore(page.hasMore);\r\n hasMoreRef.current = page.hasMore;\r\n })\r\n .catch(() => {\r\n // Left `hasMore`/`hasMoreRef` untouched deliberately — a transient failure should not\r\n // permanently stop pagination. The sentinel stays armed, and scrolling away and back\r\n // (a real change in its intersection state) retries, mirroring the legacy CRM's\r\n // `react-window-infinite-loader` comment: \"ignore — retries on further scroll.\"\r\n })\r\n .finally(() => {\r\n loadingMoreRef.current = false;\r\n if (seq === seqRef.current) setLoadingMore(false);\r\n });\r\n }, [loadPage]);\r\n\r\n const [containerEl, setContainerEl] = useState<HTMLElement | null>(null);\r\n const [sentinelEl, setSentinelEl] = useState<HTMLElement | null>(null);\r\n // Refs, not the `loadMore`/`hasMore` values directly, so the observer effect below does not\r\n // need to re-run (tear down and recreate the observer) every time either one changes.\r\n const loadMoreRef = useRef(loadMore);\r\n loadMoreRef.current = loadMore;\r\n\r\n useEffect(() => {\r\n if (!containerEl || !sentinelEl) return;\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n if (entry?.isIntersecting) loadMoreRef.current();\r\n },\r\n { root: containerEl, rootMargin: '160px' },\r\n );\r\n observer.observe(sentinelEl);\r\n return () => observer.disconnect();\r\n }, [containerEl, sentinelEl]);\r\n\r\n return {\r\n items,\r\n loading,\r\n loadingMore,\r\n hasMore,\r\n error,\r\n containerRef: setContainerEl,\r\n sentinelRef: setSentinelEl,\r\n };\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { Check, ChevronDown, Loader2, Mic, Phone, Users } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { useInfiniteList } from '../lib/useInfiniteList.js';\r\nimport { useIntlFormatter } from '../dialing/format-number.js';\r\nimport { HistoryDetail } from './HistoryDetail.js';\r\nimport { Icon, OUTCOME_LABELS, statusTone, timeLabel } from './history-format.js';\r\nimport type { AgentsDirectory, CallHistoryEntry, HistorySource } from '../types.js';\r\nimport { formatDuration } from '../lib/format.js';\r\n\r\nconst PAGE = 30;\r\ntype StatusFilter = 'all' | 'missed';\r\n\r\nfunction startOfDay(at: Date): number {\r\n return new Date(at.getFullYear(), at.getMonth(), at.getDate()).getTime();\r\n}\r\n\r\nfunction dayLabel(at: Date, now: number): string {\r\n const diffDays = Math.round((startOfDay(new Date(now)) - startOfDay(at)) / 86_400_000);\r\n if (diffDays === 0) return 'Hoy';\r\n if (diffDays === 1) return 'Ayer';\r\n return at.toLocaleDateString('es-ES', { day: 'numeric', month: 'long' });\r\n}\r\n\r\n/** Consecutive rows sharing a day label, newest-first — the server already sorts that way. */\r\nfunction groupByDay(\r\n entries: readonly CallHistoryEntry[],\r\n now: number,\r\n): ReadonlyArray<{ readonly label: string; readonly rows: readonly CallHistoryEntry[] }> {\r\n const groups: Array<{ label: string; rows: CallHistoryEntry[] }> = [];\r\n for (const e of entries) {\r\n const label = dayLabel(e.at, now);\r\n const last = groups.at(-1);\r\n if (last && last.label === label) last.rows.push(e);\r\n else groups.push({ label, rows: [e] });\r\n }\r\n return groups;\r\n}\r\n\r\n/**\r\n * \"Todas las personas\" / \"Mis llamadas · X\" / a specific person — the Historial tab's filter by who\r\n * handled the call. Own combobox, same shape as `CountryPicker`'s (a `<button>` + a positioned\r\n * `<div>`, no external popover lib) but not sharing its code: the two pickers have no reason to\r\n * change together, and duplicating this little outside-click/Escape handling is cheaper than coupling\r\n * them through a shared abstraction neither actually needs.\r\n */\r\nfunction PersonFilter({\r\n value,\r\n directory,\r\n onChange,\r\n}: Readonly<{\r\n /** '' means everyone. */\r\n value: string;\r\n directory: AgentsDirectory;\r\n onChange: (userId: string) => void;\r\n}>) {\r\n const [open, setOpen] = useState(false);\r\n const rootRef = useRef<HTMLDivElement>(null);\r\n\r\n // Close on outside click / Escape. On the SHADOW ROOT's node when there is one — inside a shadow\r\n // tree, `document` click targets are retargeted to the host, so `contains()` against the host would\r\n // report every internal click as \"outside\" and the popover would never open (see CountryPicker).\r\n useEffect(() => {\r\n if (!open) return;\r\n const root = rootRef.current?.getRootNode() ?? document;\r\n const onDown = (e: Event) => {\r\n if (!rootRef.current?.contains(e.target as Node)) setOpen(false);\r\n };\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') setOpen(false);\r\n };\r\n root.addEventListener('pointerdown', onDown);\r\n document.addEventListener('keydown', onKey);\r\n return () => {\r\n root.removeEventListener('pointerdown', onDown);\r\n document.removeEventListener('keydown', onKey);\r\n };\r\n }, [open]);\r\n\r\n const options: ReadonlyArray<{ readonly v: string; readonly label: string }> = [\r\n { v: '', label: 'Todas las personas' },\r\n ...(directory.me ? [{ v: directory.me.userId, label: `Mis llamadas · ${directory.me.name ?? 'Yo'}` }] : []),\r\n ...directory.people\r\n .filter((p) => !directory.me || p.userId !== directory.me.userId)\r\n .map((p) => ({ v: p.userId, label: p.name ?? 'Sin nombre' })),\r\n ];\r\n const label = options.find((o) => o.v === value)?.label ?? 'Todas las personas';\r\n\r\n return (\r\n <div className=\"cv-person-filter\" ref={rootRef}>\r\n <button\r\n type=\"button\"\r\n className=\"cv-person-filter-chip\"\r\n onClick={() => setOpen((o) => !o)}\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={open}\r\n >\r\n <Users size={13} aria-hidden />\r\n <span className=\"cv-person-filter-label\">{label}</span>\r\n <ChevronDown size={13} className=\"cv-person-filter-caret\" data-open={open} aria-hidden />\r\n </button>\r\n {open ? (\r\n <div className=\"cv-person-filter-pop\" role=\"listbox\">\r\n {options.map((opt) => (\r\n <button\r\n key={opt.v || 'all'}\r\n type=\"button\"\r\n role=\"option\"\r\n aria-selected={opt.v === value}\r\n className=\"cv-person-filter-item\"\r\n onClick={() => {\r\n onChange(opt.v);\r\n setOpen(false);\r\n }}\r\n >\r\n <span className=\"cv-person-filter-name\">{opt.label}</span>\r\n <Check size={14} className=\"cv-person-filter-check\" data-on={opt.v === value} aria-hidden />\r\n </button>\r\n ))}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * The Historial tab — decoupled. Entries come from an injected `HistorySource` (SPEC §4). Tapping a\r\n * row always opens its detail page (`HistoryDetail`) — the row's own call button places a call\r\n * directly, without opening it. Same split `ContactsTab`/`ContactDetail` already settled on, for the\r\n * same reason: a row-wide tap target and a specific, separate action live at different button.\r\n *\r\n * The two filters (status, person) are local UI state — `HistorySource` merely accepts them as\r\n * optional params, same as `ContactsSource` accepts `search`, so a host's own override can honour\r\n * them or ignore them. The person directory behind the second filter is different: it is always\r\n * Coventia's own org membership (there is no partner override point for it, unlike `contacts`), so\r\n * it is read straight off `softphone.sources` rather than threaded through as a prop.\r\n */\r\nexport function HistoryTab({ source }: Readonly<{ source: HistorySource }>) {\r\n const softphone = useSoftphone();\r\n const formatIntl = useIntlFormatter();\r\n const now = Date.now();\r\n const [status, setStatus] = useState<StatusFilter>('all');\r\n const [agentId, setAgentId] = useState(''); // '' = everyone\r\n const [directory, setDirectory] = useState<AgentsDirectory | null>(null);\r\n const [selected, setSelected] = useState<CallHistoryEntry | null>(null);\r\n\r\n // Fetched once, not paginated — an org's phone members, not its calls. Absent (and the person\r\n // filter simply does not render) when there is no Coventia backend at all: a bare dialer, or a\r\n // host-supplied `history` override with nothing behind `softphone.sources`.\r\n useEffect(() => {\r\n const listAgents = softphone.sources?.listAgents;\r\n if (!listAgents) return;\r\n let cancelled = false;\r\n void listAgents()\r\n .then((d) => !cancelled && setDirectory(d))\r\n .catch(() => {});\r\n return () => {\r\n cancelled = true;\r\n };\r\n }, [softphone]);\r\n\r\n /**\r\n * `HistorySource` has no `total` (unlike `ContactsSource`), so \"is there another page\" is read\r\n * off the page itself: a page shorter than what was asked for is the last one. A page exactly\r\n * `PAGE` long that happens to be the last one costs one extra request that returns zero rows —\r\n * an acceptable trade for not having to widen the source contract just for this.\r\n */\r\n const loadPage = useCallback(\r\n (skip: number) =>\r\n source({\r\n skip,\r\n limit: PAGE,\r\n missed: status === 'missed',\r\n ...(agentId ? { userId: agentId } : {}),\r\n }).then((rows) => ({ items: rows, hasMore: rows.length === PAGE })),\r\n [source, status, agentId],\r\n );\r\n const { items: entries, loading, loadingMore, hasMore, containerRef, sentinelRef } = useInfiniteList(loadPage);\r\n const groups = groupByDay(entries, now);\r\n\r\n return (\r\n <div className=\"cv-view\">\r\n <div className=\"cv-list-head\">\r\n <div className=\"cv-segmented\" role=\"tablist\" aria-label=\"Filtrar por estado\">\r\n {(['all', 'missed'] as const satisfies readonly StatusFilter[]).map((key) => (\r\n <button\r\n key={key}\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected={status === key}\r\n className=\"cv-segmented-btn\"\r\n onClick={() => setStatus(key)}\r\n >\r\n {key === 'all' ? 'Todas' : 'Perdidas'}\r\n </button>\r\n ))}\r\n </div>\r\n {directory ? <PersonFilter value={agentId} directory={directory} onChange={setAgentId} /> : null}\r\n </div>\r\n\r\n <div className=\"cv-list\" ref={containerRef}>\r\n {loading && <div className=\"cv-empty\">Cargando…</div>}\r\n {!loading && entries.length === 0 && (\r\n <div className=\"cv-empty\">\r\n {status === 'missed' ? 'Sin llamadas perdidas' : 'Sin llamadas recientes'}\r\n </div>\r\n )}\r\n {!loading &&\r\n groups.map((group) => (\r\n <div key={group.label}>\r\n <div className=\"cv-history-day\">{group.label}</div>\r\n {group.rows.map((e) => (\r\n <div key={e.id} className=\"cv-item\">\r\n <span className=\"cv-item-avatar\" data-tone={statusTone(e)} aria-hidden>\r\n <Icon entry={e} />\r\n </span>\r\n {/* Always enabled — tapping a call opens its detail page unconditionally, the same\r\n way a contact row does. The call button beside it is the only way to call from\r\n here now; recordings/handler info live on the detail page, not the list. */}\r\n <button\r\n type=\"button\"\r\n className=\"cv-item-main\"\r\n onClick={() => setSelected(e)}\r\n >\r\n <span className=\"cv-item-name\" data-tone={e.missed ? 'danger' : undefined}>\r\n {e.name ?? formatIntl(e.number)}\r\n </span>\r\n <span className=\"cv-item-sub\">\r\n <span className=\"tabular-nums\">{timeLabel(e.at)}</span>\r\n {e.missed ? (\r\n <span className=\"cv-item-sub-outcome\">\r\n {' '}\r\n · {e.outcome ? OUTCOME_LABELS[e.outcome] : 'Perdida'}\r\n </span>\r\n ) : (\r\n e.durationSec > 0 && ` · ${formatDuration(e.durationSec)}`\r\n )}\r\n {/* Informational only — the recording itself plays from the detail page now.\r\n A hint that opening the row is worth it, not an action of its own. */}\r\n {e.recorded ? <Mic size={11} className=\"cv-item-sub-rec\" aria-label=\"Grabada\" /> : null}\r\n </span>\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"cv-item-action\"\r\n data-tone=\"accent\"\r\n aria-label={`Llamar a ${e.name ?? e.number}`}\r\n onClick={() => void softphone.call(e.number)}\r\n >\r\n <Phone size={16} />\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n ))}\r\n {!loading && hasMore ? <div ref={sentinelRef} className=\"cv-list-sentinel\" aria-hidden /> : null}\r\n {loadingMore ? (\r\n <div className=\"cv-list-loading-more\" role=\"status\" aria-label=\"Cargando más llamadas\">\r\n <Loader2 className=\"cv-list-loading-more-spinner\" size={14} aria-hidden />\r\n </div>\r\n ) : null}\r\n </div>\r\n\r\n {/* Kept mounted underneath the list, not swapped in its place — so the list's own scroll\r\n position and size measurements survive a round trip through the detail page and back. */}\r\n {selected ? <HistoryDetail entry={selected} onBack={() => setSelected(null)} /> : null}\r\n </div>\r\n );\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { ArrowLeft, ArrowRight, CalendarClock, Hash, Loader2, Mic, Phone, Timer, User } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { useIntlFormatter } from '../dialing/format-number.js';\r\nimport { DetailRow } from './DetailRow.js';\r\nimport { Icon, OUTCOME_LABELS, statusIcon, statusTone, timeLabel, fullDateLabel } from './history-format.js';\r\nimport { formatDuration } from '../lib/format.js';\r\nimport type { CallDetail, CallHandler, CallHistoryEntry } from '../types.js';\r\n\r\n/**\r\n * Who handled the call, in order — \"Ana · 102 → Bruno · 100\", the LAST hop (the one it ended with)\r\n * highlighted. A hop whose extension never resolved to an org member falls back to \"Ext. 102\" rather\r\n * than disappearing — unifying `CallHandler`'s two sources (a real handler, a bare extension) into one\r\n * rendering, since both are the same shape by the time they reach here (see `toHandledBy`).\r\n */\r\nfunction HandlerChain({ handlers }: Readonly<{ handlers: readonly CallHandler[] }>) {\r\n return (\r\n <span className=\"cv-detail-handlers\">\r\n {handlers.map((h, i) => {\r\n const isLast = i === handlers.length - 1;\r\n const label = h.name ?? `Ext. ${h.extension}`;\r\n return (\r\n <span key={`${h.extension}-${i}`} className=\"cv-detail-handler-hop\">\r\n {i > 0 ? <ArrowRight size={12} className=\"cv-detail-handler-arrow\" aria-hidden /> : null}\r\n <span className=\"cv-detail-handler-chip\" data-tone={isLast ? 'accent' : undefined}>\r\n {label}\r\n {h.name ? <span className=\"cv-detail-handler-ext\">· {h.extension}</span> : null}\r\n </span>\r\n </span>\r\n );\r\n })}\r\n </span>\r\n );\r\n}\r\n\r\n/**\r\n * A call's detail page — identity, its recording(s) if any, and the metadata the legacy CRM's own\r\n * `CallDetail` showed. Ported close to that implementation on purpose: unlike `contactAction`, there\r\n * is no partner customisation point here to design around — the Historial tab is Coventia's data,\r\n * always, so this is a direct port rather than a generalised API.\r\n *\r\n * Opens over the list when a row is tapped (`HistoryTab` owns that transition); this component only\r\n * knows how to show ONE call and get back out.\r\n */\r\nexport function HistoryDetail({\r\n entry,\r\n onBack,\r\n}: Readonly<{\r\n entry: CallHistoryEntry;\r\n onBack: () => void;\r\n}>) {\r\n const softphone = useSoftphone();\r\n const formatIntl = useIntlFormatter();\r\n const [detail, setDetail] = useState<CallDetail | null>(null);\r\n const [loadingDetail, setLoadingDetail] = useState(false);\r\n\r\n // The enriched fetch — signed recording URLs, and the SAME handler chain with names resolved. Only\r\n // when there is something to enrich: `entry.loadDetail` is absent otherwise (see `CallHistoryEntry`).\r\n useEffect(() => {\r\n const load = entry.loadDetail;\r\n if (!load) return;\r\n let cancelled = false;\r\n setLoadingDetail(true);\r\n void load()\r\n .then((d) => !cancelled && setDetail(d))\r\n .catch(() => {\r\n // Kept as the list's own (unenriched) data — `loadingDetail` still clears, so the recording\r\n // section's own \"couldn't load\" state renders instead of spinning forever.\r\n })\r\n .finally(() => !cancelled && setLoadingDetail(false));\r\n return () => {\r\n cancelled = true;\r\n };\r\n }, [entry]);\r\n\r\n const formatted = formatIntl(entry.number);\r\n const name = entry.name ?? formatted;\r\n const handledBy = detail?.handledBy ?? entry.handledBy;\r\n const recordingUrls = detail?.recordingUrls ?? [];\r\n const loadingRecording = entry.recorded && loadingDetail && recordingUrls.length === 0;\r\n const statusText = entry.missed ? (entry.outcome ? OUTCOME_LABELS[entry.outcome] : 'Perdida') : 'Contestada';\r\n const handlerLabel =\r\n handledBy.length > 1 ? 'Ruta de la llamada' : entry.direction === 'outbound' ? 'Realizada por' : 'Atendida por';\r\n\r\n return (\r\n <div className=\"cv-detail\" role=\"region\" aria-label={name}>\r\n <div className=\"cv-detail-head\">\r\n <button type=\"button\" className=\"cv-detail-back\" onClick={onBack}>\r\n <ArrowLeft size={16} aria-hidden />\r\n Historial\r\n </button>\r\n </div>\r\n\r\n <div className=\"cv-detail-body\">\r\n <div className=\"cv-detail-identity\">\r\n <span className=\"cv-detail-avatar\" data-tone={statusTone(entry)} aria-hidden>\r\n <Icon entry={entry} />\r\n </span>\r\n <h2 className=\"cv-detail-name\" data-tone={entry.missed ? 'danger' : undefined}>\r\n {name}\r\n </h2>\r\n <p className=\"cv-detail-meta\">\r\n {statusText} · {timeLabel(entry.at)}\r\n </p>\r\n </div>\r\n\r\n {entry.recorded ? (\r\n <div className=\"cv-detail-recording\">\r\n {loadingRecording ? (\r\n <div className=\"cv-detail-recording-status\">\r\n <Loader2 size={14} className=\"cv-detail-recording-spinner\" aria-hidden />\r\n Cargando grabación…\r\n </div>\r\n ) : recordingUrls.length > 0 ? (\r\n <>\r\n <p className=\"cv-detail-recording-label\">\r\n {recordingUrls.length === 1 ? 'Grabación' : 'Grabaciones'}\r\n </p>\r\n {recordingUrls.map((url) => (\r\n <audio key={url} controls src={url} className=\"cv-detail-audio\" preload=\"metadata\" />\r\n ))}\r\n </>\r\n ) : (\r\n <p className=\"cv-detail-recording-status cv-detail-recording-status--warn\">\r\n No se pudo cargar la grabación ahora. Inténtalo de nuevo más tarde.\r\n </p>\r\n )}\r\n </div>\r\n ) : (\r\n <p className=\"cv-detail-recording-status\">\r\n <Mic size={14} aria-hidden />\r\n Esta llamada no se grabó.\r\n </p>\r\n )}\r\n\r\n <div className=\"cv-detail-rows\">\r\n <DetailRow icon={statusIcon(entry)} eyebrow=\"Estado\" text={statusText} />\r\n <DetailRow icon={CalendarClock} eyebrow=\"Fecha y hora\" text={fullDateLabel(entry.at)} />\r\n {entry.durationSec > 0 ? (\r\n <DetailRow icon={Timer} eyebrow=\"Duración\" text={formatDuration(entry.durationSec)} />\r\n ) : null}\r\n <DetailRow icon={Phone} eyebrow=\"Número\" text={formatted} />\r\n {handledBy.length > 0 ? (\r\n <DetailRow icon={User} eyebrow={handlerLabel} text={<HandlerChain handlers={handledBy} />} />\r\n ) : null}\r\n {entry.direction === 'inbound' && entry.did ? (\r\n <DetailRow icon={Hash} eyebrow=\"Número marcado (DID)\" text={formatIntl(entry.did)} />\r\n ) : null}\r\n </div>\r\n </div>\r\n\r\n <div className=\"cv-detail-foot\">\r\n <button\r\n type=\"button\"\r\n className=\"cv-btn cv-btn--accent cv-detail-call\"\r\n onClick={() => void softphone.call(entry.number)}\r\n >\r\n <Phone size={16} aria-hidden />\r\n Llamar\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { PhoneIncoming, PhoneMissed, PhoneOutgoing } from 'lucide-react';\r\nimport type { CallHistoryEntry, CallOutcome, ContactActionIcon } from '../types.js';\r\n\r\n/** The SDK's own vocabulary (never the PBX's raw disposition string — see `coventia/sources.ts`). */\r\nexport const OUTCOME_LABELS: Record<CallOutcome, string> = {\r\n 'no-answer': 'No contestada',\r\n busy: 'Ocupada',\r\n cancelled: 'Cancelada',\r\n failed: 'Fallida',\r\n unavailable: 'No disponible',\r\n};\r\n\r\n/** A literal clock time — callers that also show the date (a day header, a full timestamp) say it\r\n * separately rather than repeating it here. */\r\nexport function timeLabel(at: Date): string {\r\n return at.toLocaleTimeString('es-ES', { hour: '2-digit', minute: '2-digit' });\r\n}\r\n\r\n/** Date AND time together, spelled out — the call detail page's own \"Fecha y hora\" row, which has no\r\n * day-group header above it to lean on the way a list row does. */\r\nexport function fullDateLabel(at: Date): string {\r\n return at.toLocaleString('es-ES', {\r\n day: '2-digit',\r\n month: 'long',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n });\r\n}\r\n\r\nexport function Icon({ entry }: Readonly<{ entry: CallHistoryEntry }>) {\r\n if (entry.missed) return <PhoneMissed size={16} />;\r\n return entry.direction === 'inbound' ? <PhoneIncoming size={16} /> : <PhoneOutgoing size={16} />;\r\n}\r\n\r\n/**\r\n * The same icon `Icon` renders, but as a bare component reference rather than a rendered element —\r\n * what `DetailRow`'s `icon` prop needs (it renders the icon itself, at its own size). Kept separate\r\n * from `Icon` rather than having `Icon` take an optional `size` and reusing it two ways: `Icon` is a\r\n * component meant to be written as `<Icon entry={e} />`; this is a value meant to be passed around.\r\n */\r\nexport function statusIcon(entry: CallHistoryEntry): ContactActionIcon {\r\n if (entry.missed) return PhoneMissed;\r\n return entry.direction === 'inbound' ? PhoneIncoming : PhoneOutgoing;\r\n}\r\n\r\n/**\r\n * Three status hues, not two — matching the legacy CRM's own split (emerald/sky/rose) rather than\r\n * collapsing an answered outgoing call into the same colour as an answered incoming one. Direction\r\n * is already the icon's shape; this is a SEPARATE signal (did it connect) that direction alone can't\r\n * carry once \"connected\" itself gets a colour at all.\r\n */\r\nexport function statusTone(entry: CallHistoryEntry): 'accent' | 'info' | 'danger' {\r\n if (entry.missed) return 'danger';\r\n return entry.direction === 'inbound' ? 'accent' : 'info';\r\n}\r\n","import type { ReactNode } from 'react';\r\n\r\n/**\r\n * One labeled group on the Ajustes tab — a title, and a bordered body holding its rows (dividers\r\n * between them, no border of their own; see `.cv-settings-section-body`'s own CSS comment for why).\r\n *\r\n * Ajustes started as a flat list of two rows (Micrófono, Altavoces) with no grouping at all — fine\r\n * for two rows, unreadable the moment a third, unrelated setting arrives with nothing to tell it\r\n * apart from the device rows above it. This is the container every future settings group reuses, so\r\n * \"add a setting\" never again means \"invent a new layout for it.\"\r\n */\r\nexport function SettingsSection({\r\n title,\r\n children,\r\n}: Readonly<{\r\n title: string;\r\n children: ReactNode;\r\n}>) {\r\n return (\r\n <section className=\"cv-settings-section\">\r\n <h3 className=\"cv-settings-section-title\">{title}</h3>\r\n <div className=\"cv-settings-section-body\">{children}</div>\r\n </section>\r\n );\r\n}\r\n","import { DevicePickers } from './DevicePicker.js';\r\nimport { SettingsSection } from './SettingsSection.js';\r\n\r\n/**\r\n * The Ajustes tab: choose the microphone and the speaker (SPEC §7 Phase 2 — device management).\r\n *\r\n * Always rendered — unlike Contactos/Historial, it needs no host-supplied data source. A microphone\r\n * and a speaker are not optional parts of a phone.\r\n *\r\n * Grouped into `SettingsSection`s rather than one flat list — see that component's own comment. When\r\n * the next setting arrives, it gets its own `<SettingsSection title=\"…\">`, not a third row bolted\r\n * onto \"Dispositivos\".\r\n *\r\n * The closing note is deliberate, not filler: with a single section this tab reads as unfinished\r\n * rather than minimal, and says so — a roadmap hint, not an apology — rather than leaving the rest\r\n * of the tab blank.\r\n */\r\nexport function SettingsTab() {\r\n return (\r\n <div className=\"cv-view cv-settings\">\r\n <div className=\"cv-settings-body\">\r\n <SettingsSection title=\"Dispositivos\">\r\n <DevicePickers />\r\n </SettingsSection>\r\n <p className=\"cv-settings-more\">Más ajustes se irán añadiendo próximamente.</p>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { isWebRtcSupported } from '../../core/env.js';\r\n\r\nexport type MicState = 'checking' | 'prompting' | 'warming' | 'ready' | 'denied' | 'unsupported';\r\n\r\n/**\r\n * Microphone permission, as a state machine.\r\n *\r\n * Extracted from `MicPermissionGate` so `SoftphoneWidget` can gate itself: a softphone without a\r\n * microphone is not a softphone, so asking every integrator to remember a wrapper component is\r\n * asking them to remember not to ship something broken.\r\n *\r\n * **`warming` is the part that matters, and the part the SDK had lost.**\r\n *\r\n * `navigator.permissions.query({name:'microphone'})` saying `granted` is NOT enough. Several\r\n * browsers still prompt on the first `getUserMedia` of a page session, so a gate that trusts the\r\n * query and skips straight to `ready` moves the prompt from panel-open time — where the user is\r\n * looking at a phone and expects it — to **the middle of the first call**, where a modal steals\r\n * focus from a ringing conversation.\r\n *\r\n * So `getUserMedia` runs on EVERY mount, even when already granted. It verifies the mic works in\r\n * this session and primes the track, which is why the old CRM gate did it and why dropping it during\r\n * the port was a silent regression: it only shows up on a real call, on a real machine, once.\r\n *\r\n * The tracks are stopped immediately — we wanted the grant, not the microphone. Holding them open is\r\n * the documented Twilio mic-leak (the browser tab shows a recording indicator forever).\r\n */\r\nexport function useMicPermission(): { state: MicState; request: () => Promise<void> } {\r\n const [state, setState] = useState<MicState>('checking');\r\n\r\n /** Take the mic, confirm it opens, give it straight back. */\r\n const warm = useCallback(async () => {\r\n try {\r\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\r\n for (const track of stream.getTracks()) track.stop();\r\n setState('ready');\r\n } catch {\r\n setState('denied');\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isWebRtcSupported()) {\r\n setState('unsupported');\r\n return;\r\n }\r\n\r\n let cancelled = false;\r\n let status: PermissionStatus | null = null;\r\n\r\n const apply = (permission: PermissionState): void => {\r\n if (cancelled) return;\r\n if (permission === 'denied') {\r\n setState('denied');\r\n } else if (permission === 'granted') {\r\n // Granted, and STILL warm it — see the note above.\r\n setState('warming');\r\n void warm();\r\n } else {\r\n setState('prompting');\r\n }\r\n };\r\n\r\n void (async () => {\r\n try {\r\n status = await navigator.permissions.query({ name: 'microphone' as PermissionName });\r\n if (cancelled) return;\r\n apply(status.state);\r\n // The user can revoke mid-session from the browser's own UI; without this the widget keeps\r\n // offering a dialer that cannot open a microphone.\r\n status.onchange = () => status && apply(status.state);\r\n } catch {\r\n // Firefox has historically not supported querying 'microphone'. Not knowing is fine — ask.\r\n if (!cancelled) setState('prompting');\r\n }\r\n })();\r\n\r\n return () => {\r\n cancelled = true;\r\n if (status) status.onchange = null;\r\n };\r\n }, [warm]);\r\n\r\n return { state, request: warm };\r\n}\r\n","/**\r\n * Browser-capability probes.\r\n *\r\n * SPEC §10.2: nothing under core/ or transports/ may touch `window`, `document` or `navigator` at\r\n * MODULE SCOPE. Importing the package must be safe on a server — a Next.js consumer renders on the\r\n * server first, and a bare `ReferenceError: window is not defined` at import time makes us unusable\r\n * there no matter how framework-agnostic the runtime API is.\r\n *\r\n * Every probe below is therefore a FUNCTION, evaluated lazily at call time.\r\n */\r\n\r\n/** True when running in a browser with a DOM. False under SSR, in Node, and in a worker. */\r\nexport function isBrowser(): boolean {\r\n return typeof window !== 'undefined' && typeof document !== 'undefined';\r\n}\r\n\r\n/**\r\n * True when the browser exposes the WebRTC APIs the softphone needs.\r\n *\r\n * Worth a distinct check rather than folding into isBrowser(): privacy extensions\r\n * (uBlock Origin Extra, WebRTC Leak Prevent) disable RTCPeerConnection outright, and the resulting\r\n * failure is otherwise reported as a confusing SIP error deep in a call attempt.\r\n */\r\nexport function isWebRtcSupported(): boolean {\r\n return (\r\n isBrowser() &&\r\n typeof RTCPeerConnection !== 'undefined' &&\r\n typeof navigator !== 'undefined' &&\r\n typeof navigator.mediaDevices?.getUserMedia === 'function'\r\n );\r\n}\r\n","/**\r\n * How to un-block the microphone, per browser.\r\n *\r\n * **Steps in the widget rather than a link out**, which was the first instinct and is worse:\r\n *\r\n * - A support URL is somebody else's contract. Chrome's article checks out\r\n * (\"Utilizar la cámara y el micrófono en Chrome\"), but Mozilla's site answers every request —\r\n * including a deliberately fake slug — with a bot-challenge page, so no Firefox URL can be\r\n * verified, and every Edge slug tried returned 404. Shipping a link that might 404 is a dead end\r\n * inside a dead end.\r\n * - It is three clicks away in the browser the user is already looking at. Sending them to a\r\n * support site to read the same three clicks is a context switch that solves nothing.\r\n * - Our copy is Spanish-only by design (SPEC §2.4); a support page follows its own locale rules.\r\n *\r\n * The verified Chrome article is still offered where it applies, as a last resort rather than the\r\n * first answer.\r\n */\r\n\r\nexport interface UnblockGuide {\r\n readonly steps: readonly string[];\r\n /** Only present where the URL has been verified to exist and to be about microphone permission. */\r\n readonly url?: string;\r\n}\r\n\r\ntype BrowserId = 'firefox' | 'edge' | 'chromium' | 'safari' | 'unknown';\r\n\r\n/**\r\n * Which browser is this, for help purposes only.\r\n *\r\n * UA sniffing, knowingly: it decides which three sentences to show, so being wrong costs a slightly\r\n * off instruction, not a broken feature. Order matters — Edge and most Chromium forks put \"Chrome\"\r\n * in their UA, and Chrome puts \"Safari\" in its.\r\n */\r\nfunction detectBrowser(ua: string): BrowserId {\r\n if (/firefox|fxios/i.test(ua)) return 'firefox';\r\n if (/edg\\//i.test(ua)) return 'edge';\r\n if (/chrome|chromium|crios/i.test(ua)) return 'chromium';\r\n if (/safari/i.test(ua)) return 'safari';\r\n return 'unknown';\r\n}\r\n\r\n/** Verified: returns \"Utilizar la cámara y el micrófono en Chrome\" in Spanish. */\r\nconst CHROME_HELP = 'https://support.google.com/chrome/answer/2693767?hl=es';\r\n\r\nconst GUIDES: Record<BrowserId, UnblockGuide> = {\r\n chromium: {\r\n steps: [\r\n 'Haz clic en el icono 🔒 a la izquierda de la dirección web.',\r\n 'Busca «Micrófono» y cámbialo a «Permitir».',\r\n 'Recarga la página.',\r\n ],\r\n url: CHROME_HELP,\r\n },\r\n // Edge is Chromium: same padlock, same panel. The article is Chrome's, so it is offered but not\r\n // led with — the steps above match what an Edge user actually sees.\r\n edge: {\r\n steps: [\r\n 'Haz clic en el icono 🔒 a la izquierda de la dirección web.',\r\n 'Busca «Micrófono» y cámbialo a «Permitir».',\r\n 'Recarga la página.',\r\n ],\r\n },\r\n firefox: {\r\n steps: [\r\n 'Haz clic en el icono de micrófono tachado en la barra de direcciones.',\r\n 'Pulsa la «✕» junto a «Bloqueado» para quitar el bloqueo.',\r\n 'Recarga la página.',\r\n ],\r\n },\r\n safari: {\r\n steps: [\r\n 'Abre «Safari» → «Ajustes para este sitio web».',\r\n 'En «Micrófono», elige «Permitir».',\r\n 'Recarga la página.',\r\n ],\r\n },\r\n unknown: {\r\n steps: [\r\n 'Abre los permisos de este sitio en tu navegador.',\r\n 'Cambia el micrófono a «Permitir».',\r\n 'Recarga la página.',\r\n ],\r\n },\r\n};\r\n\r\n/** The guide for the current browser. SSR-safe: no `navigator` at module scope (SPEC §10.2). */\r\nexport function unblockGuide(): UnblockGuide {\r\n const ua = typeof navigator === 'undefined' ? '' : navigator.userAgent;\r\n return GUIDES[detectBrowser(ua)];\r\n}\r\n\r\n/** @internal — tests drive the detection without stubbing a global. */\r\nexport function __guideFor(ua: string): UnblockGuide {\r\n return GUIDES[detectBrowser(ua)];\r\n}\r\n","import type { ReactNode } from 'react';\r\nimport { Mic, MicOff, HelpCircle, ExternalLink } from 'lucide-react';\r\nimport { useMicPermission, type MicState } from './useMicPermission.js';\r\nimport { unblockGuide } from './unblock-mic.js';\r\n\r\n/**\r\n * What the user sees while the mic is not available yet. Body content only — no shell — so the\r\n * widget can render it inside its own `.cv-body` instead of nesting a second `.cv-softphone`.\r\n */\r\nexport function MicPrompt({\r\n state,\r\n onRequest,\r\n}: Readonly<{ state: MicState; onRequest: () => void }>) {\r\n if (state === 'unsupported') {\r\n return (\r\n <div className=\"cv-gate\" data-state={state} data-tone=\"danger\">\r\n <span className=\"cv-gate-mark\">\r\n <MicOff size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">Llamadas no disponibles</h3>\r\n <p>Este navegador no admite llamadas. Prueba con Chrome, Edge o Firefox.</p>\r\n </div>\r\n );\r\n }\r\n\r\n if (state === 'denied') {\r\n const guide = unblockGuide();\r\n return (\r\n <div className=\"cv-gate\" data-state={state} data-tone=\"danger\">\r\n <span className=\"cv-gate-mark\">\r\n <MicOff size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">Micrófono bloqueado</h3>\r\n <p>Permítelo en tu navegador para poder llamar.</p>\r\n\r\n {/*\r\n A dead end needs a way out, and the way out is three clicks away in the browser they are\r\n already looking at — so the steps are HERE, not behind a link to a support site.\r\n `<details>` is the disclosure: native, keyboard-accessible, no JS, collapsed by default so\r\n the panel is not a wall of text for the people who already know.\r\n */}\r\n <details className=\"cv-help\">\r\n <summary>\r\n <HelpCircle size={13} aria-hidden />\r\n Cómo permitirlo\r\n </summary>\r\n <ol>\r\n {guide.steps.map((step) => (\r\n <li key={step}>{step}</li>\r\n ))}\r\n </ol>\r\n {guide.url ? (\r\n <a href={guide.url} target=\"_blank\" rel=\"noreferrer noopener\">\r\n Guía del navegador\r\n <ExternalLink size={11} aria-hidden />\r\n </a>\r\n ) : null}\r\n </details>\r\n </div>\r\n );\r\n }\r\n\r\n /*\r\n * `warming` — `getUserMedia()` is running, and the browser may be showing its OWN permission\r\n * prompt on top of us.\r\n *\r\n * We cannot know which: the API returns one promise and signals nothing either way. **Timing\r\n * separates them.** A silent grant resolves in tens of milliseconds; a prompt waits on a human.\r\n * Since the CSS holds this state back 450 ms, the rule falls out of the delay: if this is visible\r\n * at all, somebody is being asked something.\r\n *\r\n * So it points at the browser's prompt instead of narrating ours. \"Preparando el micrófono…\" was\r\n * true and useless — it described our internals while the actual question sat unanswered in the\r\n * corner of the screen.\r\n */\r\n if (state === 'warming') {\r\n return (\r\n <div className=\"cv-gate\" data-state={state}>\r\n <span className=\"cv-gate-mark\">\r\n <Mic size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">Permite el micrófono</h3>\r\n <p>Acepta el aviso que muestra el navegador para continuar.</p>\r\n </div>\r\n );\r\n }\r\n\r\n /*\r\n * `checking` — querying `permissions.query()`. No browser UI can appear during this, so there is\r\n * nothing to point at and nothing for the user to do. Also delayed 450 ms, and in practice never\r\n * painted at all.\r\n */\r\n if (state === 'checking') {\r\n return (\r\n <div className=\"cv-gate\" data-state={state}>\r\n <span className=\"cv-gate-mark\">\r\n <Mic size={22} />\r\n </span>\r\n <p>Preparando el micrófono…</p>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"cv-gate\" data-state={state}>\r\n <span className=\"cv-gate-mark\">\r\n <Mic size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\">Permite el micrófono</h3>\r\n {/* Says WHY before asking. A permission request with no reason is the one people decline. */}\r\n <p>Lo necesitamos para que puedas hablar durante las llamadas.</p>\r\n <button className=\"cv-btn cv-btn--accent\" onClick={onRequest}>\r\n Permitir micrófono\r\n </button>\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Gate arbitrary children on microphone permission.\r\n *\r\n * **`SoftphoneWidget` now gates itself** (`requireMic`, on by default), so most integrations need\r\n * nothing here — a softphone without a microphone is not a softphone, and making the gate opt-in\r\n * meant every integrator had to know to opt in or ship something that fails mid-call.\r\n *\r\n * This stays exported for hosts that want the prompt somewhere else: their own modal, a page-level\r\n * onboarding step, or wrapping something larger than the widget.\r\n */\r\nexport function MicPermissionGate({ children }: Readonly<{ children: ReactNode }>) {\r\n const { state, request } = useMicPermission();\r\n if (state === 'ready') return <>{children}</>;\r\n return (\r\n <div className=\"cv-softphone\">\r\n <MicPrompt state={state} onRequest={() => void request()} />\r\n </div>\r\n );\r\n}\r\n","import { TriangleAlert } from 'lucide-react';\r\nimport { ERROR_TEXT } from '../lib/error-text.js';\r\nimport type { FatalSoftphoneError } from '../../core/errors.js';\r\n\r\n/**\r\n * Why the phone cannot be used, and the one thing worth trying.\r\n *\r\n * **Deliberately the same `.cv-gate` as `MicPrompt`**, not a banner. The widget already had this\r\n * affordance for \"something is wrong, here is why, here is what to do\", and it earns its shape: it\r\n * REPLACES the body rather than sitting above it. A fatal error means calling is impossible, so\r\n * leaving a dialpad visible under a warning invites the user to try anyway and learn nothing.\r\n *\r\n * No dismissal — no close button, no timer. The condition is still true; hiding the explanation would\r\n * leave a phone that silently refuses. It goes when the softphone reaches `online`, which is the only\r\n * evidence available that whatever was wrong no longer is.\r\n */\r\nexport function ErrorGate({\r\n error,\r\n onRetry,\r\n}: Readonly<{ error: FatalSoftphoneError; onRetry: () => void }>) {\r\n const text = ERROR_TEXT[error.code];\r\n\r\n return (\r\n /*\r\n `part` on all four, because this is the most intrusive thing the SDK draws — it replaces the\r\n whole dialpad — and inside `<coventia-softphone>` a shadow root makes it otherwise unreachable\r\n from the host's CSS. Custom properties alone only let a host recolour what we chose to draw.\r\n\r\n `data-code` is NOT a substitute: it is inside the shadow root, so `[data-code=…]` selectors\r\n cannot cross the boundary either. It stays for the light-DOM `/ui` path and for debugging.\r\n */\r\n <div className=\"cv-gate\" data-tone=\"danger\" data-code={error.code} part=\"error-gate\">\r\n <span className=\"cv-gate-mark\">\r\n <TriangleAlert size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\" part=\"error-title\">\r\n {text.title}\r\n </h3>\r\n {/* Every fatal code has a body — `error-text.test.ts` fails the build otherwise. */}\r\n {text.body === undefined ? null : <p part=\"error-body\">{text.body}</p>}\r\n {/*\r\n `start()` re-provisions, and every fatal code we raise is recoverable by re-provisioning:\r\n a stale key is re-fetched, a refused token is re-minted, a dead socket is rebuilt. If it\r\n fails again the gate simply stays — which is the honest outcome, not a silent one.\r\n */}\r\n <button className=\"cv-btn cv-btn--accent\" onClick={onRetry} part=\"error-retry\">\r\n Reintentar\r\n </button>\r\n </div>\r\n );\r\n}\r\n","import { MonitorSmartphone } from 'lucide-react';\r\n\r\n/**\r\n * Shown instead of the dialpad when ANOTHER open tab holds the extension\r\n * (`multi-tab-leader-election.md`).\r\n *\r\n * **Not `ErrorGate` re-skinned.** `ErrorGate`'s whole shape is welded to `FatalSoftphoneError` — it\r\n * reads `ERROR_TEXT[error.code]` and always offers a \"Reintentar\" action wired to `stop()` + `start()`.\r\n * Neither fits: nothing is broken here, there is nothing to retry, and inventing a fake catalogue code\r\n * for a condition that was never a failure would be worse than a second small component. What IS\r\n * reused is `.cv-gate` itself — the same primitive `MicPrompt`'s non-error states already render with\r\n * no `data-tone=\"danger\"`.\r\n *\r\n * No dismissal, same reasoning as `ErrorGate`: it clears itself the instant the other tab closes,\r\n * reloads, or crashes (Web Locks' own guarantee — no polling, no user action).\r\n */\r\nexport function LeaderGate() {\r\n return (\r\n <div className=\"cv-gate\" part=\"leader-gate\">\r\n <span className=\"cv-gate-mark\">\r\n <MonitorSmartphone size={22} />\r\n </span>\r\n <h3 className=\"cv-gate-title\" part=\"leader-title\">\r\n Teléfono activo en otra pestaña\r\n </h3>\r\n <p part=\"leader-body\">Solo una pestaña puede usar el teléfono a la vez. Cierra la otra para activar esta.</p>\r\n </div>\r\n );\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { SoftphoneEvent } from '../../core/events.js';\r\nimport { ERROR_TEXT } from './error-text.js';\r\nimport type { SoftphoneErrorCode } from '../../core/errors.js';\r\n\r\n/** How long an unattended outcome stays before it becomes furniture. */\r\nconst BACKSTOP_MS = 6_000;\r\n\r\n/**\r\n * The outcome of the last attempt — \"Sin respuesta\", \"Llamada rechazada\".\r\n *\r\n * **Non-fatal errors only.** A fatal one is a condition and belongs in the gate; this is an *event*,\r\n * a fact about a call that already ended, and it must not persist as though the phone were broken.\r\n *\r\n * **Cleared by the user's next intent**, which is what the previous CRM did — it called\r\n * `setError(null)` on dial, answer, reject, and on an inbound INVITE. The reasoning holds: the moment\r\n * you dial again, what happened to the last call stops being relevant. A timer alone would clear at\r\n * an arbitrary moment unrelated to what the user is doing; it is only the backstop, for when intent\r\n * never comes because the user read it and walked away.\r\n *\r\n * **Lives above the dialpad.** The outcome is raised as the call ENDS — the exact moment the widget\r\n * swaps the call screen back for the dialpad. Held inside `Dialpad` it would be born into a component\r\n * that is remounting, and lost.\r\n */\r\nexport function useCallOutcome(): {\r\n readonly outcome: { readonly code: SoftphoneErrorCode; readonly text: string } | null;\r\n readonly clear: () => void;\r\n} {\r\n const softphone = useSoftphone();\r\n const [code, setCode] = useState<SoftphoneErrorCode | null>(null);\r\n const timer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\r\n\r\n const clear = useCallback(() => {\r\n clearTimeout(timer.current);\r\n setCode(null);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const off = softphone.on(SoftphoneEvent.Error, (error) => {\r\n // Fatal errors are the gate's business. Showing them here too would say the same thing twice,\r\n // in the smaller and more dismissible of the two places.\r\n if (error.fatal) return;\r\n clearTimeout(timer.current);\r\n setCode(error.code);\r\n timer.current = setTimeout(() => setCode(null), BACKSTOP_MS);\r\n });\r\n return () => {\r\n off();\r\n clearTimeout(timer.current);\r\n };\r\n }, [softphone]);\r\n\r\n // An inbound call is intent too: the user is being asked something new, and last call's outcome is\r\n // no longer what they need to read.\r\n useEffect(() => softphone.on(SoftphoneEvent.IncomingCall, () => clear()), [softphone, clear]);\r\n\r\n return {\r\n outcome: code === null ? null : { code, text: ERROR_TEXT[code].title },\r\n clear,\r\n };\r\n}\r\n","import { useEffect, useRef } from 'react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { CallEvent, SoftphoneEvent } from '../../core/events.js';\r\nimport {\r\n createRemoteAudio,\r\n playCallEndedTone,\r\n playRingback,\r\n playRingtone,\r\n primeAudio,\r\n type RemoteAudio,\r\n type Tone,\r\n} from './audio.js';\r\nimport type { Call } from '../../core/call.js';\r\n\r\n/**\r\n * Wires the softphone's audio to call state: the remote party, the inbound ring, the outbound\r\n * ringback, and the end-of-call cue. Mounted by `SoftphoneWidget`, so a host gets all of it without\r\n * knowing it exists.\r\n *\r\n * **The remote stream is attached only on `active`, never before**, and that one rule does two jobs:\r\n *\r\n * 1. It IS the call audio. Nothing else attaches the stream, so without this a connected call is\r\n * silent in both directions.\r\n * 2. It prevents a doubled ringback. Firefox plays the carrier's early media; routing the remote\r\n * stream during outbound ringing would layer that on top of our local tone. The legacy code\r\n * carried a `suppressRemoteAudioRef` flag cleared on `accepted` — attaching on `active` is the\r\n * same rule with nothing to forget to clear.\r\n */\r\nexport function useCallAudio(enabled: boolean): void {\r\n const softphone = useSoftphone();\r\n const remote = useRef<RemoteAudio | null>(null);\r\n const tone = useRef<Tone | null>(null);\r\n\r\n useEffect(() => {\r\n if (!enabled || typeof document === 'undefined') return;\r\n\r\n /*\r\n * Unlock audio on the first interaction anywhere on the page, whatever it is — a tab, a dialpad\r\n * key, the mic-permission button.\r\n *\r\n * An inbound INVITE is not a user gesture, so a context first built when the phone rings is\r\n * created under the autoplay policy and Firefox warns about it three times. Building it during\r\n * an ordinary click costs nothing and means ringing never touches the policy at all.\r\n *\r\n * `capture` so it fires even if something calls `stopPropagation`, and it listens on the document\r\n * rather than the widget because the events that escape our shadow root are the composed ones.\r\n */\r\n const prime = (): void => primeAudio();\r\n const gestures = ['pointerdown', 'keydown'] as const;\r\n for (const type of gestures) {\r\n document.addEventListener(type, prime, { once: true, capture: true });\r\n }\r\n\r\n remote.current = createRemoteAudio();\r\n // Apply whatever output is already selected (a Settings change made before this call, or before\r\n // the widget even mounted) — `null` is a real, explicit value here (\"system default\"), not\r\n // \"nothing to do\", so this always runs rather than only when a device is chosen.\r\n void remote.current.setOutputDevice(softphone.audio.currentOutputId);\r\n // …and keep it applied if the selection changes WHILE this element is live — output routing is\r\n // meant to be instant, live call or not (see `AudioDevices.setOutput`'s own comment).\r\n const offDeviceChange = softphone.on(SoftphoneEvent.DeviceChange, () => {\r\n void remote.current?.setOutputDevice(softphone.audio.currentOutputId);\r\n });\r\n\r\n const stopTone = (): void => {\r\n tone.current?.stop();\r\n tone.current = null;\r\n };\r\n\r\n /** One tone at a time: switching states must never leave the previous one running. */\r\n const setTone = (next: 'ringtone' | 'ringback' | null): void => {\r\n stopTone();\r\n if (next === 'ringtone') tone.current = playRingtone();\r\n else if (next === 'ringback') tone.current = playRingback();\r\n };\r\n\r\n const perCall: Array<() => void> = [];\r\n // An inbound call fires BOTH `ActiveCallChanged` and `IncomingCall` for the same `Call`\r\n // (`softphone-impl.ts#adopt` emits the former, `#onIncoming` the latter, right after) — both\r\n // wired to `follow` below. That double subscription was harmless while every handler here was\r\n // idempotent (stop a tone that is already stopped, detach an already-detached stream); it stops\r\n // being harmless the moment a handler has a real one-shot side effect, like the end-of-call tone.\r\n const followedCalls = new Set<Call>();\r\n\r\n const follow = (call: Call): void => {\r\n if (followedCalls.has(call)) return;\r\n followedCalls.add(call);\r\n\r\n // Whether this call ever actually connected — the end-of-call cue is for a conversation that\r\n // was really happening, not for a ring that got cancelled or a dial that never picked up.\r\n // Tracked per-call rather than read off `call.state` at `Ended` time because by then the state\r\n // machine has already moved to 'ended' and the history is gone.\r\n let wasConnected = call.state === 'active' || call.state === 'held';\r\n\r\n const apply = (state: string): void => {\r\n if (state === 'active' || state === 'held') wasConnected = true;\r\n if (state === 'ringing') setTone('ringtone'); // inbound: they are calling us\r\n else if (state === 'dialing' || state === 'early') setTone('ringback'); // outbound\r\n else setTone(null); // answering / active / held / ended — silence\r\n };\r\n apply(call.state);\r\n\r\n perCall.push(\r\n call.on(CallEvent.StateChanged, ({ state }) => apply(state)),\r\n // Attach on `active` only — see the note above. `remoteStream` is usually already set by\r\n // then, since media arrives before the 200 OK.\r\n call.on(CallEvent.Accepted, () => {\r\n if (call.remoteStream) remote.current?.attach(call.remoteStream);\r\n }),\r\n // …but if it arrives late, take it then — as long as we are past ringing.\r\n call.on(CallEvent.RemoteStream, ({ stream }) => {\r\n if (call.state === 'active' || call.state === 'held') remote.current?.attach(stream);\r\n }),\r\n call.on(CallEvent.Ended, ({ reason }) => {\r\n followedCalls.delete(call);\r\n stopTone();\r\n remote.current?.detach();\r\n // 'local' and 'remote' are BOTH ordinary hangups — either side ending a real conversation\r\n // is the same cue. Never for 'busy' / 'rejected' / 'no-answer' / 'failed': the call never\r\n // connected, and a \"goodbye\" tone on a call nobody answered would be actively misleading.\r\n // Not for 'transferred' either — that call keeps going, just without this leg.\r\n if (wasConnected && (reason === 'local' || reason === 'remote')) playCallEndedTone();\r\n }),\r\n );\r\n };\r\n\r\n const offIncoming = softphone.on(SoftphoneEvent.IncomingCall, follow);\r\n const offActive = softphone.on(SoftphoneEvent.ActiveCallChanged, ({ call }) => {\r\n if (call) follow(call);\r\n else {\r\n stopTone();\r\n remote.current?.detach();\r\n }\r\n });\r\n if (softphone.activeCall) follow(softphone.activeCall);\r\n\r\n return () => {\r\n for (const type of gestures) document.removeEventListener(type, prime, { capture: true });\r\n offIncoming();\r\n offActive();\r\n offDeviceChange();\r\n for (const off of perCall) off();\r\n stopTone();\r\n remote.current?.destroy();\r\n remote.current = null;\r\n };\r\n }, [softphone, enabled]);\r\n}\r\n","import { Phone, PhoneMissed, X } from 'lucide-react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { useTicker } from '../lib/useTicker.js';\r\nimport { elapsedSeconds, formatAge } from '../lib/format.js';\r\nimport type { TransferNotice } from './useTransferNotices.js';\r\n\r\n/**\r\n * \"El traspaso a 101 no se conectó\" — spec §5.5. Persistent, dismissable, no timer.\r\n *\r\n * **Purely presentational — takes `notices`/`dismiss` as props rather than calling\r\n * `useTransferNotices()` itself.** The SUBSCRIPTION that hook owns has to stay alive for the whole time\r\n * the widget is mounted, not just while this component happens to be on screen: an outcome for an\r\n * earlier transfer can arrive while the agent is on a brand new, unrelated call, and if nobody were\r\n * listening at that moment it would be gone for good (the same class of gap `useTransferNotices`'s own\r\n * comment already accepts for a fully unmounted widget — this is what keeps it from also happening\r\n * every time a call is merely in progress). So `SoftphoneWidget` calls the hook once, unconditionally,\r\n * the same placement `useCallOutcome` already uses and for the same reason; only the RENDERING of this\r\n * component is conditional on being in a state where the widget isn't using the screen for something\r\n * higher-priority (a live call, the mic gate, a fatal error, a follower tab).\r\n *\r\n * **Always rendered when mounted, `role=\"status\"`, even with nothing to show** — the same reason\r\n * `Dialpad`'s own outcome line always exists: an aria-live region inserted at the same moment as its\r\n * first content is not reliably announced. Left visually empty (no padding of its own) when there is\r\n * nothing waiting, so this costs no layout space either.\r\n */\r\nexport function TransferNotices({\r\n notices,\r\n dismiss,\r\n}: Readonly<{ notices: readonly TransferNotice[]; dismiss: (id: number) => void }>) {\r\n const softphone = useSoftphone();\r\n // Only while there's something to age, and coarsely: `formatAge` never changes output more often\r\n // than once a minute, so a 1 s tick would just be wasted re-renders on a possibly long-lived notice.\r\n const now = useTicker(notices.length > 0, 15_000);\r\n\r\n const callBack = (notice: TransferNotice): void => {\r\n dismiss(notice.id); // clears itself on press (spec §5.5) — not conditional on the call succeeding\r\n if (notice.caller) void softphone.call(notice.caller).catch(() => {});\r\n };\r\n\r\n return (\r\n <div\r\n className=\"cv-transfer-notices\"\r\n role=\"status\"\r\n part=\"transfer-notices\"\r\n // Explicit, rather than leaning on a `:empty` CSS selector's assumptions about how React\r\n // renders `null`/an empty array — this is what CSS actually keys off to stay visually\r\n // zero-footprint while there is nothing waiting.\r\n data-has-notices={notices.length > 0}\r\n >\r\n {notices.length > 1 ? (\r\n <p className=\"cv-transfer-notices-count\">{notices.length} traspasos sin conectar</p>\r\n ) : null}\r\n {notices.map((notice) => (\r\n <div key={notice.id} className=\"cv-transfer-notice\" part=\"transfer-notice\">\r\n <span className=\"cv-transfer-notice-mark\" aria-hidden>\r\n <PhoneMissed size={16} />\r\n </span>\r\n <div className=\"cv-transfer-notice-body\">\r\n {/* Title and dismiss share only THIS row — not the whole card, and not the callback\r\n button below. Squeezing icon + title + subtitle + a full \"Llamar de vuelta\" button\r\n into one flex row left the title as little as ~80px to wrap into at the real ~340px\r\n embed width, breaking nearly every word onto its own line. */}\r\n <div className=\"cv-transfer-notice-header\">\r\n <p className=\"cv-transfer-notice-title\">El traspaso a {notice.target} no se conectó</p>\r\n <button\r\n type=\"button\"\r\n className=\"cv-transfer-notice-dismiss\"\r\n onClick={() => dismiss(notice.id)}\r\n aria-label=\"Descartar aviso\"\r\n part=\"transfer-notice-dismiss\"\r\n >\r\n <X size={14} />\r\n </button>\r\n </div>\r\n {/* Absent, not \"número desconocido\" — spec §7's outside-number case and a genuinely\r\n unresolved caller both leave this null, and there is nothing actionable to say either\r\n way beyond the title above. */}\r\n {notice.caller ? (\r\n <p className=\"cv-transfer-notice-subtitle\">{notice.caller} se ha desconectado.</p>\r\n ) : null}\r\n <div className=\"cv-transfer-notice-footer\">\r\n <p className=\"cv-transfer-notice-age\">{formatAge(elapsedSeconds(notice.at, now))}</p>\r\n {/* Absent when the caller's number is unknown (plan T6's own acceptance) — nothing to dial. */}\r\n {notice.caller ? (\r\n <button\r\n type=\"button\"\r\n className=\"cv-btn cv-btn--accent cv-transfer-notice-callback\"\r\n onClick={() => callBack(notice)}\r\n part=\"transfer-notice-callback\"\r\n >\r\n <Phone size={14} aria-hidden />\r\n Llamar de vuelta\r\n </button>\r\n ) : null}\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useSoftphone } from '../../react/index.js';\r\nimport { SoftphoneEvent } from '../../core/events.js';\r\n\r\n/**\r\n * One transfer that didn't connect, waiting for the agent to see it. The `id` is local to this hook —\r\n * `TransferOutcomeEvent` carries no id of its own (the source's own `id`, on `TransferOutcomeEntry`, is\r\n * a polling-internal concern the watch never exposes) — so a simple incrementing counter is enough; it\r\n * only ever needs to be unique within one mounted widget.\r\n */\r\nexport interface TransferNotice {\r\n readonly id: number;\r\n readonly target: string;\r\n /** Null when the caller's number was never known — the notice still shows, with no call-back action. */\r\n readonly caller: string | null;\r\n readonly at: Date;\r\n}\r\n\r\n/**\r\n * Accumulates `SoftphoneEvent.TransferOutcome`'s `'not-connected'` outcomes into a dismissable list —\r\n * `docs/specs/transfer-outcome-relay.md` §5.5, plan T6.\r\n *\r\n * **Deliberately NOT `useCallOutcome`'s shape.** That hook holds one value, auto-clears after a\r\n * backstop timer, and clears on the next dial/incoming intent — right for \"what just happened on the\r\n * call you're looking at now.\" A transfer notice is about a DIFFERENT, now-absent customer, arrives\r\n * roughly a minute after the agent has already moved on, and must not vanish because something else\r\n * happened in between: no backstop timer (spec §5.5's UX research — a timed notice here is one the\r\n * agent never had a fair chance to read), no clearing on intent, and more than one can be true at once.\r\n *\r\n * **A real, accepted gap:** this only sees outcomes that arrive while a widget instance is mounted and\r\n * listening. The softphone itself (not the widget) owns the watch's lifecycle, so an outcome that\r\n * lands while no widget happens to be mounted is emitted to nobody and is gone — the same category of\r\n * gap the spec already accepts for a closed tab (§7), just one level narrower. Fixing it would mean the\r\n * softphone itself holding pending notices, which is a bigger change than this task's own scope.\r\n */\r\nexport function useTransferNotices(): {\r\n readonly notices: readonly TransferNotice[];\r\n readonly dismiss: (id: number) => void;\r\n} {\r\n const softphone = useSoftphone();\r\n const [notices, setNotices] = useState<readonly TransferNotice[]>([]);\r\n const nextId = useRef(0);\r\n\r\n const dismiss = useCallback((id: number) => {\r\n setNotices((prev) => prev.filter((n) => n.id !== id));\r\n }, []);\r\n\r\n useEffect(\r\n () =>\r\n softphone.on(SoftphoneEvent.TransferOutcome, (payload) => {\r\n // The event fires for BOTH outcomes (spec §4 D2) so a host can react to a success too; the\r\n // widget itself stays silent for one. An explicit equality check, not `!== 'connected'`: an\r\n // unrecognised future status should fail toward silence, not toward showing something.\r\n if (payload.status === 'not-connected') {\r\n const id = nextId.current++;\r\n setNotices((prev) => [...prev, { id, target: payload.target, caller: payload.caller, at: payload.at }]);\r\n }\r\n }),\r\n [softphone],\r\n );\r\n\r\n return { notices, dismiss };\r\n}\r\n","/**\r\n * @coventia/softphone/styles.css\r\n *\r\n * The theming contract (SPEC §2.6) + all component styles. A host restyles the softphone by\r\n * overriding the `--cv-*` custom properties — which are INHERITED, so they cross the shadow boundary\r\n * of `<coventia-softphone>` by design (the host's own CSS *selectors* do not, which is what stops a\r\n * stray `button { width:100% }` from destroying the dialpad).\r\n *\r\n * Defaults match the Coventia product: light surface, emerald accent, soft rounded key cards.\r\n *\r\n * Reseller: coventia-softphone { --cv-accent:#7c3aed; --cv-bg:#0b0b0f; }\r\n * CRM (shadcn bridge, ~15 lines, dark mode included):\r\n * .cv-softphone { --cv-bg:hsl(var(--background)); --cv-text:hsl(var(--foreground)); … }\r\n *\r\n * TYPOGRAPHY NOTE: `--cv-font` is a system stack on purpose. An embedded widget should inherit its\r\n * host's type, not force a webfont into someone else's app; hosts override the token if they want.\r\n *\r\n * Strings are Spanish-only (SPEC §2.4). No i18n.\r\n */\r\n\r\n/*\r\n * The custom element's own box.\r\n *\r\n * A custom element is `display: inline` by default and has NO size — and the widget inside now fills\r\n * its host rather than asserting 340×520, so without this the element would render to ZERO. The\r\n * drop-in promise is \"one tag and it works\", which means the TAG must carry a box.\r\n *\r\n * These are defaults, not decisions: they sit on `:host`, so any host stylesheet outranks them —\r\n *\r\n * coventia-softphone { width: 100%; height: 100%; } ← a sidebar\r\n * coventia-softphone { height: 600px; } ← taller\r\n *\r\n * React consumers never see this: they import `/ui` and their own wrapper states the box (the CRM's\r\n * PhoneDialer does exactly that).\r\n */\r\n:host {\r\n display: block;\r\n width: 340px;\r\n height: 520px;\r\n}\r\n\r\n/* React's container inside the shadow root — element path only; inert everywhere else.\r\n *\r\n * It must pass the host's height straight through. `.cv-softphone` below is `height: 100%`, and a\r\n * percentage height resolves against the PARENT: leave this div at its default `auto` and that 100%\r\n * silently becomes `auto` too, so the widget collapses to its content height and the host's `height`\r\n * is ignored. What you see is a short card stranded in a taller box — which reads as a broken widget,\r\n * not as a broken wrapper. */\r\n.cv-mount {\r\n height: 100%;\r\n}\r\n\r\n:host,\r\n.cv-softphone {\r\n /* Surface */\r\n --cv-bg: #ffffff;\r\n --cv-surface: #f9fafb;\r\n --cv-surface-2: #f3f4f6;\r\n --cv-border: #f3f4f6;\r\n --cv-border-strong: #e5e7eb;\r\n\r\n /* Text — three tiers, split by CONTRAST DUTY, not by taste:\r\n `text` informational primary 17.7:1\r\n `muted` informational secondary 4.8:1 (AA — phone numbers, timestamps, tab labels)\r\n `faint` DECORATIVE only 2.5:1 (keypad letters, placeholder — never information)\r\n The legacy used gray-400 for all secondary text, which fails AA at 2.54:1. Splitting the tier\r\n keeps the look while making the informational text legible. */\r\n --cv-text: #111827;\r\n --cv-muted: #6b7280;\r\n --cv-faint: #9ca3af;\r\n\r\n /* Intent — emerald. Split by CONTRAST DUTY, because one \"brand green\" cannot do all three jobs:\r\n `accent` FILL that carries a white glyph → emerald-600, white 3.77:1 ✓\r\n (emerald-500 is the prettier brand green but white on it is 2.54:1 — the\r\n call button's phone icon would fail WCAG non-text contrast. Measured, not guessed.)\r\n `accent-strong` emerald AS TEXT on a surface → emerald-700, 5.48:1 ✓ for the 10px tab label\r\n `accent-light` DECORATIVE only (the ring halo) — never carries text, so it stays vivid */\r\n --cv-accent: #059669;\r\n --cv-accent-strong: #047857;\r\n --cv-accent-light: #10b981;\r\n --cv-accent-soft: #a7f3d0;\r\n --cv-accent-contrast: #ffffff;\r\n --cv-danger: #ef4444;\r\n /* `--cv-danger` ITSELF fails 3:1 non-text contrast against `--cv-danger-soft` (2.6:1, measured) —\r\n the same AS-TEXT/on-a-tinted-surface split `accent` already has, `danger` was just missing until\r\n the Historial tab's status badges needed it. Darker on light (mirrors `accent-strong`), LIGHTER on\r\n dark (red-400) — same inversion `accent-strong` documents above, same reason: emphasis on a dark\r\n surface means more light, not less.\r\n red-700 (#b91c1c) was the first pick here and overshot both minimums (6.47:1 text, 4.47:1 badge)\r\n enough to read as a dark, brownish red rather than red — red-600 clears both with real margin\r\n still (4.83:1 / 3.34:1, measured) and looks like red. */\r\n --cv-danger-strong: #dc2626;\r\n --cv-danger-soft: #fecaca;\r\n /* A third status hue, sky — for the Historial row status chip specifically: an outgoing call that\r\n WAS answered gets its own colour rather than sharing `accent`, matching the legacy CRM's own\r\n three-way split (emerald/sky/rose) that this file's earlier restrained accent-only-for-\"fine\"\r\n version had collapsed away. Same strong/soft split, same inversion, as `accent`/`danger` above —\r\n 4.47:1 light / 4.42:1 dark against `-soft`, measured. */\r\n --cv-info: #0284c7;\r\n --cv-info-strong: #0369a1;\r\n --cv-info-soft: #bae6fd;\r\n --cv-hold: #6366f1;\r\n\r\n /* Shape & type */\r\n --cv-radius: 16px;\r\n /* Strong ease-out. The built-in CSS easings are too weak to read as intentional. */\r\n --cv-ease-out: cubic-bezier(0.23, 1, 0.32, 1);\r\n --cv-radius-key: 16px;\r\n --cv-font: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;\r\n --cv-font-size: 14px;\r\n --cv-shadow: 0 1px 2px rgb(0 0 0 / 0.04), 0 1px 3px rgb(0 0 0 / 0.06);\r\n\r\n color: var(--cv-text);\r\n font-family: var(--cv-font);\r\n font-size: var(--cv-font-size);\r\n}\r\n\r\n/**\r\n * Dark theme — matched to the Coventia product's own dark tokens, not invented.\r\n *\r\n * The CRM defines `--background: 240 10% 10%` (#17171c) with surfaces at 15.9% (#27272a) and borders\r\n * at 25.9% (#404044) — the zinc/240-hue family. An earlier draft here used a near-black\r\n * (#0f0f13, ~half the luminance of the product's background) with 2%-luminance borders that were\r\n * effectively invisible. That is the \"black tonality\" that read wrong: right hue, wrong lightness.\r\n *\r\n * Note the accent INVERTS: on light, `accent-strong` is darker than `accent` (emerald-700); on dark\r\n * it must be LIGHTER (emerald-400), because emphasis on a dark surface means more light, not less.\r\n * Same token, opposite direction — miss this and the timer/active tab sink into the background.\r\n *\r\n * ── HOW THE THEME IS CHOSEN ──────────────────────────────────────────────────\r\n * By default it follows the OS (`prefers-color-scheme`). But a host must be able to PIN it: the\r\n * Coventia CRM toggles dark with a class (next-themes), not the OS setting — so a user with a dark\r\n * OS but the CRM in light mode would otherwise get a dark widget inside a light app.\r\n *\r\n * <SoftphoneWidget theme=\"light\" /> → data-cv-theme=\"light\" — always light\r\n * <SoftphoneWidget theme=\"dark\" /> → data-cv-theme=\"dark\" — always dark\r\n * <SoftphoneWidget /> → follows the OS\r\n *\r\n * To follow the HOST's theme rather than the OS, pass the host's current theme through, e.g.\r\n * next-themes: `const { resolvedTheme } = useTheme(); <SoftphoneWidget theme={resolvedTheme} />`.\r\n *\r\n * The dark block is duplicated below (OS-driven vs. pinned) on purpose: plain CSS has no way to\r\n * share a declaration block across a media query and a selector, and the honest duplication beats a\r\n * clever custom-property toggle nobody can debug.\r\n */\r\n@media (prefers-color-scheme: dark) {\r\n :host(:not([data-cv-theme='light'])),\r\n .cv-softphone:not([data-cv-theme='light']) {\r\n --cv-bg: #17171c; /* CRM --background 240 10% 10% */\r\n --cv-surface: #202027; /* between bg and secondary */\r\n --cv-surface-2: #27272a; /* CRM --secondary/--muted 240 3.7% 15.9% */\r\n --cv-border: #2e2e33;\r\n --cv-border-strong: #404044; /* CRM --border 240 3.7% 25.9% */\r\n --cv-text: #fafafa; /* CRM --foreground 0 0% 98% */\r\n --cv-muted: #a1a1aa; /* CRM --muted-foreground 240 5% 64.9% → 6.97:1 AA */\r\n --cv-faint: #71717a; /* decorative only */\r\n --cv-accent-strong: #34d399; /* emerald-400 — 9.29:1 on #17171c */\r\n --cv-accent-light: #34d399; /* the halo reads brighter on dark */\r\n --cv-accent-soft: #065f46; /* glows must darken on dark, not glare */\r\n --cv-danger-strong: #f87171; /* red-400 — LIGHTER than --cv-danger, same inversion as accent-strong */\r\n --cv-danger-soft: #7f1d1d;\r\n --cv-info-strong: #38bdf8; /* sky-400 — same inversion, same reason */\r\n --cv-info-soft: #0c4a6e;\r\n --cv-shadow: 0 1px 2px rgb(0 0 0 / 0.4);\r\n }\r\n}\r\n\r\n/* Pinned dark — wins regardless of the OS setting. */\r\n:host([data-cv-theme='dark']),\r\n.cv-softphone[data-cv-theme='dark'] {\r\n --cv-bg: #17171c;\r\n --cv-surface: #202027;\r\n --cv-surface-2: #27272a;\r\n --cv-border: #2e2e33;\r\n --cv-border-strong: #404044;\r\n --cv-text: #fafafa;\r\n --cv-muted: #a1a1aa;\r\n --cv-faint: #71717a;\r\n --cv-accent-strong: #34d399;\r\n --cv-accent-light: #34d399;\r\n --cv-accent-soft: #065f46;\r\n --cv-danger-strong: #f87171;\r\n --cv-danger-soft: #7f1d1d;\r\n --cv-info-strong: #38bdf8;\r\n --cv-info-soft: #0c4a6e;\r\n --cv-shadow: 0 1px 2px rgb(0 0 0 / 0.4);\r\n}\r\n\r\n.cv-softphone,\r\n.cv-softphone *,\r\n.cv-softphone *::before,\r\n.cv-softphone *::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n/* ── Shell ──────────────────────────────────────────────────────────────────── */\r\n.cv-softphone {\r\n display: flex;\r\n flex-direction: column;\r\n\r\n /* FILL the box the host gives us; do not assert one.\r\n This was `width: 340px; height: 520px`, which is a component telling its host how big its\r\n layout is. The CRM's panel is 310 wide, so the third keypad column was simply cut off — and no\r\n amount of theming could have fixed it, because the widget was not asking. A component in\r\n someone else's layout accepts a size. */\r\n width: 100%;\r\n height: 100%;\r\n\r\n /* …but a dialpad is not a spreadsheet. Given 900px it should not become a 900px dialpad with\r\n 300px keys; it should be itself, centred. Cap and centre rather than stretch. */\r\n max-width: var(--cv-max-width, 420px);\r\n margin-inline: auto;\r\n\r\n /* Adapt to THIS box, not to the viewport. The widget can be 310px wide inside a 1920px screen —\r\n a media query would ask the wrong question and get a confident wrong answer. Container queries\r\n are the only ones that know the truth, and a shadow root is the ideal place for them. */\r\n container-type: inline-size;\r\n container-name: cv;\r\n\r\n background: var(--cv-bg);\r\n overflow: hidden;\r\n /* The containing block for `.cv-transfer-notices` — it overlays this whole shell, top edge to top\r\n edge, not just `.cv-body`, so it reads as one seamless panel rather than a strip that starts a few\r\n pixels short of the shell's own rounded corner. */\r\n position: relative;\r\n\r\n /* The frame is the HOST's call. The CRM's panel already draws `border rounded-xl shadow-2xl`, so\r\n drawing our own put a card inside a card — nested chrome, which is always wrong. Defaulting to\r\n a frame still suits a bare drop-in on a blank page; a host that has its own sets these to\r\n `none` / `0` and the double edge disappears. */\r\n border: var(--cv-shell-border, 1px solid var(--cv-border-strong));\r\n border-radius: var(--cv-shell-radius, var(--cv-radius));\r\n box-shadow: var(--cv-shell-shadow, 0 4px 24px rgb(0 0 0 / 0.06));\r\n}\r\n\r\n/* Narrow hosts — a sidebar, a phone-width column. Reclaim the horizontal padding first: at 260px\r\n the gutters cost more than they give, and a cramped keypad is worse than a tight one. */\r\n@container cv (max-width: 300px) {\r\n .cv-keypad { padding: 0 0.6rem; gap: 6px; }\r\n .cv-dial-prefix { padding: 0.7rem 0.6rem 0; }\r\n .cv-dial-head { padding: 0.3rem 0.6rem 0.6rem; }\r\n .cv-display { font-size: 1.5rem; }\r\n}\r\n\r\n/* Short hosts. The flex chain already lets the keypad absorb what is left, but below this the keys\r\n stop being tappable — so buy the height back from the chrome instead of from the keys. */\r\n@container cv (max-height: 440px) {\r\n .cv-dial-prefix { padding-top: 0.5rem; }\r\n .cv-dial-head { padding-top: 0.2rem; padding-bottom: 0.4rem; }\r\n .cv-dial-foot { padding-bottom: 0.5rem; }\r\n .cv-controls { gap: 0.4rem; padding-bottom: 0.6rem; }\r\n}\r\n\r\n/* The flex chain that makes the layout work: body flexes, views fill it, only the\r\n keypad/list grows. Without `min-height:0` a grid child refuses to shrink and overflows. */\r\n.cv-body {\r\n flex: 1;\r\n min-height: 0;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n.cv-view {\r\n flex: 1;\r\n min-height: 0;\r\n display: flex;\r\n flex-direction: column;\r\n /* Containing block for `.cv-detail` below — an absolute overlay must cover exactly THIS tab's\r\n content, not escape to whatever the next positioned ancestor up the tree happens to be. */\r\n position: relative;\r\n}\r\n\r\n/* ── Tab bar ─────────────────────────────────────────────────────────────────── */\r\n.cv-tabs {\r\n display: flex;\r\n border-top: 1px solid var(--cv-border);\r\n background: var(--cv-bg);\r\n flex-shrink: 0;\r\n}\r\n.cv-tab {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 3px;\r\n padding: 9px 0 8px;\r\n background: none;\r\n border: none;\r\n color: var(--cv-muted);\r\n cursor: pointer;\r\n font: inherit;\r\n transition: color 0.15s ease, background 0.15s ease;\r\n}\r\n.cv-tab:hover:not(:disabled) { background: var(--cv-surface); }\r\n.cv-tab[aria-selected='true'] { color: var(--cv-accent-strong); }\r\n.cv-tab:disabled { opacity: 0.35; cursor: not-allowed; }\r\n.cv-tab span { font-size: 10px; font-weight: 600; line-height: 1; letter-spacing: 0.01em; }\r\n\r\n/* ── Transfer outcome notices (Phase A — transfer-outcome-relay.md §5.5) ──────── */\r\n/*\r\n A persistent, dismissable banner OVER `.cv-body`, never a toast and never auto-dismissed — it carries\r\n an action, and WCAG 2.2.1 requires a time limit to be removable, adjustable or extended.\r\n\r\n Overlaps rather than reserving its own height, the same reasoning `.cv-dial-outcome`'s own comment\r\n already gives for why the widget never lets a line of text resize the keypad under a moving finger —\r\n here that principle cuts the other way: appearing costs nothing but a repaint, not a reflow, so the\r\n widget's overall height stays identical whether a notice is showing or not, exactly like `.cv-detail`\r\n overlaying `.cv-body`'s own list rather than pushing it down. It sits over whatever the current tab\r\n happens to be showing (most often the dialer's country picker and number field — an acceptable loss:\r\n the agent is not expected to start a fresh manual dial before dealing with a transfer that just failed\r\n to connect), which is also why it outranks `.cv-detail` in `z-index`.\r\n\r\n `[data-has-notices='false']` collapses to zero footprint: the element stays mounted (so its\r\n `role=\"status\"` region exists before the FIRST notice ever arrives — an aria-live region inserted at\r\n the same moment as its own content is not reliably announced), but an idle widget, the common case,\r\n covers nothing and costs no paint either.\r\n*/\r\n.cv-transfer-notices {\r\n position: absolute;\r\n inset: 0 0 auto 0;\r\n z-index: 3; /* above `.cv-detail`'s 2 — this is the higher-priority thing on screen */\r\n}\r\n.cv-transfer-notices[data-has-notices='true'] {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n padding: 0.6rem 0.75rem;\r\n background: var(--cv-bg);\r\n box-shadow: var(--cv-shadow);\r\n animation: cv-transfer-notices-in 200ms var(--cv-ease-out) both;\r\n}\r\n@keyframes cv-transfer-notices-in {\r\n from { opacity: 0; transform: translateY(-6px); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-transfer-notices[data-has-notices='true'] { animation: none; }\r\n}\r\n.cv-transfer-notices-count {\r\n margin: 0;\r\n font: 600 0.72rem var(--cv-font);\r\n color: var(--cv-muted);\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n}\r\n.cv-transfer-notice {\r\n display: flex;\r\n align-items: flex-start;\r\n gap: 0.6rem;\r\n padding: 0.65rem 0.7rem;\r\n border-radius: var(--cv-radius-key);\r\n border: 1px solid var(--cv-danger-soft);\r\n background: var(--cv-surface);\r\n}\r\n/* Same shape as `.cv-gate-mark`, smaller — one visual language for \"here is a status\", not two. */\r\n.cv-transfer-notice-mark {\r\n flex-shrink: 0;\r\n display: grid;\r\n place-items: center;\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 999px;\r\n background: var(--cv-danger-soft);\r\n color: var(--cv-danger);\r\n}\r\n.cv-transfer-notice-body { flex: 1; min-width: 0; }\r\n/*\r\n Title shares its row with only the dismiss button (24px) — not the whole card's width, and not the\r\n \"Llamar de vuelta\" button, which gets its own row below (`.cv-transfer-notice-footer`). The original\r\n layout put mark + title + subtitle + a full button all in one flex row, leaving the title as little as\r\n ~80px to wrap into at the real ~340px embed width — nearly every word landed on its own line.\r\n `align-items: flex-start` keeps the dismiss pinned to the first line even when the title wraps to two.\r\n*/\r\n.cv-transfer-notice-header { display: flex; align-items: flex-start; gap: 0.4rem; }\r\n.cv-transfer-notice-title {\r\n flex: 1;\r\n min-width: 0;\r\n margin: 0;\r\n font: 600 0.82rem var(--cv-font);\r\n color: var(--cv-text);\r\n line-height: 1.35;\r\n}\r\n.cv-transfer-notice-subtitle {\r\n margin: 0.15rem 0 0;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n line-height: 1.35;\r\n}\r\n/* Age and the callback button share a row too, same reasoning as the header — a short fixed-width\r\n timestamp beside a content-sized button, neither one fighting the title for space above. */\r\n.cv-transfer-notice-footer {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 0.5rem;\r\n margin-top: 0.35rem;\r\n}\r\n.cv-transfer-notice-age { margin: 0; font-size: 0.7rem; color: var(--cv-faint); flex-shrink: 0; }\r\n/*\r\n `.cv-btn.cv-transfer-notice-callback` — TWO classes, not one. Equal-specificity selectors resolve by\r\n source order, and this rule used to lose its `padding`/`font-size` to the shared `.cv-btn` rule below\r\n simply because that one appears later in the file; the button rendered at full default CTA size\r\n instead of this smaller, secondary one, which is what actually forced the title into that ~80px\r\n column above. The extra class is what makes this override win regardless of source order.\r\n*/\r\n.cv-btn.cv-transfer-notice-callback {\r\n flex-shrink: 0;\r\n padding: 0.35rem 0.6rem;\r\n font-size: 0.75rem;\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.3rem;\r\n white-space: nowrap;\r\n}\r\n/* Same round icon-only shape as `.cv-search-clear` — one dismiss affordance, not a new one. */\r\n.cv-transfer-notice-dismiss {\r\n flex-shrink: 0;\r\n width: 24px;\r\n height: 24px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: none;\r\n border-radius: 999px;\r\n background: none;\r\n color: var(--cv-muted);\r\n cursor: pointer;\r\n transition: color 0.12s ease, background 0.12s ease, transform 0.1s var(--cv-ease-out);\r\n}\r\n.cv-transfer-notice-dismiss:hover { color: var(--cv-text); background: var(--cv-surface-2); }\r\n.cv-transfer-notice-dismiss:active { transform: scale(0.88); }\r\n\r\n/* ── Buttons ─────────────────────────────────────────────────────────────────── */\r\n.cv-btn {\r\n font: 600 0.875rem var(--cv-font);\r\n cursor: pointer;\r\n padding: 0.5rem 0.9rem;\r\n border-radius: 10px;\r\n border: 1px solid var(--cv-border-strong);\r\n background: var(--cv-bg);\r\n color: var(--cv-text);\r\n transition: background 0.15s ease, transform 0.06s ease;\r\n}\r\n.cv-btn:hover:not(:disabled) { background: var(--cv-surface); }\r\n.cv-btn:active:not(:disabled) { transform: scale(0.97); }\r\n.cv-btn:disabled { opacity: 0.45; cursor: not-allowed; }\r\n.cv-btn--accent {\r\n background: var(--cv-accent);\r\n border-color: var(--cv-accent);\r\n color: var(--cv-accent-contrast);\r\n}\r\n.cv-btn--accent:hover:not(:disabled) { background: var(--cv-accent-strong); }\r\n\r\n/* Round action buttons (answer / hangup / call) */\r\n.cv-round {\r\n width: 64px;\r\n height: 64px;\r\n border-radius: 999px;\r\n border: none;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: #fff;\r\n transition: background 0.15s ease, transform 0.08s ease, box-shadow 0.15s ease;\r\n}\r\n.cv-round:active:not(:disabled) { transform: scale(0.94); }\r\n.cv-round--answer {\r\n background: var(--cv-accent);\r\n box-shadow: 0 8px 20px -4px var(--cv-accent-soft);\r\n}\r\n.cv-round--answer:hover:not(:disabled) { background: var(--cv-accent-strong); }\r\n.cv-round--answer:disabled {\r\n background: var(--cv-surface-2);\r\n color: var(--cv-faint);\r\n box-shadow: none;\r\n cursor: not-allowed;\r\n}\r\n.cv-round--hangup {\r\n background: var(--cv-danger);\r\n box-shadow: 0 8px 20px -4px var(--cv-danger-soft);\r\n}\r\n.cv-round--hangup:hover:not(:disabled) { filter: brightness(0.94); }\r\n\r\n/* ── Dialpad ─────────────────────────────────────────────────────────────────── */\r\n/* The prefix chip, on its own row above the number.\r\n Sharing a line with the number starves it: chip + erase button eat the middle, and a formatted\r\n international number needs every pixel. The number is the content; the prefix is a setting. */\r\n.cv-dial-prefix {\r\n flex-shrink: 0;\r\n display: flex;\r\n justify-content: center;\r\n padding: 1rem 1rem 0;\r\n}\r\n.cv-dial-head {\r\n flex-shrink: 0;\r\n display: flex;\r\n align-items: center;\r\n padding: 0.35rem 1rem 0.75rem;\r\n gap: 0.25rem;\r\n}\r\n/*\r\n * The outcome of the last attempt, under the number.\r\n *\r\n * ALWAYS in the layout, visible or not. The keypad is `flex: 1` and absorbs whatever height is left,\r\n * so a line that appears and disappears would resize every key and shift the whole grid under the\r\n * user's finger — mid-dial, which is exactly when this text arrives. Reserving the row costs one line\r\n * of height and buys a keypad that never moves.\r\n */\r\n.cv-dial-outcome {\r\n flex-shrink: 0;\r\n margin: 0;\r\n min-height: 1.15rem;\r\n padding: 0 1rem;\r\n text-align: center;\r\n font-size: 0.78rem;\r\n line-height: 1.15rem;\r\n color: var(--cv-muted);\r\n /*\r\n One line, always. `error-text.test.ts` caps every outcome at 48 characters so nothing should ever\r\n reach this — but a cap depends on whoever writes the next string remembering it, and the failure\r\n it prevents is not cosmetic: the keypad below is `flex: 1`, so a second line resizes all twelve\r\n keys and shifts the grid under a finger that is already moving. Truncating is visibly wrong and\r\n harmless; reflowing the dialpad mid-dial is invisibly wrong and makes the user misdial.\r\n */\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n /* Muted, not danger: the phone still works. A red line here would read as a broken phone. */\r\n opacity: 0;\r\n transition: opacity 150ms ease-out;\r\n}\r\n.cv-dial-outcome[data-shown='true'] {\r\n opacity: 1;\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-dial-outcome {\r\n transition: none;\r\n }\r\n}\r\n\r\n.cv-display {\r\n flex: 1;\r\n min-width: 0;\r\n font: 600 1.75rem var(--cv-font);\r\n font-variant-numeric: tabular-nums;\r\n letter-spacing: -0.02em;\r\n text-align: center;\r\n color: var(--cv-text);\r\n border: none;\r\n background: none;\r\n padding: 0;\r\n caret-color: var(--cv-accent);\r\n}\r\n.cv-display::placeholder { color: var(--cv-faint); font-weight: 400; }\r\n.cv-display:focus { outline: none; }\r\n\r\n/* The spacer/erase pair keeps the number optically centred. */\r\n.cv-dial-side {\r\n width: 36px;\r\n height: 36px;\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: none;\r\n background: none;\r\n color: var(--cv-muted);\r\n cursor: pointer;\r\n border-radius: 999px;\r\n transition: color 0.15s ease, opacity 0.15s ease, transform 0.06s ease;\r\n}\r\n.cv-dial-side:hover { color: var(--cv-text); }\r\n.cv-dial-side:active { transform: scale(0.9); }\r\n.cv-dial-side[data-hidden='true'] { opacity: 0; pointer-events: none; }\r\n\r\n/* THE layout fix: the keypad flexes to fill, and its rows share the space equally.\r\n Keys must NOT use aspect-ratio — that overflows the shell and shoves the call button\r\n under the tab bar. */\r\n.cv-keypad {\r\n flex: 1;\r\n min-height: 0;\r\n display: grid;\r\n grid-template-columns: repeat(3, 1fr);\r\n grid-template-rows: repeat(4, 1fr);\r\n gap: 8px;\r\n padding: 0 1rem;\r\n}\r\n.cv-key {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 1px;\r\n border-radius: var(--cv-radius-key);\r\n border: 1px solid var(--cv-border);\r\n background: var(--cv-bg);\r\n box-shadow: var(--cv-shadow);\r\n color: var(--cv-text);\r\n cursor: pointer;\r\n user-select: none;\r\n transition: background 0.12s ease, transform 0.06s ease;\r\n}\r\n.cv-key:hover { background: var(--cv-surface); }\r\n.cv-key:active { transform: scale(0.95); background: var(--cv-surface-2); }\r\n.cv-key b { font: 500 1.25rem/1 var(--cv-font); }\r\n.cv-key small {\r\n font-size: 9px;\r\n font-weight: 600;\r\n letter-spacing: 0.14em;\r\n /* Decorative: the letters carry no information the digit doesn't. `faint`, not `muted`. */\r\n color: var(--cv-faint);\r\n line-height: 1;\r\n}\r\n\r\n.cv-dial-foot {\r\n flex-shrink: 0;\r\n display: flex;\r\n justify-content: center;\r\n padding: 0.75rem 0 1rem;\r\n}\r\n\r\n/* ── Active call ─────────────────────────────────────────────────────────────── */\r\n.cv-call {\r\n flex: 1;\r\n min-height: 0;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.15rem;\r\n text-align: center;\r\n padding: 1rem;\r\n /*\r\n A REAL bug, found live (plan T7): the transfer picker's agent list can make this box's content\r\n taller than the space `flex: 1` actually allocates it — the avatar/name/timer/status ABOVE the\r\n picker are still shown while transferring, unlike `.cv-call-devices-inline`'s own \"swap the\r\n content\" fix for the pre-connect devices screen. Without this, the overflow painted straight past\r\n `.cv-call`'s own shrunk box and onto `.cv-controls` below it — not scroll, actual overlap, controls\r\n rendered ON TOP of list rows. `overflow-y: auto` keeps any excess inside THIS box, scrollable,\r\n exactly like `.cv-presence-list`'s own internal scroll already does for the list itself.\r\n */\r\n overflow-y: auto;\r\n}\r\n\r\n.cv-avatar-wrap { position: relative; margin-bottom: 0.85rem; }\r\n.cv-avatar {\r\n position: relative;\r\n width: 68px;\r\n height: 68px;\r\n border-radius: 999px;\r\n /* accent → accent-strong (emerald 600→700): white initials clear 3.77:1 at EVERY stop. Starting\r\n the ramp at emerald-500 would look punchier but drop the light end to 2.54:1. */\r\n background: linear-gradient(135deg, var(--cv-accent) 0%, var(--cv-accent-strong) 100%);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: #fff;\r\n font: 700 1.3rem var(--cv-font);\r\n letter-spacing: -0.01em;\r\n box-shadow: 0 8px 20px -6px var(--cv-accent-soft);\r\n}\r\n/* A soft halo while ringing — the one moment worth animating. */\r\n.cv-avatar-ping {\r\n position: absolute;\r\n inset: 0;\r\n border-radius: 999px;\r\n /* Decorative — nothing sits on it, so it uses the vivid emerald. */\r\n background: var(--cv-accent-light);\r\n opacity: 0.16;\r\n animation: cv-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite;\r\n pointer-events: none;\r\n}\r\n@keyframes cv-ping {\r\n 0% { transform: scale(1); opacity: 0.22; }\r\n 80%, 100% { transform: scale(1.7); opacity: 0; }\r\n}\r\n.cv-avatar-dot {\r\n position: absolute;\r\n bottom: 1px;\r\n right: 1px;\r\n width: 14px;\r\n height: 14px;\r\n border-radius: 999px;\r\n background: var(--cv-accent);\r\n border: 2px solid var(--cv-bg);\r\n}\r\n\r\n.cv-call-name { font-size: 1rem; font-weight: 600; line-height: 1.2; }\r\n.cv-call-number { font-size: 0.75rem; color: var(--cv-muted); margin-top: 2px; }\r\n\r\n.cv-timer {\r\n display: flex;\r\n align-items: baseline;\r\n justify-content: center;\r\n gap: 1px;\r\n margin-top: 0.75rem;\r\n color: var(--cv-accent-strong);\r\n}\r\n.cv-timer b {\r\n font: 700 2.25rem/1 var(--cv-font);\r\n font-variant-numeric: tabular-nums;\r\n letter-spacing: -0.03em;\r\n}\r\n.cv-timer i {\r\n font: 300 1.75rem/1 var(--cv-font);\r\n font-style: normal;\r\n color: var(--cv-accent);\r\n animation: cv-blink 1.6s ease-in-out infinite;\r\n margin: 0 1px;\r\n}\r\n@keyframes cv-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }\r\n\r\n.cv-call-status {\r\n margin-top: 0.6rem;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n letter-spacing: 0.04em;\r\n}\r\n.cv-badge-hold { color: var(--cv-hold); font-weight: 600; }\r\n\r\n/* ── Device check (ringing / dialing / in-call) ────────────────────────────────\r\n Before a call connects there is only ONE other control on screen (Colgar, or\r\n Rechazar/Contestar) — putting Dispositivos in that same neighbourhood, even\r\n spaced out, keeps it a mis-tap away from hanging up or answering. The entry\r\n chip lives beside the call status instead, removing it from that neighbourhood\r\n rather than just adding distance within it — same resting-pill SHAPE as `.cv-cp`\r\n (CountryPicker), reused rather than invented fresh.\r\n\r\n Opening it does NOT pop a panel into that same tight space, though — this\r\n SDK's real production embed (a 310×520 host panel with its own header eating\r\n further into that) leaves too little free room around a trigger sitting in\r\n vertically-centred content for a floating popover to open into without either\r\n overlapping Colgar/Rechazar/Contestar or clamping itself down to something\r\n cramped and scrolly for just two rows. `.cv-call-devices-inline` REPLACES the\r\n avatar/name/status block in `.cv-call` instead (see that JSX's own comment) —\r\n an inline swap, not an overlay, so it gets the full box, not a leftover sliver.\r\n\r\n Once connected it is the SAME chip and the SAME swap. Dispositivos used to be a fifth control in\r\n the call row (with a floating popover), which is what forced that row down to 40px buttons and\r\n 9px labels in a 310px host. A set-once setting does not need a slot among the four things you do\r\n mid-call (mute, hold, transfer, keypad), and the control row stays live under the swap.\r\n ───────────────────────────────────────────────────────────────────────────── */\r\n.cv-call-devices-chip {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.35rem;\r\n height: 26px;\r\n padding: 0 0.65rem;\r\n border: 1px solid var(--cv-border-strong);\r\n border-radius: 999px;\r\n background: var(--cv-bg);\r\n color: var(--cv-muted);\r\n font: 600 0.7rem var(--cv-font);\r\n cursor: pointer;\r\n transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;\r\n}\r\n.cv-call-devices-chip:hover { background: var(--cv-surface); }\r\n.cv-call-devices-chip:active { transform: scale(0.95); }\r\n\r\n/*\r\n The entry-point row — ONE chip today (Dispositivos), up to two once a host configures\r\n `incomingCallAction` (that one first: who is calling outranks a phone-utility setting). `width:\r\n 100%` + `flex-wrap` on purpose: a host's action label is arbitrary text this component cannot\r\n assume is short, so two chips sit side by side when they fit and wrap onto their own centred line\r\n when they do not, rather than overflowing `.cv-call`'s fixed width.\r\n*/\r\n.cv-call-chips {\r\n width: 100%;\r\n display: flex;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n gap: 0.5rem;\r\n margin-top: 0.65rem;\r\n}\r\n\r\n.cv-call-devices-inline {\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.9rem;\r\n /* `.cv-call` centres and centre-aligns its normal (avatar) content — rows read left-aligned\r\n everywhere else in the widget (Ajustes, the in-call popover), so this opts back out of both. */\r\n text-align: left;\r\n animation: cv-call-devices-in 0.18s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n@keyframes cv-call-devices-in {\r\n from { opacity: 0; transform: translateY(6px); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-call-devices-inline { animation: none; }\r\n}\r\n.cv-call-devices-header { display: flex; align-items: center; gap: 0.5rem; }\r\n.cv-call-devices-title { font-size: 0.95rem; font-weight: 600; color: var(--cv-text); }\r\n/* `--cv-muted` on `--cv-bg` — the same already-verified pairing `.cv-settings-note` uses\r\n (4.83:1 light / 6.97:1 dark), not a new one. */\r\n.cv-call-devices-context {\r\n margin: 0;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n}\r\n\r\n/* ── Call controls ───────────────────────────────────────────────────────────\r\n TWO TIERS. Hang up is the one action that must never be hunted for, so it sits\r\n alone, centred, and largest — the anchor. The secondaries flank above it. They\r\n used to share a single row, where hang up was just the last button and carried\r\n the same weight as \"transfer\"; mid-call, that is the wrong hierarchy.\r\n ─────────────────────────────────────────────────────────────────────────── */\r\n.cv-controls {\r\n flex-shrink: 0;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 0.9rem;\r\n padding: 0.35rem 1rem 1.1rem;\r\n /* The containing block for `.cv-keypad-popover` — see that rule's own comment for why it is\r\n anchored here rather than to the trigger button. */\r\n position: relative;\r\n}\r\n/* FOUR controls, sized so they never need to shrink to fit. This row held five (Dispositivos too) and\r\n the only way to fit five in the CRM's 310px host was a 40px button with a 9px label and ~6px gaps —\r\n below the 44/48px a thumb needs, and below legible for a word read mid-call. The default 48px size\r\n below was never actually seen: it only applied above a 360px host, which no real embed is.\r\n Dispositivos is the `.cv-call-chips` chip up by the call info instead (the same entry point the\r\n ringing and dialing screens already use). 4 × 52 + 3 × 20 = 268px, inside 310 - 2 × 16 padding. */\r\n.cv-controls-row {\r\n display: flex;\r\n justify-content: center;\r\n gap: 1.25rem;\r\n}\r\n.cv-controls-primary {\r\n display: flex;\r\n justify-content: center;\r\n gap: 2.75rem;\r\n}\r\n/* Button + its word. The column keeps the label from widening the hit target. */\r\n.cv-ctrl-item {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 0.3rem;\r\n}\r\n/* 10px, muted: present when you look for it, silent when you don't. An icon-only\r\n control is a quiz, and mid-call is the worst time to sit one. */\r\n.cv-ctrl-label {\r\n font-size: 0.625rem;\r\n line-height: 1;\r\n color: var(--cv-muted);\r\n white-space: nowrap;\r\n user-select: none;\r\n}\r\n/* The four secondaries' words get a notch more than Colgar / Rechazar / Contestar's 10px — they are\r\n the ones read mid-call, and the five-up row used to shrink them to 9px (8px in a sidebar). */\r\n.cv-controls-row .cv-ctrl-label { font-size: 0.6875rem; }\r\n.cv-ctrl {\r\n width: 52px;\r\n height: 52px;\r\n border-radius: 999px;\r\n border: 1px solid var(--cv-border-strong);\r\n background: var(--cv-bg);\r\n color: var(--cv-text);\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: background 0.15s ease, color 0.15s ease, transform 0.06s ease;\r\n}\r\n.cv-ctrl:hover { background: var(--cv-surface); }\r\n.cv-ctrl:active { transform: scale(0.94); }\r\n.cv-ctrl:disabled {\r\n opacity: 0.4;\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\n/* The ON states say what they MEAN, in the widget's own tokens: muted is danger,\r\n held is hold, transfer-open is accent. Colour is the state, not decoration. */\r\n.cv-ctrl[data-tone='danger'] {\r\n background: var(--cv-danger);\r\n border-color: var(--cv-danger);\r\n color: #fff;\r\n}\r\n.cv-ctrl[data-tone='hold'] {\r\n background: var(--cv-hold);\r\n border-color: var(--cv-hold);\r\n color: #fff;\r\n}\r\n.cv-ctrl[data-tone='accent'] {\r\n background: var(--cv-accent-soft);\r\n border-color: transparent;\r\n color: var(--cv-accent-strong);\r\n}\r\n.cv-ctrl[data-tone]:hover { filter: brightness(0.95); }\r\n\r\n/* Muted is the one state worth animating: it is invisible, it is easy to forget,\r\n and the cost of forgetting is talking to nobody. Same halo the avatar rings\r\n with — one language, not two. */\r\n.cv-ctrl[data-tone='danger'] {\r\n position: relative;\r\n}\r\n.cv-ctrl[data-tone='danger']::after {\r\n content: '';\r\n position: absolute;\r\n inset: 0;\r\n border-radius: 999px;\r\n background: var(--cv-danger);\r\n animation: cv-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite;\r\n pointer-events: none;\r\n z-index: -1;\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-ctrl[data-tone='danger']::after { animation: none; opacity: 0; }\r\n}\r\n.cv-ctrl[aria-pressed='true'] {\r\n background: var(--cv-text);\r\n color: var(--cv-bg);\r\n border-color: var(--cv-text);\r\n}\r\n\r\n/*\r\n Sidebar-narrow (this file's own ≤300px tier, up in \"Narrow hosts\"). The four 52px controls with\r\n 20px gaps need 268px, which a 260px host cannot give — so this tier steps down to 44px with 12px\r\n gaps (4 × 44 + 3 × 12 = 212px) and reclaims `.cv-controls`'s own horizontal padding, the first\r\n lever that block's own comment names. 44px is still the Apple HIG minimum tap target; the five-up\r\n row this replaced went to 36px here.\r\n\r\n Placed AFTER `.cv-controls`/`.cv-controls-row` above rather than up with this file's other\r\n `@container` blocks near the top: `gap` and `padding-left`/`-right` here have the same specificity as\r\n those base rules' own shorthand, so — unlike a compound selector such as `.cv-controls-row .cv-ctrl`,\r\n which wins on specificity regardless of position — source order is what decides, and a narrower-width\r\n override declared BEFORE the base rule it means to narrow loses to it. Confirmed live: moved up into\r\n the \"Narrow hosts\" section, the `.cv-ctrl` width and label font-size reductions took effect (compound\r\n selectors) but `gap` and `.cv-controls`'s padding silently did not (plain selectors, later base rule won).\r\n*/\r\n@container cv (max-width: 300px) {\r\n .cv-controls { padding-left: 0.5rem; padding-right: 0.5rem; }\r\n .cv-controls-row { gap: 0.75rem; }\r\n .cv-controls-row .cv-ctrl { width: 44px; height: 44px; }\r\n .cv-controls-row .cv-ctrl-label { font-size: 0.625rem; }\r\n}\r\n\r\n/*\r\n The attended-transfer target-entry panel (`docs/specs/transfer-availability.md` §5): an optional\r\n outcome line, then a row of whatever's actionable (input+button today). Once a consult exists,\r\n `ConsultScreen` takes over the whole screen instead — this panel is ONLY ever the pre-consult /\r\n retry-after-failure state now; it used to also cover the consulting/answered phases, which is why\r\n its rule is a column container built for more than one child even though there's only ever one row\r\n here today. (History: was two near-duplicate rules — `.cv-transfer` as a bare ROW,\r\n `.cv-transfer-consult` as a column — until the row version turned out to be a real,\r\n reproduced-in-browser bug: the optional `.cv-dial-outcome` message rendered as a THIRD item in the\r\n same horizontal row as the input and button, squeezing the input to its content-minimum. Merged\r\n rather than patched.)\r\n*/\r\n.cv-transfer {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.3rem;\r\n width: 100%;\r\n padding: 0.2rem 0.25rem 0;\r\n /* `.cv-call` centres and centre-aligns its normal (avatar) content — same reasoning\r\n `.cv-call-devices-inline` already opts out of for the OTHER inline swap in this box (its own\r\n comment): rows read left-aligned everywhere else in the widget, and a centred context line\r\n sitting directly above a left-aligned input/toggle/list read as two layouts stacked on top of\r\n each other, found live (2026-09-29). */\r\n text-align: left;\r\n /* Found live (2026-09-29): `.cv-call`'s avatar/name/timer block used to sit ABOVE this,\r\n unconditionally, so this panel only ever got whatever was left over — see the JSX call site's own\r\n comment. Now that this IS the whole of `.cv-call`'s content while a transfer is in progress\r\n (a swap, not an addition), it should CLAIM `.cv-call`'s available height, not just sit in it —\r\n `flex: 1` does that; `min-height: 0` is what lets a flex child actually shrink to fit instead of\r\n forcing its parent to grow past it (the same reason `.cv-call`/`.cv-view`/`.cv-body` all set it,\r\n see their own comments). This is what lets `.cv-presence-list` below flex-grow into real room\r\n instead of needing its own hand-tuned `max-height` guess. */\r\n flex: 1;\r\n min-height: 0;\r\n /* Same entrance `.cv-call-devices-inline` already uses for the analogous inline swap (its own\r\n comment) — reused, not a second animation invented for this widget's second inline-swap view. */\r\n animation: cv-call-devices-in 0.18s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-transfer { animation: none; }\r\n}\r\n/* The compact \"who am I still on the phone with\" line while the picker is open — reuses\r\n `.cv-call-devices-inline`'s own two classes verbatim (`.cv-call-devices-title` for the name,\r\n `.cv-call-devices-context` for the number/timer line) rather than inventing a second \"quiet header\"\r\n style for the same widget; only the tiny stacking gap between them is new.\r\n\r\n Found live (2026-09-29): `.cv-transfer`'s own `gap` alone gave every section — context, input row,\r\n mode toggle, results list — the exact same spacing, so nothing read as its own group; the eye had\r\n no cue for where \"who I'm on the phone with\" ends and \"pick a transfer target\" begins. This extra\r\n `margin-bottom`, on top of the base `gap`, is that cue — the toggle stays close to the list it\r\n controls (unchanged), only the boundary above the interactive controls opened up. */\r\n.cv-transfer-context {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 2px;\r\n flex-shrink: 0;\r\n margin-bottom: 0.35rem;\r\n}\r\n/* Plan T3: the mode toggle reuses `.cv-segmented` (HistoryTab's own filter control) as-is, but its\r\n `margin-bottom` (needed THERE, where the surrounding layout has no gap of its own) is redundant\r\n here — `.cv-transfer`'s own `gap` above already spaces every child, so the two would stack. Scoped\r\n to this context only; HistoryTab's own copy is untouched. */\r\n.cv-transfer .cv-segmented { margin-bottom: 0; flex-shrink: 0; }\r\n.cv-transfer .cv-presence-legend { flex-shrink: 0; }\r\n/* Same treatment as `.cv-call-status` (the avatar's own \"Llamando…\"/\"En espera\" line) — one muted\r\n status-line vocabulary for the whole call screen, not a second one invented for this panel. */\r\n.cv-transfer-status {\r\n margin: 0;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n letter-spacing: 0.04em;\r\n}\r\n/* The target-entry/retry row: an input plus one button. */\r\n.cv-transfer-row {\r\n display: flex;\r\n gap: 0.5rem;\r\n}\r\n/*\r\n Flex items default to `min-width: auto`, which floors them at their CONTENT size rather than letting\r\n them shrink or grow to fill the row — `.cv-search`'s own `width: 100%` never actually took effect\r\n here, because `.cv-btn`'s text (\"Llamar\") set an unshrinkable floor and the input, having no\r\n `flex-grow`, never reclaimed the space left over. `flex: 1` + `min-width: 0` is what actually makes\r\n an input-plus-button row behave like one; `flex: none` keeps the button at its natural size.\r\n*/\r\n.cv-transfer-row .cv-search {\r\n flex: 1;\r\n min-width: 0;\r\n}\r\n/* `max-width` + ellipsis: the label now includes whatever was typed (\"Llamar a {typed}\", spec §4.5)\r\n and `truncateForButton` already bounds that in JS — this is the CSS backstop, so a value that\r\n slips past it (a very wide character set, a future copy change) still can't push `.cv-search` down\r\n to an unusable sliver the way the pre-truncation button did before this was noticed. */\r\n.cv-transfer-row .cv-btn {\r\n flex: none;\r\n max-width: 60%;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n/* The consult-answered row: one or two buttons, no input. */\r\n.cv-transfer-actions {\r\n display: flex;\r\n gap: 0.5rem;\r\n}\r\n.cv-transfer-actions .cv-btn {\r\n flex: 1;\r\n}\r\n/* The ringing phase has only \"Cancelar\" — a secondary, low-stakes action. Letting the row's own\r\n `flex: 1` stretch a LONE button edge to edge reads as oversized for what it is, and nothing else in\r\n this widget sizes a single button to the full row; every other `.cv-btn` sizes to its content. */\r\n.cv-transfer-actions .cv-btn:only-child {\r\n flex: none;\r\n}\r\n\r\n/*\r\n The agent picker (spec §4.5, plan T7) — an inline, always-visible filtered list under the\r\n input+button row, not a click-to-open popover like `.cv-person-filter-pop`: the whole point is that\r\n typing already filters it, so hiding it behind a second interaction would undo that.\r\n\r\n Redesigned live (2026-09-29): T7 (72px) and T3 (30px) both hand-tuned a `max-height` in PIXELS\r\n against whatever else happened to be on screen at the time, and both were broken by the very next\r\n addition above the list (T3's own toggle broke T7's number the same way this would keep breaking on\r\n the next change) — down to \"barely proves the list is scrollable\" at 30px, which is what the user\r\n was actually seeing: \"users cannot almost see any of the listed users.\" The real fix wasn't a bigger\r\n magic number, it was `.cv-transfer`'s own move to `flex: 1` (see its comment) freeing real height\r\n from the block that used to sit above this whole panel — `.cv-presence` and this list now flex-grow\r\n into whatever's ACTUALLY left after the context line, input row, toggle and legend take their own\r\n natural size, on whatever real height the host panel gives `.cv-call` (this SDK's fixed ~310×520\r\n embed today, but also whatever a different host gives it tomorrow — no more re-tuning a constant\r\n every time something above the list changes). `.cv-call`'s own `overflow-y: auto` (its own comment)\r\n is still the last-resort net if content ever genuinely doesn't fit; this just means that net should\r\n now rarely, if ever, have to catch anything for a normal agent list.\r\n*/\r\n.cv-presence {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.35rem;\r\n flex: 1;\r\n min-height: 0;\r\n}\r\n.cv-presence-list {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 2px;\r\n flex: 1;\r\n min-height: 0;\r\n overflow-y: auto;\r\n padding: 0.25rem;\r\n border: 1px solid var(--cv-border);\r\n border-radius: var(--cv-radius-key);\r\n background: var(--cv-surface);\r\n}\r\n.cv-presence-empty {\r\n margin: 0;\r\n padding: 0.5rem;\r\n text-align: center;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n}\r\n.cv-presence-item {\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n padding: 0.4rem 0.5rem;\r\n border: none;\r\n border-radius: calc(var(--cv-radius) - 4px);\r\n background: none;\r\n color: var(--cv-text);\r\n font: 400 0.8rem var(--cv-font);\r\n text-align: left;\r\n cursor: pointer;\r\n}\r\n.cv-presence-item:hover:not(:disabled) { background: var(--cv-surface-2); }\r\n/* En llamada rows are a hard block, not just a hint (CallScreen.tsx's own comment on the row has why)\r\n — same `:disabled` treatment `.cv-btn`/`.cv-tab` already use elsewhere in this file, not a new pattern. */\r\n.cv-presence-item:disabled { opacity: 0.45; cursor: not-allowed; }\r\n.cv-presence-dot {\r\n flex-shrink: 0;\r\n width: 8px;\r\n height: 8px;\r\n border-radius: 999px;\r\n}\r\n/* Reuses existing intent tokens rather than inventing new ones — `--cv-accent` already means\r\n \"good, reachable\" (the answer button), `--cv-hold` already means \"occupied elsewhere\" (the hold\r\n toggle), and `--cv-faint` is this file's own DECORATIVE-only tier (see the `--cv-*` legend near the\r\n top) — exactly what \"no signal for this person\" is, no signal being the whole point of that tier. */\r\n.cv-presence-dot[data-state='disponible'] { background: var(--cv-accent); }\r\n.cv-presence-dot[data-state='en_llamada'] { background: var(--cv-hold); }\r\n.cv-presence-dot[data-state='desconectado'] { background: var(--cv-faint); }\r\n.cv-presence-name {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n.cv-presence-meta {\r\n flex-shrink: 0;\r\n font-size: 0.72rem;\r\n color: var(--cv-muted);\r\n}\r\n/* Spec §4.6: Desconectado is a HINT, never \"can't transfer\" — this is what tells the agent so, right\r\n under the list it describes. `--cv-muted`, NOT `--cv-faint`: this text is informational (the reader\r\n needs it to not misread the state), and `--cv-faint` is reserved for decorative-only content that\r\n fails AA on purpose — using it here would repeat the exact tier mistake this file's own `--cv-*`\r\n comment block warns against. */\r\n.cv-presence-legend {\r\n margin: 0;\r\n font-size: 0.7rem;\r\n color: var(--cv-muted);\r\n line-height: 1.35;\r\n}\r\n\r\n/*\r\n `ConsultScreen`'s \"someone is still waiting\" banner (`docs/specs/transfer-availability.md` §5, the\r\n cross-talk fix) — full-width and tappable, not a passive status line, because the entire reason this\r\n screen exists is to make \"go back to the caller\" impossible to miss. Neutral surface + the same\r\n `--cv-hold` colour `.cv-badge-hold` already uses for the same fact elsewhere, not a new soft-fill\r\n token: a text/icon tint on a plain surface is already proven legible here, and inventing an\r\n unmeasured background-tint pairing risks a real contrast regression this file takes seriously\r\n elsewhere (see the `-soft`/`-strong` split's own comments).\r\n*/\r\n.cv-consult-hold-banner {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.4rem;\r\n width: 100%;\r\n padding: 0.5rem 0.75rem;\r\n border-radius: 999px;\r\n border: 1px solid var(--cv-border);\r\n background: var(--cv-surface);\r\n color: var(--cv-hold);\r\n font: 600 0.78rem var(--cv-font);\r\n cursor: pointer;\r\n transition: background 0.15s ease, border-color 0.15s ease;\r\n}\r\n.cv-consult-hold-banner:hover {\r\n background: var(--cv-surface-2);\r\n border-color: var(--cv-hold);\r\n}\r\n.cv-consult-hold-banner:active {\r\n transform: scale(0.98);\r\n}\r\n\r\n@keyframes cv-pop-in-up {\r\n from { opacity: 0; transform: translateY(4px) scale(0.97); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n\r\n/*\r\n The in-call DTMF keypad — the one floating popover left on the call screen. (Dispositivos was the\r\n other; it is inline content now, `.cv-call-devices-inline` above, in every call state.)\r\n\r\n Opens UPWARD (`bottom: 100%`): the trigger sits at the bottom of the call screen, and there is no\r\n room to open downward. Anchored to `.cv-controls`'s own horizontal padding — a container whose width\r\n is bounded by ITS parent, never the narrow trigger itself — the same fix CountryPicker's own popover\r\n needed (see its comment): anchoring to a narrow, off-centre trigger let the popover's edge reach\r\n `.cv-softphone`'s `overflow: hidden` and get clipped.\r\n*/\r\n.cv-keypad-popover {\r\n position: absolute;\r\n z-index: 20;\r\n display: grid;\r\n grid-template-columns: repeat(3, 1fr);\r\n gap: 8px;\r\n padding: 0.85rem 1rem;\r\n background: var(--cv-surface);\r\n border: 1px solid var(--cv-border);\r\n border-radius: var(--cv-radius);\r\n box-shadow: var(--cv-shadow);\r\n}\r\n.cv-keypad-popover--above {\r\n bottom: 100%;\r\n left: 1rem;\r\n right: 1rem;\r\n margin-bottom: 0.6rem;\r\n transform-origin: bottom center;\r\n animation: cv-pop-in-up 0.14s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n/* `.cv-key` already carries the full key look (border, hover, active-scale, digit/letter type) from\r\n the pre-call dialer — only the size needs setting here, since this grid has no flex ancestor to\r\n stretch the rows the way `.cv-keypad` gets to.\r\n\r\n A fixed HEIGHT, not an `aspect-ratio`. This popover opens upward from `.cv-controls`, so it has\r\n (host height - controls block - margin) to work with, and a ratio ties its height to the host's\r\n WIDTH, which says nothing about how much height there is. Found live: the CRM's real body is 310×473\r\n (a 520px panel minus its 45px header), and a 1.3 ratio made this popover 285px — with the 184px\r\n controls block that is 479px, so its top ~7px were clipped by `.cv-softphone`'s `overflow: hidden`.\r\n 48px keys give a 243px popover at ANY width, fit that host with room to spare, and stay at the\r\n 44-48px minimum tap target (the old ratio gave 45px keys at a 260px host, 58px at 310). */\r\n.cv-keypad-popover .cv-key {\r\n height: 48px;\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-keypad-popover--above { animation: none; }\r\n}\r\n\r\n/* ── Lists (contacts / history) ──────────────────────────────────────────────── */\r\n.cv-list-head { flex-shrink: 0; padding: 0.85rem 1rem 0.5rem; }\r\n.cv-search {\r\n width: 100%;\r\n padding: 0.5rem 0.75rem;\r\n border-radius: 10px;\r\n border: 1px solid var(--cv-border-strong);\r\n background: var(--cv-surface);\r\n color: var(--cv-text);\r\n font: inherit;\r\n transition: border-color 0.15s ease, background 0.15s ease;\r\n /* Found live (2026-09-29): in the transfer row specifically, `.cv-btn`'s own `max-width: 60%`\r\n (needed for the dynamic \"Llamar a {typed}\" label) can leave the input narrower than its\r\n placeholder text — an `<input>` has no native ellipsis, so it hard-clipped mid-word\r\n (\"...o núm\") instead of trailing off cleanly. A real, if rare, risk for ANY `.cv-search` usage\r\n wherever it's squeezed, not just this one row — the fix belongs on the base rule. */\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n}\r\n.cv-search::placeholder { color: var(--cv-muted); }\r\n.cv-search:focus { outline: none; border-color: var(--cv-accent); background: var(--cv-bg); }\r\n\r\n/*\r\n A wrapper around `.cv-search`, not a change to it — that class is also the transfer-target input\r\n in CallScreen, which wants neither an icon nor a clear button. `.cv-search--icon` is an ADDITIVE\r\n modifier on the input itself (padding only), so the base class is byte-for-byte what it was for\r\n every other consumer.\r\n*/\r\n.cv-search-field { position: relative; display: flex; align-items: center; }\r\n.cv-search--icon { padding-left: 2.15rem; padding-right: 1.85rem; }\r\n.cv-search-icon {\r\n position: absolute;\r\n left: 0.75rem;\r\n color: var(--cv-muted);\r\n pointer-events: none;\r\n}\r\n.cv-search-clear {\r\n position: absolute;\r\n right: 0.5rem;\r\n width: 22px;\r\n height: 22px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: none;\r\n border-radius: 999px;\r\n background: none;\r\n color: var(--cv-muted);\r\n cursor: pointer;\r\n transition: color 0.12s ease, transform 0.1s var(--cv-ease-out);\r\n}\r\n.cv-search-clear:hover { color: var(--cv-text); }\r\n.cv-search-clear:active { transform: scale(0.88); }\r\n\r\n/* ── Historial filters: status (Todas/Perdidas) + person ─────────────────────── */\r\n.cv-segmented {\r\n display: flex;\r\n gap: 2px;\r\n padding: 2px;\r\n border-radius: 10px;\r\n background: var(--cv-surface-2);\r\n margin-bottom: 0.4rem;\r\n}\r\n.cv-segmented-btn {\r\n flex: 1;\r\n padding: 0.35rem 0;\r\n border: none;\r\n border-radius: 8px;\r\n background: none;\r\n color: var(--cv-muted);\r\n font: 600 0.75rem var(--cv-font);\r\n cursor: pointer;\r\n transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;\r\n}\r\n/* The active segment is stated by its own fill + shadow, not colour alone — the same reasoning\r\n `.cv-item-action[data-tone='accent']`'s own comment gives for resting-state colour: a state that\r\n only differs by hue must still read on a screen that renders neither. */\r\n.cv-segmented-btn[aria-selected='true'] {\r\n background: var(--cv-bg);\r\n color: var(--cv-text);\r\n box-shadow: var(--cv-shadow);\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-segmented-btn { transition: none; }\r\n}\r\n\r\n/* The person filter — same combobox SHAPE as `.cv-cp-*` (CountryPicker): a chip opening a positioned\r\n popover list with a checkmark on the active row. Not the same CLASSES: the two pickers have nothing\r\n to do with each other and sharing a namespace would make a future change to one silently reach the\r\n other. */\r\n.cv-person-filter { position: relative; width: 100%; }\r\n.cv-person-filter-chip {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.4rem;\r\n width: 100%;\r\n padding: 0.4rem 0.65rem;\r\n border: 1px solid var(--cv-border-strong);\r\n border-radius: 10px;\r\n background: var(--cv-surface);\r\n color: var(--cv-muted);\r\n font: 500 0.78rem var(--cv-font);\r\n cursor: pointer;\r\n transition: background 0.15s ease, border-color 0.15s ease;\r\n}\r\n.cv-person-filter-chip:hover { background: var(--cv-surface-2); }\r\n/*\r\n Border only, no fill — the popover opening and the caret rotating already say \"this is open\";\r\n painting the whole width of a wide text pill solid green on top of that was the same over-strong\r\n green the selected row had (see its own comment below). A coloured border is the same restrained\r\n signal `.cv-search:focus` already uses for \"active\" elsewhere in this file.\r\n*/\r\n.cv-person-filter-chip[aria-expanded='true'] {\r\n border-color: var(--cv-accent);\r\n}\r\n.cv-person-filter-label {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n text-align: left;\r\n color: var(--cv-text);\r\n}\r\n.cv-person-filter-caret {\r\n flex-shrink: 0;\r\n transition: transform 0.18s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n.cv-person-filter-caret[data-open='true'] { transform: rotate(180deg); }\r\n.cv-person-filter-pop {\r\n position: absolute;\r\n top: calc(100% + 6px);\r\n left: 0;\r\n right: 0;\r\n z-index: 20;\r\n max-height: 220px;\r\n overflow-y: auto;\r\n padding: 0.25rem;\r\n background: var(--cv-surface);\r\n border: 1px solid var(--cv-border);\r\n border-radius: var(--cv-radius);\r\n box-shadow: var(--cv-shadow);\r\n transform-origin: top center;\r\n animation: cv-cp-in 0.14s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-person-filter-pop { animation: none; }\r\n .cv-person-filter-caret { transition: none; }\r\n}\r\n.cv-person-filter-item {\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n padding: 0.45rem 0.5rem;\r\n border: none;\r\n border-radius: calc(var(--cv-radius) - 4px);\r\n background: none;\r\n color: var(--cv-text);\r\n font: 400 0.8rem var(--cv-font);\r\n text-align: left;\r\n cursor: pointer;\r\n}\r\n.cv-person-filter-item:hover { background: var(--cv-surface-2); }\r\n/*\r\n NOT a solid `--cv-accent-soft` fill — that read as a wall of saturated green across a wide row,\r\n much louder than the legacy CRM's own treatment for this exact list (`bg-emerald-50` — a barely-\r\n there wash — plus coloured text, never a strong fill). Coloured, bold text + the checkmark carry\r\n \"selected\" instead; `--cv-accent-strong` is already verified elsewhere in this file as AA against\r\n `--cv-surface`, which is what this popover sits on.\r\n*/\r\n.cv-person-filter-item[aria-selected='true'] .cv-person-filter-name {\r\n font-weight: 600;\r\n color: var(--cv-accent-strong);\r\n}\r\n.cv-person-filter-name {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n.cv-person-filter-check { color: var(--cv-accent-strong); flex-shrink: 0; }\r\n.cv-person-filter-check[data-on='false'] { opacity: 0; }\r\n\r\n.cv-list {\r\n flex: 1;\r\n min-height: 0;\r\n overflow-y: auto;\r\n padding: 0 0.5rem 0.5rem;\r\n}\r\n/*\r\n Historial's day group header. Sticky within `.cv-list` (its nearest scrolling ancestor — a plain\r\n wrapper div between the two does not break that), OPAQUE `--cv-bg` rather than a translucent\r\n `/85 + backdrop-blur` treatment: it still needs to fully occlude rows scrolling underneath it, and\r\n a flat match to the list's own background does that with no new CSS feature this file doesn't\r\n already use elsewhere.\r\n*/\r\n.cv-history-day {\r\n position: sticky;\r\n top: 0;\r\n z-index: 1;\r\n padding: 0.5rem 0.6rem 0.35rem;\r\n background: var(--cv-bg);\r\n color: var(--cv-muted);\r\n font-size: 0.68rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n}\r\n.cv-item {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.7rem;\r\n padding: 0.5rem;\r\n border-radius: 12px;\r\n /*\r\n NOT `cursor: pointer` — this div has no click handler of its own; only its children\r\n (`.cv-item-main`, `.cv-item-action`) do, and each already sets its own pointer cursor. Putting\r\n it here too used to make the WHOLE row's box promise a click — its own padding, and the flex\r\n `gap` between avatar/name/button — none of which does anything when clicked. Most noticeable\r\n right where one row's padding meets the next, which reads as \"there's something clickable\r\n between these two contacts\" when there is not.\r\n */\r\n transition: background 0.12s ease;\r\n text-align: left;\r\n width: 100%;\r\n border: none;\r\n background: none;\r\n font: inherit;\r\n color: inherit;\r\n}\r\n.cv-item:hover { background: var(--cv-surface); }\r\n.cv-item-avatar {\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 999px;\r\n /*\r\n RADIAL, not diagonal — deliberately. The initials sit centered, so a radial gradient puts them\r\n at its lightest point (pure `--cv-surface`) no matter what, while the edges still darken toward\r\n `--cv-surface-2` for the same cheap depth a diagonal gradient gave. A diagonal version measured\r\n 4.39:1 for `--cv-muted` text at its far corner — under the 4.5:1 text needs — because centered\r\n text's exact position against a DIAGONAL gradient depends on glyph width, not just circle size.\r\n Centering the gradient on the centered text removes that dependency entirely, structurally,\r\n rather than nudging a token and hoping the margin holds. Both stops stay tokens, so this is\r\n still theme-correct for free — a hardcoded gray gradient would not adapt to dark mode.\r\n */\r\n background: radial-gradient(circle, var(--cv-surface), var(--cv-surface-2));\r\n /*\r\n Without this, the circle's own boundary can vanish: `.cv-item:hover` sets the ROW background to\r\n `--cv-surface` — the exact color the gradient above STARTS at (1.00 contrast ratio, i.e.\r\n identical) in both themes. `--cv-border-strong` is the same token `.cv-search`'s border already\r\n uses against this same surface a few rules up — a pairing already proven visible, not a new one.\r\n */\r\n border: 1px solid var(--cv-border-strong);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: var(--cv-muted);\r\n font-size: 0.78rem;\r\n font-weight: 700;\r\n flex-shrink: 0;\r\n}\r\n/*\r\n The Historial row's status chip — WHY a call needs colour at all: direction is already the icon's\r\n shape (an arrow in/out), but \"did this connect\" is not shape-able, and a flat grey circle made every\r\n row look identical at a glance. Small badge, not a row-wide fill (that mistake already got made once\r\n on the person filter — see its own comment): a 40px circle reads as a status glyph, the same way a\r\n colored icon-badge does anywhere else; a wide fill reads as decoration competing with the text next\r\n to it. `--danger-strong`/`--accent-strong` (not the plain base tokens) because the base tokens\r\n measure BELOW 3:1 non-text contrast against their own `-soft` fill — `--cv-danger` on\r\n `--cv-danger-soft` is 2.6:1; `--cv-danger-strong` is 4.47:1 light / 3.62:1 dark, measured.\r\n*/\r\n.cv-item-avatar[data-tone='accent'] { background: var(--cv-accent-soft); color: var(--cv-accent-strong); }\r\n.cv-item-avatar[data-tone='info'] { background: var(--cv-info-soft); color: var(--cv-info-strong); }\r\n.cv-item-avatar[data-tone='danger'] { background: var(--cv-danger-soft); color: var(--cv-danger-strong); }\r\n/* A button, reset to look like plain content — the row is a container, not a control. */\r\n.cv-item-main {\r\n flex: 1;\r\n min-width: 0;\r\n display: block;\r\n border: none;\r\n background: none;\r\n padding: 0;\r\n font: inherit;\r\n color: inherit;\r\n text-align: left;\r\n cursor: pointer;\r\n transition: transform 0.1s var(--cv-ease-out);\r\n}\r\n.cv-item-main:disabled { cursor: default; }\r\n.cv-item-main:not(:disabled):active { transform: scale(0.985); }\r\n.cv-item-name {\r\n display: block;\r\n font-weight: 600;\r\n font-size: 0.875rem;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n}\r\n/*\r\n 14px bold does not clear WCAG's large-text bar (18.66px bold) — this text needs the full 4.5:1, not\r\n the 3:1 large-text minimum. `--cv-danger-strong`: 6.47:1 light / 6.46:1 dark against `--cv-bg`,\r\n measured; the plain `--cv-danger` this used to be was only 3.76:1 light — a real (if marginal) fail.\r\n*/\r\n.cv-item-name[data-tone='danger'] { color: var(--cv-danger-strong); }\r\n.cv-item-sub {\r\n display: block;\r\n font-size: 0.72rem;\r\n color: var(--cv-muted);\r\n margin-top: 1px;\r\n font-variant-numeric: tabular-nums;\r\n}\r\n.cv-item-sub-outcome { color: var(--cv-danger-strong); }\r\n/*\r\n Decorative reinforcement, not the sole carrier — the row's own play button is what says \"this call\r\n has a recording\" (it only renders when one exists); this is a small hint IN the metadata line that\r\n the button is worth pressing, so `--cv-faint` (2.5:1, documented above as decorative-only) is the\r\n right tier here, same reasoning `.cv-empty-icon`/`.cv-gate-mark` already use for icons next to real\r\n text rather than standing alone.\r\n\r\n `display: inline-flex` is load-bearing, not decoration — every OTHER inline icon in this file gets\r\n an explicit `display` for the same reason: `/react` + `/ui` render straight into the host's light\r\n DOM (no shadow root), so a host reset like Tailwind Preflight's `svg { display: block }` reaches\r\n this element directly. Without an explicit override here, that reset knocks the icon onto its own\r\n line instead of trailing the duration text it is meant to sit beside.\r\n*/\r\n.cv-item-sub-rec {\r\n display: inline-flex;\r\n color: var(--cv-faint);\r\n margin-left: 0.3rem;\r\n vertical-align: -1px;\r\n}\r\n.cv-item-action {\r\n width: 34px;\r\n height: 34px;\r\n border-radius: 999px;\r\n border: none;\r\n background: none;\r\n color: var(--cv-muted);\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n transition: background 0.12s ease, color 0.12s ease, transform 0.1s var(--cv-ease-out);\r\n}\r\n.cv-item-action:hover { background: var(--cv-accent); color: #fff; }\r\n.cv-item-action:active { transform: scale(0.9); }\r\n/*\r\n The call action specifically (ContactsTab) — NOT History's \"play recording\", which shares this\r\n same class and must stay neutral; a play button has no reason to be accent-colored. Scoped with\r\n `data-tone`, the same modifier convention `.cv-ctrl[data-tone]` already uses elsewhere in this file.\r\n\r\n Coloured at REST, not just on hover: a hover-only reveal never fires on a touchscreen, so the one\r\n affordance that most needs to read as \"you can tap this\" would be invisible on exactly the devices\r\n a phone widget is likeliest to run on. `accent-strong` is already verified elsewhere in this file\r\n as AA on a surface; `accent-soft` is the same hover tint `.cv-ctrl[data-tone='accent']` uses, just\r\n transparent at rest so fifty rows of solid fill never turns the list into a wall of green.\r\n*/\r\n.cv-item-action[data-tone='accent'] { color: var(--cv-accent-strong); }\r\n.cv-item-action[data-tone='accent']:hover { background: var(--cv-accent-soft); color: var(--cv-accent-strong); }\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-item-main, .cv-item-action, .cv-search-clear { transition: none; }\r\n}\r\n\r\n.cv-empty {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100%;\r\n color: var(--cv-muted);\r\n text-align: center;\r\n padding: 2.5rem 1.25rem;\r\n font-size: 0.82rem;\r\n}\r\n.cv-empty-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 48px;\r\n height: 48px;\r\n border-radius: 999px;\r\n background: var(--cv-surface);\r\n color: var(--cv-faint);\r\n margin-bottom: 0.75rem;\r\n}\r\n.cv-empty-title { margin: 0; font-size: 0.85rem; font-weight: 600; color: var(--cv-muted); }\r\n/*\r\n `--cv-muted`, NOT `--cv-faint` — this file documents faint as \"decorative only... never\r\n information\" (2.5:1, below AA), and this line IS information: it is the reason the list is\r\n empty, sometimes echoing the user's own search back to them. `--cv-faint` here measured 2.54:1\r\n light / 3.70:1 dark against a 4.5:1 bar — a real failure, not a rounding difference.\r\n*/\r\n.cv-empty-sub { margin: 0.2rem 0 0; font-size: 0.75rem; color: var(--cv-muted); }\r\n.cv-empty-spinner {\r\n margin-bottom: 0.75rem;\r\n animation: cv-spin 0.8s linear infinite;\r\n /* A loading spinner's rotation IS the information, with no static equivalent — unlike this\r\n file's other motion, it stays exempt from reduced-motion rather than freezing into a shape\r\n that would just look stuck. Colour comes from `.cv-empty`'s own `color: var(--cv-muted)` —\r\n the spinner no longer sets its own, now that it sits next to real text instead of standing\r\n alone: the icon is decorative reinforcement, same as `.cv-empty-icon`, not the sole carrier. */\r\n}\r\n@keyframes cv-spin {\r\n to { transform: rotate(360deg); }\r\n}\r\n\r\n/* The scroll-triggered \"load more\" marker — see `useInfiniteList`. Never visible itself; a small\r\n height so it has a real box for the `IntersectionObserver` to track. */\r\n.cv-list-sentinel {\r\n height: 1px;\r\n}\r\n.cv-list-loading-more {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 0.75rem 0 0.25rem;\r\n color: var(--cv-muted);\r\n}\r\n/* Exempt from reduced-motion for the same reason `.cv-empty-spinner` is — see its own comment. */\r\n.cv-list-loading-more-spinner {\r\n animation: cv-spin 0.8s linear infinite;\r\n}\r\n\r\n/* ── Contact detail (overlays the list) ──────────────────────────────────────── */\r\n.cv-detail {\r\n position: absolute;\r\n inset: 0;\r\n /* Above the list's own sticky day-group header (`.cv-history-day`, z-index: 1) — otherwise\r\n that header's z-index wins the stacking fight wherever its unscrolled flow position happens\r\n to land on top of this overlay, and it paints through despite both having an opaque bg. */\r\n z-index: 2;\r\n display: flex;\r\n flex-direction: column;\r\n background: var(--cv-bg);\r\n animation: cv-detail-in 220ms var(--cv-ease-out) both;\r\n}\r\n@keyframes cv-detail-in {\r\n from { opacity: 0; transform: translateX(10px); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-detail { animation: none; }\r\n}\r\n\r\n.cv-detail-head { flex-shrink: 0; padding: 0.6rem 0.5rem 0; }\r\n.cv-detail-back {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.3rem;\r\n padding: 0.4rem 0.5rem;\r\n border: none;\r\n border-radius: 8px;\r\n background: none;\r\n color: var(--cv-muted);\r\n font: 600 0.82rem var(--cv-font);\r\n cursor: pointer;\r\n transition: color 0.12s ease, transform 0.1s var(--cv-ease-out);\r\n}\r\n.cv-detail-back:hover { color: var(--cv-text); }\r\n.cv-detail-back:active { transform: scale(0.97); }\r\n\r\n.cv-detail-body { flex: 1; min-height: 0; overflow-y: auto; padding: 0 1.25rem; }\r\n.cv-detail-identity {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n text-align: center;\r\n padding: 0.75rem 0 1.5rem;\r\n}\r\n.cv-detail-avatar {\r\n width: 72px;\r\n height: 72px;\r\n border-radius: 999px;\r\n /* Same radial + border treatment as `.cv-item-avatar` (see its own comment), just larger. Neutral\r\n by default — a contact has no \"status\" to colour. `HistoryDetail` overrides both with `[data-tone]`\r\n below: a call DOES have one, the same one the list row already shows, so the hero avatar staying\r\n grey there would be information the list already gave up on repeating here. */\r\n background: radial-gradient(circle, var(--cv-surface), var(--cv-surface-2));\r\n border: 1px solid var(--cv-border-strong);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: var(--cv-muted);\r\n font-size: 1.35rem;\r\n font-weight: 700;\r\n margin-bottom: 0.85rem;\r\n}\r\n/* Same token pairs already verified for `.cv-item-avatar[data-tone]` — size doesn't change a contrast\r\n ratio, so no new numbers to measure here. */\r\n.cv-detail-avatar[data-tone='accent'] { background: var(--cv-accent-soft); color: var(--cv-accent-strong); border-color: transparent; }\r\n.cv-detail-avatar[data-tone='info'] { background: var(--cv-info-soft); color: var(--cv-info-strong); border-color: transparent; }\r\n.cv-detail-avatar[data-tone='danger'] { background: var(--cv-danger-soft); color: var(--cv-danger-strong); border-color: transparent; }\r\n.cv-detail-name {\r\n margin: 0;\r\n font-size: 1.1rem;\r\n font-weight: 700;\r\n color: var(--cv-text);\r\n letter-spacing: -0.01em;\r\n}\r\n.cv-detail-name[data-tone='danger'] { color: var(--cv-danger-strong); }\r\n.cv-detail-meta {\r\n margin: 0.2rem 0 0;\r\n font-size: 0.78rem;\r\n color: var(--cv-muted);\r\n}\r\n\r\n/* ── Call detail: recording ───────────────────────────────────────────────── */\r\n.cv-detail-recording { margin-bottom: 1rem; }\r\n.cv-detail-recording-label {\r\n margin: 0 0 0.4rem;\r\n padding: 0 0.15rem;\r\n font-size: 0.68rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.03em;\r\n color: var(--cv-muted);\r\n}\r\n.cv-detail-audio { width: 100%; display: block; }\r\n.cv-detail-audio + .cv-detail-audio { margin-top: 0.5rem; }\r\n.cv-detail-recording-status {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n margin: 0 0 1rem;\r\n padding: 0.65rem 0.75rem;\r\n border-radius: 12px;\r\n background: var(--cv-surface);\r\n color: var(--cv-muted);\r\n font-size: 0.78rem;\r\n}\r\n/*\r\n Text colour only, same neutral `--cv-surface` background the other states use — NOT a\r\n `--cv-danger-soft` fill. Measured first, not assumed: `--cv-danger-strong` on `--cv-danger-soft`\r\n is 3.34:1 light / 3.62:1 dark, well under the 4.5:1 this 0.78rem text needs (it only ever cleared\r\n the SEPARATE 3:1 non-text bar this token was built for — an icon on that badge, not body text on\r\n it). Same lesson the person-filter fix already paid for: a badge-strength pairing that works for an\r\n icon is not automatically safe for text.\r\n*/\r\n.cv-detail-recording-status--warn { color: var(--cv-danger-strong); }\r\n.cv-detail-recording-spinner { animation: cv-spin 0.8s linear infinite; flex-shrink: 0; }\r\n\r\n/* ── Call detail: who handled it ──────────────────────────────────────────── */\r\n.cv-detail-handlers { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; }\r\n.cv-detail-handler-hop { display: inline-flex; align-items: center; gap: 0.3rem; }\r\n.cv-detail-handler-arrow { color: var(--cv-faint); flex-shrink: 0; }\r\n.cv-detail-handler-chip {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.3rem;\r\n padding: 0.15rem 0.5rem;\r\n border-radius: 999px;\r\n background: var(--cv-surface-2);\r\n color: var(--cv-text);\r\n font-size: 0.75rem;\r\n font-weight: 600;\r\n}\r\n/* The LAST hop — the one the call actually ended with — is the one worth a glance first. */\r\n.cv-detail-handler-chip[data-tone='accent'] { background: var(--cv-accent-soft); color: var(--cv-accent-strong); }\r\n.cv-detail-handler-ext {\r\n font-weight: 400;\r\n font-variant-numeric: tabular-nums;\r\n opacity: 0.75;\r\n}\r\n\r\n.cv-detail-rows {\r\n border: 1px solid var(--cv-border);\r\n border-radius: 14px;\r\n overflow: hidden;\r\n background: var(--cv-bg);\r\n}\r\n.cv-detail-row {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.7rem;\r\n width: 100%;\r\n padding: 0.7rem 0.85rem;\r\n border: none;\r\n border-top: 1px solid var(--cv-border);\r\n background: none;\r\n font: inherit;\r\n color: inherit;\r\n text-align: left;\r\n}\r\n.cv-detail-row:first-child { border-top: none; }\r\n.cv-detail-row--action {\r\n cursor: pointer;\r\n transition: background 0.12s ease;\r\n}\r\n.cv-detail-row--action:hover { background: var(--cv-surface); }\r\n.cv-detail-row-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 32px;\r\n height: 32px;\r\n border-radius: 999px;\r\n background: var(--cv-surface-2);\r\n /*\r\n Without this the circle nearly vanishes into its own row: `--cv-surface-2` measures only ~1.1:1\r\n against the row's rest-state background and ~1.05:1 against `--cv-surface`, the color\r\n `.cv-detail-row--action:hover` sets the ROW to — both far below a readable boundary, and worse\r\n than `.cv-item-avatar`/`.cv-detail-avatar` above even manage WITH their border (1.18:1 light /\r\n 1.57:1 dark). Same token, same fix, same reason.\r\n */\r\n border: 1px solid var(--cv-border-strong);\r\n color: var(--cv-muted);\r\n flex-shrink: 0;\r\n}\r\n.cv-detail-row-text { flex: 1; min-width: 0; display: flex; flex-direction: column; }\r\n.cv-detail-row-eyebrow {\r\n font-size: 0.68rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.03em;\r\n color: var(--cv-muted);\r\n}\r\n.cv-detail-row-value {\r\n font-size: 0.85rem;\r\n font-weight: 500;\r\n color: var(--cv-text);\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n}\r\n.cv-detail-row-chevron { color: var(--cv-faint); flex-shrink: 0; }\r\n\r\n.cv-detail-foot { flex-shrink: 0; padding: 0.85rem 1.25rem 1.1rem; }\r\n.cv-detail-call { width: 100%; display: flex; align-items: center; justify-content: center; gap: 0.4rem; }\r\n\r\n/* ── Settings tab (device selection, SPEC §7 Phase 2) ──────────────────────────── */\r\n.cv-settings-body {\r\n flex: 1;\r\n min-height: 0;\r\n overflow-y: auto;\r\n padding: 1rem;\r\n display: flex;\r\n flex-direction: column;\r\n /* Generous separation BETWEEN sections, deliberately larger than any gap inside one — grouping\r\n only reads as grouping if the space between groups is clearly bigger than the space within one\r\n (see impeccable's layout guidance: \"tight grouping, generous separation\"). */\r\n gap: 1.5rem;\r\n}\r\n\r\n/*\r\n One labeled group (`SettingsSection`): a title, and a bordered body holding its rows. Ajustes\r\n started as a flat list of two rows with nothing to say they were related — fine for exactly two\r\n rows, unreadable the moment an unrelated third setting lands with nothing to tell it apart from\r\n the device rows above it.\r\n\r\n The body is ONE card, not a card per row: `.cv-settings-row`/`.cv-settings-note` below carry no\r\n border or background of their own, only a divider between siblings — the same shape\r\n `.cv-detail-rows`/`.cv-detail-row` already use elsewhere in this file, and deliberately not a\r\n stack of individually-bordered cards (nested-card territory).\r\n*/\r\n.cv-settings-section { display: flex; flex-direction: column; gap: 0.5rem; }\r\n.cv-settings-section-title {\r\n margin: 0;\r\n padding: 0 0.2rem;\r\n font-size: 0.7rem;\r\n font-weight: 700;\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n color: var(--cv-muted);\r\n}\r\n.cv-settings-section-body {\r\n border: 1px solid var(--cv-border);\r\n border-radius: 14px;\r\n background: var(--cv-bg);\r\n overflow: hidden;\r\n}\r\n.cv-settings-section-body > * { padding: 0.75rem 0.85rem; }\r\n.cv-settings-section-body > *:not(:first-child) { border-top: 1px solid var(--cv-border); }\r\n\r\n.cv-settings-row { display: flex; align-items: center; gap: 0.7rem; }\r\n/* Same treatment as `.cv-detail-row-icon`, same reason — see its own comment on why the border is\r\n load-bearing: `--cv-surface-2` alone nearly vanishes into the section's own background. */\r\n.cv-settings-row-icon {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 32px;\r\n height: 32px;\r\n border-radius: 999px;\r\n background: var(--cv-surface-2);\r\n border: 1px solid var(--cv-border-strong);\r\n color: var(--cv-muted);\r\n flex-shrink: 0;\r\n}\r\n.cv-settings-row-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.35rem; }\r\n/* Same pairing as `.cv-detail-row-eyebrow` (`--cv-muted` on `--cv-bg`), verified there already. */\r\n.cv-settings-row-label {\r\n font-size: 0.68rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.03em;\r\n color: var(--cv-muted);\r\n}\r\n.cv-settings-select {\r\n width: 100%;\r\n padding: 0.45rem 0.6rem;\r\n border-radius: 8px;\r\n border: 1px solid var(--cv-border-strong);\r\n background: var(--cv-surface);\r\n color: var(--cv-text);\r\n font: inherit;\r\n font-size: 0.85rem;\r\n transition: border-color 0.15s ease, background 0.15s ease;\r\n}\r\n.cv-settings-select:focus { outline: none; border-color: var(--cv-accent); background: var(--cv-bg); }\r\n.cv-settings-empty { font-size: 0.85rem; color: var(--cv-muted); }\r\n/* `--cv-muted` on `--cv-bg` — 4.83:1 light / 6.97:1 dark, computed fresh for THIS pairing (the note\r\n used to sit on `--cv-surface` with its own card; now it sits directly on the section's `--cv-bg`,\r\n a different background that earns its own check rather than inheriting the old one's number). */\r\n.cv-settings-note {\r\n margin: 0;\r\n color: var(--cv-muted);\r\n font-size: 0.8rem;\r\n line-height: 1.5;\r\n}\r\n/* Closing note for the tab as a whole, not any one section — sits directly on `.cv-settings-body`,\r\n which shares the same `--cv-bg` as `.cv-settings-section-body` above, so the `--cv-muted`-on-\r\n `--cv-bg` pairing already verified for `.cv-settings-note` carries over unchanged. Centred and\r\n quieter than a row: this is a footnote about the tab, not a row's worth of content. */\r\n.cv-settings-more {\r\n margin: 0;\r\n padding: 0 0.5rem;\r\n text-align: center;\r\n color: var(--cv-muted);\r\n font-size: 0.78rem;\r\n line-height: 1.5;\r\n}\r\n\r\n/* ── Centred states (mic gate) ───────────────────────────────────────────────── */\r\n.cv-center {\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.85rem;\r\n padding: 1.75rem;\r\n text-align: center;\r\n}\r\n.cv-center p { color: var(--cv-muted); margin: 0; font-size: 0.85rem; line-height: 1.5; }\r\n\r\n\r\n/* \"Cómo permitirlo\" — a native <details> disclosure.\r\n Collapsed by default: the people who already know where the padlock is should not have to read\r\n past three steps to get there, and the people who don't get them without leaving the app. */\r\n.cv-help {\r\n width: 100%;\r\n margin-top: 0.15rem;\r\n text-align: left;\r\n}\r\n.cv-help summary {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.3rem;\r\n justify-content: center;\r\n width: 100%;\r\n padding: 0.3rem;\r\n border-radius: 8px;\r\n color: var(--cv-muted);\r\n font: 500 0.75rem var(--cv-font);\r\n cursor: pointer;\r\n list-style: none; /* hide the default triangle; the icon is the affordance */\r\n transition: color 0.15s ease, background 0.15s ease;\r\n}\r\n.cv-help summary::-webkit-details-marker { display: none; }\r\n.cv-help summary:hover { color: var(--cv-text); background: var(--cv-surface-2); }\r\n.cv-help[open] summary { color: var(--cv-text); margin-bottom: 0.35rem; }\r\n\r\n.cv-help ol {\r\n margin: 0;\r\n padding: 0.6rem 0.7rem 0.6rem 1.6rem;\r\n background: var(--cv-surface);\r\n border-radius: 10px;\r\n color: var(--cv-muted);\r\n font-size: 0.73rem;\r\n line-height: 1.55;\r\n}\r\n.cv-help li + li { margin-top: 0.3rem; }\r\n.cv-help li::marker { color: var(--cv-faint); font-variant-numeric: tabular-nums; }\r\n\r\n.cv-help a {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n margin-top: 0.45rem;\r\n padding-left: 0.1rem;\r\n color: var(--cv-accent-strong);\r\n font-size: 0.73rem;\r\n font-weight: 500;\r\n text-decoration: none;\r\n}\r\n.cv-help a:hover { text-decoration: underline; }\r\n\r\n/* The panel is the only thing that moves, and only when opened by hand — so it animates. */\r\n.cv-help[open] ol {\r\n animation: cv-gate-in 200ms var(--cv-ease-out) both;\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-help[open] ol { animation: none; }\r\n}\r\n\r\n/* ── The permission gate ─────────────────────────────────────────────────────\r\n Four states, and only ONE of them deserves a designed screen.\r\n\r\n `checking` resolves in ~100–400 ms. Rendering it immediately means the user\r\n sees text appear and vanish inside a blink — a flash reads as jank, not as\r\n information. So it is delayed 450 ms with `both` fill: invisible during the\r\n delay, and if the check finishes first (the usual case, and always the case\r\n when permission is already granted) it is never painted at all.\r\n\r\n `prompting` is the one the user actually reads and acts on. It gets the\r\n hierarchy: mark, title, reason, action.\r\n ─────────────────────────────────────────────────────────────────────────── */\r\n.cv-gate {\r\n flex: 1;\r\n min-height: 0;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 0.6rem;\r\n padding: 1.5rem 1.75rem;\r\n text-align: center;\r\n}\r\n\r\n/* The disc echoes the call avatar — one visual language, not two. */\r\n.cv-gate-mark {\r\n display: grid;\r\n place-items: center;\r\n width: 52px;\r\n height: 52px;\r\n border-radius: 999px;\r\n background: var(--cv-accent-soft);\r\n color: var(--cv-accent-strong);\r\n margin-bottom: 0.15rem;\r\n}\r\n.cv-gate[data-tone='danger'] .cv-gate-mark {\r\n background: var(--cv-danger-soft);\r\n color: var(--cv-danger);\r\n}\r\n\r\n.cv-gate-title {\r\n margin: 0;\r\n font: 600 0.95rem var(--cv-font);\r\n color: var(--cv-text);\r\n letter-spacing: -0.01em;\r\n}\r\n.cv-gate p {\r\n margin: 0;\r\n color: var(--cv-muted);\r\n font-size: 0.8rem;\r\n line-height: 1.5;\r\n max-width: 24ch; /* two comfortable lines, not one long one */\r\n}\r\n.cv-gate .cv-btn { margin-top: 0.5rem; }\r\n\r\n/* Entrance. Staggered 45 ms apart: the eye follows mark → title → reason →\r\n action, which is the order it needs to read them in anyway. */\r\n.cv-gate > * {\r\n animation: cv-gate-in 260ms var(--cv-ease-out) both;\r\n}\r\n.cv-gate > *:nth-child(2) { animation-delay: 45ms; }\r\n.cv-gate > *:nth-child(3) { animation-delay: 90ms; }\r\n.cv-gate > *:nth-child(4) { animation-delay: 135ms; }\r\n\r\n@keyframes cv-gate-in {\r\n from { opacity: 0; transform: translateY(6px); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n\r\n/* The checking state: held back, then a quiet fade. No stagger, no movement —\r\n it is a status, not a screen, and it should barely register. */\r\n.cv-gate[data-state='checking'] > *,\r\n.cv-gate[data-state='warming'] > * {\r\n animation: cv-gate-wait 200ms var(--cv-ease-out) 450ms both;\r\n}\r\n@keyframes cv-gate-wait {\r\n from { opacity: 0; }\r\n to { opacity: 1; }\r\n}\r\n/* A slow breath rather than a spinner: a spinner promises a long wait, and this\r\n is not one. */\r\n.cv-gate[data-state='checking'] .cv-gate-mark,\r\n.cv-gate[data-state='warming'] .cv-gate-mark {\r\n background: var(--cv-surface-2);\r\n color: var(--cv-muted);\r\n animation: cv-gate-wait 200ms var(--cv-ease-out) 450ms both,\r\n cv-breathe 1.8s ease-in-out 450ms infinite;\r\n}\r\n@keyframes cv-breathe {\r\n 0%, 100% { opacity: 1; }\r\n 50% { opacity: 0.45; }\r\n}\r\n\r\n/* Reduced motion: keep the fade and — critically — keep the DELAY, which is\r\n timing rather than motion and is the whole point. Drop the travel. */\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-gate > * {\r\n animation: cv-gate-wait 200ms var(--cv-ease-out) both;\r\n }\r\n .cv-gate[data-state='checking'] .cv-gate-mark,\r\n .cv-gate[data-state='warming'] .cv-gate-mark {\r\n animation: cv-gate-wait 200ms var(--cv-ease-out) 450ms both;\r\n }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-avatar-ping,\r\n .cv-timer i { animation: none; }\r\n .cv-softphone *,\r\n .cv-softphone *::before { transition-duration: 0.01ms !important; }\r\n}\r\n\r\n/* `*` and `#` stay in the grid — a keypad without them is not a keypad — but they are not part of a\r\n number (toE164 keeps digits only). Dimmed rather than `disabled` so the grid still reads as a\r\n keypad and the glyphs stay legible; they become live DTMF on the in-call screen. */\r\n.cv-key[data-dialable='false'] {\r\n cursor: default;\r\n}\r\n.cv-key[data-dialable='false'] b {\r\n color: var(--cv-faint);\r\n}\r\n.cv-key[data-dialable='false']:hover {\r\n background: none;\r\n}\r\n.cv-key[data-dialable='false']:active {\r\n transform: none;\r\n}\r\n\r\n/* ── Country picker ──────────────────────────────────────────────────────────\r\n The prefix chip + its list. Sits where the old left spacer was, so the number\r\n stays optically centred against the 36px erase button on the right.\r\n\r\n The popover is absolutely positioned inside the widget rather than portalled:\r\n there is nowhere to portal TO inside a shadow root, and the widget already owns\r\n its stacking context. That also means it cannot be clipped by a host's\r\n `overflow:hidden` — the failure SPEC §2.6 lists for the CRM's Radix version.\r\n ──────────────────────────────────────────────────────────────────────────── */\r\n/* The anchor spans the whole ROW, not just the chip.\r\n With the chip centred, anchoring to the chip put the popover's left edge at ~120px and its right\r\n edge past the widget — clipped by `.cv-softphone { overflow: hidden }`, which is the classic\r\n absolute-inside-overflow bug. Anchoring to the full row makes overflowing arithmetically\r\n impossible: `left:0; right:0` cannot be wider than the row that contains it. */\r\n.cv-cp {\r\n position: relative;\r\n display: flex;\r\n justify-content: center;\r\n width: 100%;\r\n}\r\n/* A PILL, with a resting surface and a border.\r\n This was `border: none; background: none` — invisible until hover, so it read as a label rather\r\n than a control. That was survivable when it sat inline beside the number; alone on its own row it\r\n is just floating text, and nothing says \"you can change this\". A control that changes state has to\r\n look like one at rest, not only under a cursor that may never arrive (touch has no hover at all). */\r\n.cv-cp-chip {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.3rem;\r\n height: 30px;\r\n padding: 0 0.5rem 0 0.4rem;\r\n border: 1px solid var(--cv-border-strong);\r\n border-radius: 999px;\r\n background: var(--cv-surface);\r\n color: var(--cv-text);\r\n font: 600 0.8rem var(--cv-font);\r\n cursor: pointer;\r\n transition: background 0.15s, border-color 0.15s;\r\n}\r\n.cv-cp-chip:hover { background: var(--cv-surface-2); }\r\n.cv-cp-chip:active { transform: scale(0.95); }\r\n/* Open: the chip is the thing the list belongs to, so it stays visibly engaged while the list is up. */\r\n.cv-cp-chip[aria-expanded='true'] {\r\n background: var(--cv-accent-soft);\r\n border-color: var(--cv-accent);\r\n}\r\n.cv-cp-dial {\r\n font-variant-numeric: tabular-nums;\r\n letter-spacing: -0.02em;\r\n}\r\n.cv-cp-caret {\r\n color: var(--cv-faint);\r\n flex-shrink: 0;\r\n transition: transform 0.18s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n.cv-cp-caret[data-open='true'] { transform: rotate(180deg); }\r\n\r\n/* The country mark. TWO designed states in ONE 20×14 box (a flag's own 3:2), so the chip and every\r\n row keep their rhythm whichever is showing — nothing reflows when the flags land. The plate is the\r\n LOADING state (flags are a lazy import) and the offline state, not a fallback: there is no flash of\r\n something broken, only a designed plate becoming a designed flag, once per session.\r\n `::part(country-mark)` lets a host restyle either. */\r\n.cv-mark {\r\n width: 20px;\r\n height: 14px;\r\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 14px;\r\n line-height: 1;\r\n font-family: 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji', var(--cv-font);\r\n}\r\n/* The SVG fills the slot exactly; 3x2 is the flag aspect, so nothing is letterboxed or cropped. */\r\n.cv-mark-svg {\r\n width: 100%;\r\n height: 100%;\r\n display: block;\r\n border-radius: 2px;\r\n object-fit: cover;\r\n}\r\n.cv-mark[data-plate='true'] {\r\n /* The ISO code set into the slot a flag will occupy. */\r\n font-family: var(--cv-font);\r\n font-size: 8.5px;\r\n font-weight: 700;\r\n letter-spacing: 0.04em;\r\n color: var(--cv-text);\r\n background: var(--cv-surface-2);\r\n border: 1px solid var(--cv-border);\r\n border-radius: 3px;\r\n /* Cap-height letters sit optically high in a 14px box; nudge them back to centre. */\r\n padding-top: 1px;\r\n}\r\n\r\n.cv-cp-pop {\r\n position: absolute;\r\n top: calc(100% + 6px);\r\n /* Pinned to BOTH row edges, so it is bounded by the container by construction — no width guess,\r\n no media query, nothing to clip. `max-width` keeps it from looking stretched on a wide host. */\r\n left: 0;\r\n right: 0;\r\n margin-inline: auto;\r\n max-width: 260px;\r\n z-index: 20;\r\n display: flex;\r\n flex-direction: column;\r\n background: var(--cv-surface);\r\n border: 1px solid var(--cv-border);\r\n border-radius: var(--cv-radius);\r\n box-shadow: var(--cv-shadow);\r\n overflow: hidden;\r\n /* Grows from the chip it belongs to, rather than appearing on top of it. */\r\n transform-origin: top center;\r\n animation: cv-cp-in 0.14s cubic-bezier(0.2, 0, 0.2, 1);\r\n}\r\n@keyframes cv-cp-in {\r\n from { opacity: 0; transform: translateY(-4px) scale(0.97); }\r\n to { opacity: 1; transform: none; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n .cv-cp-pop { animation: none; }\r\n .cv-cp-caret { transition: none; }\r\n}\r\n.cv-cp-search {\r\n flex-shrink: 0;\r\n padding: 0.5rem 0.65rem;\r\n border: none;\r\n border-bottom: 1px solid var(--cv-border);\r\n background: none;\r\n color: var(--cv-text);\r\n font: 400 0.8rem var(--cv-font);\r\n outline: none;\r\n}\r\n.cv-cp-search::placeholder { color: var(--cv-faint); }\r\n/* Both states named explicitly. In the CRM the widget mounts via `/ui`, i.e. in the LIGHT DOM — none\r\n of the shadow-DOM isolation the web-component playground proves applies there, so a host's focus\r\n ring (or the browser's own) can land on our input. The accent underline IS the focus indicator. */\r\n.cv-cp-search:focus,\r\n.cv-cp-search:focus-visible {\r\n outline: none;\r\n border-bottom-color: var(--cv-accent);\r\n border-bottom-width: 2px;\r\n padding-bottom: calc(0.5rem - 1px);\r\n}\r\n.cv-cp-list {\r\n overflow-y: auto;\r\n max-height: 220px;\r\n padding: 0.25rem;\r\n}\r\n.cv-cp-item {\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n padding: 0.4rem 0.45rem;\r\n border: none;\r\n border-radius: calc(var(--cv-radius) - 4px);\r\n background: none;\r\n color: var(--cv-text);\r\n font: 400 0.8rem var(--cv-font);\r\n text-align: left;\r\n cursor: pointer;\r\n}\r\n.cv-cp-item:hover { background: var(--cv-surface-2); }\r\n/* The current country is stated by the row, not only by a tick at the far right. */\r\n.cv-cp-item[aria-selected='true'] { background: var(--cv-accent-soft); }\r\n.cv-cp-item[aria-selected='true'] .cv-cp-name { font-weight: 600; }\r\n.cv-cp-name {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n.cv-cp-item .cv-cp-dial {\r\n color: var(--cv-muted);\r\n font-weight: 400;\r\n}\r\n.cv-cp-check { color: var(--cv-accent-strong); flex-shrink: 0; }\r\n.cv-cp-check[data-on='false'] { opacity: 0; }\r\n.cv-cp-empty {\r\n margin: 0;\r\n padding: 1rem 0.5rem;\r\n text-align: center;\r\n color: var(--cv-muted);\r\n font-size: 0.78rem;\r\n}\r\n"]}
|