@launchdarkly/session-replay 1.1.8 → 1.1.10
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/CHANGELOG.md +16 -0
- package/dist/{LDObserve-CyCSUhWh.js → LDObserve-BWP0kTR0.js} +2 -2
- package/dist/{LDObserve-CyCSUhWh.js.map → LDObserve-BWP0kTR0.js.map} +1 -1
- package/dist/{index-DgGtLa3g.js → index-CKqZvJsH.js} +1356 -1354
- package/dist/index-CKqZvJsH.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.umd.js +60 -60
- package/dist/index.umd.js.map +1 -1
- package/package.json +4 -4
- package/dist/index-DgGtLa3g.js.map +0 -1
package/dist/index.umd.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
(function(Re,Ft){typeof exports=="object"&&typeof module<"u"?Ft(exports):typeof define=="function"&&define.amd?define(["exports"],Ft):(Re=typeof globalThis<"u"?globalThis:Re||self,Ft(Re.SessionReplay={}))})(this,function(Re){"use strict";var Ft=Object.defineProperty,
|
|
1
|
+
(function(Re,Ft){typeof exports=="object"&&typeof module<"u"?Ft(exports):typeof define=="function"&&define.amd?define(["exports"],Ft):(Re=typeof globalThis<"u"?globalThis:Re||self,Ft(Re.SessionReplay={}))})(this,function(Re){"use strict";var Ft=Object.defineProperty,fu=(e,t,i)=>t in e?Ft(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Oe=(e,t,i)=>fu(e,typeof t!="symbol"?t+"":t,i),bu=(e,t,i)=>new Promise((n,s)=>{var r=a=>{try{o(i.next(a))}catch(c){s(c)}},l=a=>{try{o(i.throw(a))}catch(c){s(c)}},o=a=>a.done?n(a.value):Promise.resolve(a.value).then(r,l);o((i=i.apply(e,t)).next())});const Br=Object.create(null),Xe=(e,t,...i)=>{const n=`[@launchdarkly plugins]: (${e}): `;console[t].apply(console,[n,...i]),yu(n,...i)},ht=(e,t,i,...n)=>{Br[`${e}-${t}`]||(Br[`${e}-${t}`]=!0,Xe(e,i,...n))},yu=(e,...t)=>bu(void 0,null,function*(){try{const{LDObserve:i}=yield Promise.resolve().then(()=>_g);i.recordLog(`${e}${t}`,"warn")}catch{}});class Qr{constructor(t,i){Oe(this,"debug"),Oe(this,"name"),this.debug=t,this.name=i}log(...t){if(this.debug){let i=`[${Date.now()}]`;this.name&&(i+=` - ${this.name}`),console.log.apply(console,[i,...t])}}warn(...t){let i=`[${Date.now()}]`;this.name&&(i+=` - ${this.name}`),console.warn.apply(console,[i,...t])}}let jn=class{constructor(){Oe(this,"_sdk"),Oe(this,"_isLoaded",!1),Oe(this,"_callBuffer",[]),Oe(this,"_capacity",1e5),Oe(this,"_droppedEvents",0),Oe(this,"_exceededCapacity",!1),Oe(this,"_logger",new Qr)}_bufferCall(t,i){if(this._isLoaded)try{return this._sdk[t](...i)}catch(n){Xe(`Error executing buffered call to ${t}:`,"error",n)}else{this._enqueue({method:t,args:i});return}}_enqueue(t){this._callBuffer.length<this._capacity?(this._callBuffer.push(t),this._exceededCapacity=!1):(this._exceededCapacity||(this._exceededCapacity=!0,Xe("Exceeded event queue capacity. Increase capacity to avoid dropping events.","warn")),this._droppedEvents+=1)}load(t){this._sdk=t,this._isLoaded=!0;for(const{method:i,args:n}of this._callBuffer)try{this._sdk[i](...n)}catch(s){Xe(`Error executing buffered call to ${i}:`,"error",s)}this._callBuffer=[]}};var gu=Object.defineProperty,Zu=Object.defineProperties,Iu=Object.getOwnPropertyDescriptors,Vi=Object.getOwnPropertySymbols,jr=Object.prototype.hasOwnProperty,Ar=Object.prototype.propertyIsEnumerable,An=(e,t,i)=>t in e?gu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,B=(e,t)=>{for(var i in t||(t={}))jr.call(t,i)&&An(e,i,t[i]);if(Vi)for(var i of Vi(t))Ar.call(t,i)&&An(e,i,t[i]);return e},Gi=(e,t)=>Zu(e,Iu(t)),Ut=(e,t)=>{var i={};for(var n in e)jr.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(e!=null&&Vi)for(var n of Vi(e))t.indexOf(n)<0&&Ar.call(e,n)&&(i[n]=e[n]);return i},Kt=(e,t,i)=>An(e,typeof t!="symbol"?t+"":t,i),pt=(e,t,i)=>new Promise((n,s)=>{var r=a=>{try{o(i.next(a))}catch(c){s(c)}},l=a=>{try{o(i.throw(a))}catch(c){s(c)}},o=a=>a.done?n(a.value):Promise.resolve(a.value).then(r,l);o((i=i.apply(e,t)).next())});function Ci(e,t){throw new Error(t)}function Su(e){return typeof e=="object"&&e!==null}function Xu(e,t){throw new Error("Unexpected invariant triggered.")}const Vu=/\r\n|[\n\r]/g;function _n(e,t){let i=0,n=1;for(const s of e.body.matchAll(Vu)){if(typeof s.index=="number"||Xu(),s.index>=t)break;i=s.index+s[0].length,n+=1}return{line:n,column:t+1-i}}function Gu(e){return _r(e.source,_n(e.source,e.start))}function _r(e,t){const i=e.locationOffset.column-1,n="".padStart(i)+e.body,s=t.line-1,r=e.locationOffset.line-1,l=t.line+r,o=t.line===1?i:0,a=t.column+o,c=`${e.name}:${l}:${a}
|
|
2
2
|
`,u=n.split(/\r\n|[\n\r]/g),h=u[s];if(h.length>120){const p=Math.floor(a/80),m=a%80,f=[];for(let d=0;d<h.length;d+=80)f.push(h.slice(d,d+80));return c+$r([[`${l} |`,f[0]],...f.slice(1,p+1).map(d=>["|",d]),["|","^".padStart(m)],["|",f[p+1]]])}return c+$r([[`${l-1} |`,u[s-1]],[`${l} |`,h],["|","^".padStart(a)],[`${l+1} |`,u[s+1]]])}function $r(e){const t=e.filter(([n,s])=>s!==void 0),i=Math.max(...t.map(([n])=>n.length));return t.map(([n,s])=>n.padStart(i)+(s?" "+s:"")).join(`
|
|
3
|
-
`)}function
|
|
3
|
+
`)}function Cu(e){const t=e[0];return t==null||"kind"in t||"length"in t?{nodes:t,source:e[1],positions:e[2],path:e[3],originalError:e[4],extensions:e[5]}:t}let Ru=class au extends Error{constructor(t,...i){var n,s,r;const{nodes:l,source:o,positions:a,path:c,originalError:u,extensions:h}=Cu(i);super(t),this.name="GraphQLError",this.path=c??void 0,this.originalError=u??void 0,this.nodes=qr(Array.isArray(l)?l:l?[l]:void 0);const p=qr((n=this.nodes)===null||n===void 0?void 0:n.map(f=>f.loc).filter(f=>f!=null));this.source=o??(p==null||(s=p[0])===null||s===void 0?void 0:s.source),this.positions=a??p?.map(f=>f.start),this.locations=a&&o?a.map(f=>_n(o,f)):p?.map(f=>_n(f.source,f.start));const m=Su(u?.extensions)?u?.extensions:void 0;this.extensions=(r=h??m)!==null&&r!==void 0?r:Object.create(null),Object.defineProperties(this,{message:{writable:!0,enumerable:!0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),u!=null&&u.stack?Object.defineProperty(this,"stack",{value:u.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,au):Object.defineProperty(this,"stack",{value:Error().stack,writable:!0,configurable:!0})}get[Symbol.toStringTag](){return"GraphQLError"}toString(){let t=this.message;if(this.nodes)for(const i of this.nodes)i.loc&&(t+=`
|
|
4
4
|
|
|
5
|
-
`+
|
|
5
|
+
`+Gu(i.loc));else if(this.source&&this.locations)for(const i of this.locations)t+=`
|
|
6
6
|
|
|
7
|
-
`+_r(this.source,i);return t}toJSON(){const t={message:this.message};return this.locations!=null&&(t.locations=this.locations),this.path!=null&&(t.path=this.path),this.extensions!=null&&Object.keys(this.extensions).length>0&&(t.extensions=this.extensions),t}};function qr(e){return e===void 0||e.length===0?void 0:e}function ce(e,t,i){return new
|
|
7
|
+
`+_r(this.source,i);return t}toJSON(){const t={message:this.message};return this.locations!=null&&(t.locations=this.locations),this.path!=null&&(t.path=this.path),this.extensions!=null&&Object.keys(this.extensions).length>0&&(t.extensions=this.extensions),t}};function qr(e){return e===void 0||e.length===0?void 0:e}function ce(e,t,i){return new Ru(`Syntax Error: ${i}`,{source:e,positions:[t]})}let Wu=class{constructor(t,i,n){this.start=t.start,this.end=i.end,this.startToken=t,this.endToken=i,this.source=n}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}},eo=class{constructor(t,i,n,s,r,l){this.kind=t,this.start=i,this.end=n,this.line=s,this.column=r,this.value=l,this.prev=null,this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}};const to={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},vu=new Set(Object.keys(to));function io(e){const t=e?.kind;return typeof t=="string"&&vu.has(t)}var mt;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})(mt||(mt={}));var $n;(function(e){e.QUERY="QUERY",e.MUTATION="MUTATION",e.SUBSCRIPTION="SUBSCRIPTION",e.FIELD="FIELD",e.FRAGMENT_DEFINITION="FRAGMENT_DEFINITION",e.FRAGMENT_SPREAD="FRAGMENT_SPREAD",e.INLINE_FRAGMENT="INLINE_FRAGMENT",e.VARIABLE_DEFINITION="VARIABLE_DEFINITION",e.SCHEMA="SCHEMA",e.SCALAR="SCALAR",e.OBJECT="OBJECT",e.FIELD_DEFINITION="FIELD_DEFINITION",e.ARGUMENT_DEFINITION="ARGUMENT_DEFINITION",e.INTERFACE="INTERFACE",e.UNION="UNION",e.ENUM="ENUM",e.ENUM_VALUE="ENUM_VALUE",e.INPUT_OBJECT="INPUT_OBJECT",e.INPUT_FIELD_DEFINITION="INPUT_FIELD_DEFINITION"})($n||($n={}));var L;(function(e){e.NAME="Name",e.DOCUMENT="Document",e.OPERATION_DEFINITION="OperationDefinition",e.VARIABLE_DEFINITION="VariableDefinition",e.SELECTION_SET="SelectionSet",e.FIELD="Field",e.ARGUMENT="Argument",e.FRAGMENT_SPREAD="FragmentSpread",e.INLINE_FRAGMENT="InlineFragment",e.FRAGMENT_DEFINITION="FragmentDefinition",e.VARIABLE="Variable",e.INT="IntValue",e.FLOAT="FloatValue",e.STRING="StringValue",e.BOOLEAN="BooleanValue",e.NULL="NullValue",e.ENUM="EnumValue",e.LIST="ListValue",e.OBJECT="ObjectValue",e.OBJECT_FIELD="ObjectField",e.DIRECTIVE="Directive",e.NAMED_TYPE="NamedType",e.LIST_TYPE="ListType",e.NON_NULL_TYPE="NonNullType",e.SCHEMA_DEFINITION="SchemaDefinition",e.OPERATION_TYPE_DEFINITION="OperationTypeDefinition",e.SCALAR_TYPE_DEFINITION="ScalarTypeDefinition",e.OBJECT_TYPE_DEFINITION="ObjectTypeDefinition",e.FIELD_DEFINITION="FieldDefinition",e.INPUT_VALUE_DEFINITION="InputValueDefinition",e.INTERFACE_TYPE_DEFINITION="InterfaceTypeDefinition",e.UNION_TYPE_DEFINITION="UnionTypeDefinition",e.ENUM_TYPE_DEFINITION="EnumTypeDefinition",e.ENUM_VALUE_DEFINITION="EnumValueDefinition",e.INPUT_OBJECT_TYPE_DEFINITION="InputObjectTypeDefinition",e.DIRECTIVE_DEFINITION="DirectiveDefinition",e.SCHEMA_EXTENSION="SchemaExtension",e.SCALAR_TYPE_EXTENSION="ScalarTypeExtension",e.OBJECT_TYPE_EXTENSION="ObjectTypeExtension",e.INTERFACE_TYPE_EXTENSION="InterfaceTypeExtension",e.UNION_TYPE_EXTENSION="UnionTypeExtension",e.ENUM_TYPE_EXTENSION="EnumTypeExtension",e.INPUT_OBJECT_TYPE_EXTENSION="InputObjectTypeExtension"})(L||(L={}));function qn(e){return e===9||e===32}function Mt(e){return e>=48&&e<=57}function no(e){return e>=97&&e<=122||e>=65&&e<=90}function so(e){return no(e)||e===95}function ku(e){return no(e)||Mt(e)||e===95}function wu(e){var t;let i=Number.MAX_SAFE_INTEGER,n=null,s=-1;for(let l=0;l<e.length;++l){var r;const o=e[l],a=xu(o);a!==o.length&&(n=(r=n)!==null&&r!==void 0?r:l,s=l,l!==0&&a<i&&(i=a))}return e.map((l,o)=>o===0?l:l.slice(i)).slice((t=n)!==null&&t!==void 0?t:0,s+1)}function xu(e){let t=0;for(;t<e.length&&qn(e.charCodeAt(t));)++t;return t}function Tu(e,t){const i=e.replace(/"""/g,'\\"""'),n=i.split(/\r\n|[\n\r]/g),s=n.length===1,r=n.length>1&&n.slice(1).every(m=>m.length===0||qn(m.charCodeAt(0))),l=i.endsWith('\\"""'),o=e.endsWith('"')&&!l,a=e.endsWith("\\"),c=o||a,u=!s||e.length>70||c||r||l;let h="";const p=s&&qn(e.charCodeAt(0));return(u&&!p||r)&&(h+=`
|
|
8
8
|
`),h+=i,(u||c)&&(h+=`
|
|
9
|
-
`),'"""'+h+'"""'}var Z;(function(e){e.SOF="<SOF>",e.EOF="<EOF>",e.BANG="!",e.DOLLAR="$",e.AMP="&",e.PAREN_L="(",e.PAREN_R=")",e.SPREAD="...",e.COLON=":",e.EQUALS="=",e.AT="@",e.BRACKET_L="[",e.BRACKET_R="]",e.BRACE_L="{",e.PIPE="|",e.BRACE_R="}",e.NAME="Name",e.INT="Int",e.FLOAT="Float",e.STRING="String",e.BLOCK_STRING="BlockString",e.COMMENT="Comment"})(Z||(Z={}));let
|
|
10
|
-
`,size:2};case 114:return{value:"\r",size:2};case 116:return{value:" ",size:2}}throw ce(e.source,t,`Invalid character escape sequence: "${i.slice(t,t+2)}".`)}function
|
|
11
|
-
`));return e.line+=a.length-1,e.lineStart=s,u}if(c===92&&i.charCodeAt(r+1)===34&&i.charCodeAt(r+2)===34&&i.charCodeAt(r+3)===34){o+=i.slice(l,r),l=r+1,r+=4;continue}if(c===10||c===13){o+=i.slice(l,r),a.push(o),c===13&&i.charCodeAt(r+1)===10?r+=2:++r,o="",l=r,s=r;continue}if(ft(c))++r;else if(
|
|
9
|
+
`),'"""'+h+'"""'}var Z;(function(e){e.SOF="<SOF>",e.EOF="<EOF>",e.BANG="!",e.DOLLAR="$",e.AMP="&",e.PAREN_L="(",e.PAREN_R=")",e.SPREAD="...",e.COLON=":",e.EQUALS="=",e.AT="@",e.BRACKET_L="[",e.BRACKET_R="]",e.BRACE_L="{",e.PIPE="|",e.BRACE_R="}",e.NAME="Name",e.INT="Int",e.FLOAT="Float",e.STRING="String",e.BLOCK_STRING="BlockString",e.COMMENT="Comment"})(Z||(Z={}));let Lu=class{constructor(t){const i=new eo(Z.SOF,0,0,0,0);this.source=t,this.lastToken=i,this.token=i,this.line=1,this.lineStart=0}get[Symbol.toStringTag](){return"Lexer"}advance(){return this.lastToken=this.token,this.token=this.lookahead()}lookahead(){let t=this.token;if(t.kind!==Z.EOF)do if(t.next)t=t.next;else{const i=Ju(this,t.end);t.next=i,i.prev=t,t=i}while(t.kind===Z.COMMENT);return t}};function Nu(e){return e===Z.BANG||e===Z.DOLLAR||e===Z.AMP||e===Z.PAREN_L||e===Z.PAREN_R||e===Z.SPREAD||e===Z.COLON||e===Z.EQUALS||e===Z.AT||e===Z.BRACKET_L||e===Z.BRACKET_R||e===Z.BRACE_L||e===Z.PIPE||e===Z.BRACE_R}function ft(e){return e>=0&&e<=55295||e>=57344&&e<=1114111}function Ri(e,t){return ro(e.charCodeAt(t))&&oo(e.charCodeAt(t+1))}function ro(e){return e>=55296&&e<=56319}function oo(e){return e>=56320&&e<=57343}function it(e,t){const i=e.source.body.codePointAt(t);if(i===void 0)return Z.EOF;if(i>=32&&i<=126){const n=String.fromCodePoint(i);return n==='"'?`'"'`:`"${n}"`}return"U+"+i.toString(16).toUpperCase().padStart(4,"0")}function le(e,t,i,n,s){const r=e.line,l=1+i-e.lineStart;return new eo(t,i,n,r,l,s)}function Ju(e,t){const i=e.source.body,n=i.length;let s=t;for(;s<n;){const r=i.charCodeAt(s);switch(r){case 65279:case 9:case 32:case 44:++s;continue;case 10:++s,++e.line,e.lineStart=s;continue;case 13:i.charCodeAt(s+1)===10?s+=2:++s,++e.line,e.lineStart=s;continue;case 35:return Yu(e,s);case 33:return le(e,Z.BANG,s,s+1);case 36:return le(e,Z.DOLLAR,s,s+1);case 38:return le(e,Z.AMP,s,s+1);case 40:return le(e,Z.PAREN_L,s,s+1);case 41:return le(e,Z.PAREN_R,s,s+1);case 46:if(i.charCodeAt(s+1)===46&&i.charCodeAt(s+2)===46)return le(e,Z.SPREAD,s,s+3);break;case 58:return le(e,Z.COLON,s,s+1);case 61:return le(e,Z.EQUALS,s,s+1);case 64:return le(e,Z.AT,s,s+1);case 91:return le(e,Z.BRACKET_L,s,s+1);case 93:return le(e,Z.BRACKET_R,s,s+1);case 123:return le(e,Z.BRACE_L,s,s+1);case 124:return le(e,Z.PIPE,s,s+1);case 125:return le(e,Z.BRACE_R,s,s+1);case 34:return i.charCodeAt(s+1)===34&&i.charCodeAt(s+2)===34?Eu(e,s):Uu(e,s)}if(Mt(r)||r===45)return Fu(e,s,r);if(so(r))return zu(e,s);throw ce(e.source,s,r===39?`Unexpected single quote character ('), did you mean to use a double quote (")?`:ft(r)||Ri(i,s)?`Unexpected character: ${it(e,s)}.`:`Invalid character: ${it(e,s)}.`)}return le(e,Z.EOF,n,n)}function Yu(e,t){const i=e.source.body,n=i.length;let s=t+1;for(;s<n;){const r=i.charCodeAt(s);if(r===10||r===13)break;if(ft(r))++s;else if(Ri(i,s))s+=2;else break}return le(e,Z.COMMENT,t,s,i.slice(t+1,s))}function Fu(e,t,i){const n=e.source.body;let s=t,r=i,l=!1;if(r===45&&(r=n.charCodeAt(++s)),r===48){if(r=n.charCodeAt(++s),Mt(r))throw ce(e.source,s,`Invalid number, unexpected digit after 0: ${it(e,s)}.`)}else s=es(e,s,r),r=n.charCodeAt(s);if(r===46&&(l=!0,r=n.charCodeAt(++s),s=es(e,s,r),r=n.charCodeAt(s)),(r===69||r===101)&&(l=!0,r=n.charCodeAt(++s),(r===43||r===45)&&(r=n.charCodeAt(++s)),s=es(e,s,r),r=n.charCodeAt(s)),r===46||so(r))throw ce(e.source,s,`Invalid number, expected digit but got: ${it(e,s)}.`);return le(e,l?Z.FLOAT:Z.INT,t,s,n.slice(t,s))}function es(e,t,i){if(!Mt(i))throw ce(e.source,t,`Invalid number, expected digit but got: ${it(e,t)}.`);const n=e.source.body;let s=t+1;for(;Mt(n.charCodeAt(s));)++s;return s}function Uu(e,t){const i=e.source.body,n=i.length;let s=t+1,r=s,l="";for(;s<n;){const o=i.charCodeAt(s);if(o===34)return l+=i.slice(r,s),le(e,Z.STRING,t,s+1,l);if(o===92){l+=i.slice(r,s);const a=i.charCodeAt(s+1)===117?i.charCodeAt(s+2)===123?Ku(e,s):Mu(e,s):Ou(e,s);l+=a.value,s+=a.size,r=s;continue}if(o===10||o===13)break;if(ft(o))++s;else if(Ri(i,s))s+=2;else throw ce(e.source,s,`Invalid character within String: ${it(e,s)}.`)}throw ce(e.source,s,"Unterminated string.")}function Ku(e,t){const i=e.source.body;let n=0,s=3;for(;s<12;){const r=i.charCodeAt(t+s++);if(r===125){if(s<5||!ft(n))break;return{value:String.fromCodePoint(n),size:s}}if(n=n<<4|Ot(r),n<0)break}throw ce(e.source,t,`Invalid Unicode escape sequence: "${i.slice(t,t+s)}".`)}function Mu(e,t){const i=e.source.body,n=lo(i,t+2);if(ft(n))return{value:String.fromCodePoint(n),size:6};if(ro(n)&&i.charCodeAt(t+6)===92&&i.charCodeAt(t+7)===117){const s=lo(i,t+8);if(oo(s))return{value:String.fromCodePoint(n,s),size:12}}throw ce(e.source,t,`Invalid Unicode escape sequence: "${i.slice(t,t+6)}".`)}function lo(e,t){return Ot(e.charCodeAt(t))<<12|Ot(e.charCodeAt(t+1))<<8|Ot(e.charCodeAt(t+2))<<4|Ot(e.charCodeAt(t+3))}function Ot(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function Ou(e,t){const i=e.source.body;switch(i.charCodeAt(t+1)){case 34:return{value:'"',size:2};case 92:return{value:"\\",size:2};case 47:return{value:"/",size:2};case 98:return{value:"\b",size:2};case 102:return{value:"\f",size:2};case 110:return{value:`
|
|
10
|
+
`,size:2};case 114:return{value:"\r",size:2};case 116:return{value:" ",size:2}}throw ce(e.source,t,`Invalid character escape sequence: "${i.slice(t,t+2)}".`)}function Eu(e,t){const i=e.source.body,n=i.length;let s=e.lineStart,r=t+3,l=r,o="";const a=[];for(;r<n;){const c=i.charCodeAt(r);if(c===34&&i.charCodeAt(r+1)===34&&i.charCodeAt(r+2)===34){o+=i.slice(l,r),a.push(o);const u=le(e,Z.BLOCK_STRING,t,r+3,wu(a).join(`
|
|
11
|
+
`));return e.line+=a.length-1,e.lineStart=s,u}if(c===92&&i.charCodeAt(r+1)===34&&i.charCodeAt(r+2)===34&&i.charCodeAt(r+3)===34){o+=i.slice(l,r),l=r+1,r+=4;continue}if(c===10||c===13){o+=i.slice(l,r),a.push(o),c===13&&i.charCodeAt(r+1)===10?r+=2:++r,o="",l=r,s=r;continue}if(ft(c))++r;else if(Ri(i,r))r+=2;else throw ce(e.source,r,`Invalid character within String: ${it(e,r)}.`)}throw ce(e.source,r,"Unterminated string.")}function zu(e,t){const i=e.source.body,n=i.length;let s=t+1;for(;s<n;){const r=i.charCodeAt(s);if(ku(r))++s;else break}return le(e,Z.NAME,t,s,i.slice(t,s))}const Hu=10,ao=2;function ts(e){return Wi(e,[])}function Wi(e,t){switch(typeof e){case"string":return JSON.stringify(e);case"function":return e.name?`[function ${e.name}]`:"[function]";case"object":return Pu(e,t);default:return String(e)}}function Pu(e,t){if(e===null)return"null";if(t.includes(e))return"[Circular]";const i=[...t,e];if(Du(e)){const n=e.toJSON();if(n!==e)return typeof n=="string"?n:Wi(n,i)}else if(Array.isArray(e))return Qu(e,i);return Bu(e,i)}function Du(e){return typeof e.toJSON=="function"}function Bu(e,t){const i=Object.entries(e);return i.length===0?"{}":t.length>ao?"["+ju(e)+"]":"{ "+i.map(([n,s])=>n+": "+Wi(s,t)).join(", ")+" }"}function Qu(e,t){if(e.length===0)return"[]";if(t.length>ao)return"[Array]";const i=Math.min(Hu,e.length),n=e.length-i,s=[];for(let r=0;r<i;++r)s.push(Wi(e[r],t));return n===1?s.push("... 1 more item"):n>1&&s.push(`... ${n} more items`),"["+s.join(", ")+"]"}function ju(e){const t=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if(t==="Object"&&typeof e.constructor=="function"){const i=e.constructor.name;if(typeof i=="string"&&i!=="")return i}return t}const Au=globalThis.process&&process.env.NODE_ENV==="production",_u=Au?function(e,t){return e instanceof t}:function(e,t){if(e instanceof t)return!0;if(typeof e=="object"&&e!==null){var i;const n=t.prototype[Symbol.toStringTag],s=Symbol.toStringTag in e?e[Symbol.toStringTag]:(i=e.constructor)===null||i===void 0?void 0:i.name;if(n===s){const r=ts(e);throw new Error(`Cannot use ${n} "${r}" from another module or realm.
|
|
12
12
|
|
|
13
13
|
Ensure that there is only one instance of "graphql" in the node_modules
|
|
14
14
|
directory. If different versions of "graphql" are the dependencies of other
|
|
@@ -19,17 +19,17 @@ https://yarnpkg.com/en/docs/selective-version-resolutions
|
|
|
19
19
|
Duplicate "graphql" modules cannot be used at the same time since different
|
|
20
20
|
versions may have different capabilities and behavior. The data from one
|
|
21
21
|
version used in the function from another could produce confusing and
|
|
22
|
-
spurious results.`)}}return!1};let co=class{constructor(t,i="GraphQL request",n={line:1,column:1}){typeof t=="string"||Ri(!1,`Body must be a string. Received: ${es(t)}.`),this.body=t,this.name=i,this.locationOffset=n,this.locationOffset.line>0||Ri(!1,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||Ri(!1,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}};function _u(e){return Au(e,co)}function uo(e,t){const i=new $u(e,t),n=i.parseDocument();return Object.defineProperty(n,"tokenCount",{enumerable:!1,value:i.tokenCount}),n}let $u=class{constructor(t,i={}){const n=_u(t)?t:new co(t);this._lexer=new Tu(n),this._options=i,this._tokenCounter=0}get tokenCount(){return this._tokenCounter}parseName(){const t=this.expectToken(Z.NAME);return this.node(t,{kind:L.NAME,value:t.value})}parseDocument(){return this.node(this._lexer.token,{kind:L.DOCUMENT,definitions:this.many(Z.SOF,this.parseDefinition,Z.EOF)})}parseDefinition(){if(this.peek(Z.BRACE_L))return this.parseOperationDefinition();const t=this.peekDescription(),i=t?this._lexer.lookahead():this._lexer.token;if(i.kind===Z.NAME){switch(i.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}if(t)throw ce(this._lexer.source,this._lexer.token.start,"Unexpected description, descriptions are supported only on type definitions.");switch(i.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"extend":return this.parseTypeSystemExtension()}}throw this.unexpected(i)}parseOperationDefinition(){const t=this._lexer.token;if(this.peek(Z.BRACE_L))return this.node(t,{kind:L.OPERATION_DEFINITION,operation:mt.QUERY,name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet()});const i=this.parseOperationType();let n;return this.peek(Z.NAME)&&(n=this.parseName()),this.node(t,{kind:L.OPERATION_DEFINITION,operation:i,name:n,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseOperationType(){const t=this.expectToken(Z.NAME);switch(t.value){case"query":return mt.QUERY;case"mutation":return mt.MUTATION;case"subscription":return mt.SUBSCRIPTION}throw this.unexpected(t)}parseVariableDefinitions(){return this.optionalMany(Z.PAREN_L,this.parseVariableDefinition,Z.PAREN_R)}parseVariableDefinition(){return this.node(this._lexer.token,{kind:L.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(Z.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(Z.EQUALS)?this.parseConstValueLiteral():void 0,directives:this.parseConstDirectives()})}parseVariable(){const t=this._lexer.token;return this.expectToken(Z.DOLLAR),this.node(t,{kind:L.VARIABLE,name:this.parseName()})}parseSelectionSet(){return this.node(this._lexer.token,{kind:L.SELECTION_SET,selections:this.many(Z.BRACE_L,this.parseSelection,Z.BRACE_R)})}parseSelection(){return this.peek(Z.SPREAD)?this.parseFragment():this.parseField()}parseField(){const t=this._lexer.token,i=this.parseName();let n,s;return this.expectOptionalToken(Z.COLON)?(n=i,s=this.parseName()):s=i,this.node(t,{kind:L.FIELD,alias:n,name:s,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(Z.BRACE_L)?this.parseSelectionSet():void 0})}parseArguments(t){const i=t?this.parseConstArgument:this.parseArgument;return this.optionalMany(Z.PAREN_L,i,Z.PAREN_R)}parseArgument(t=!1){const i=this._lexer.token,n=this.parseName();return this.expectToken(Z.COLON),this.node(i,{kind:L.ARGUMENT,name:n,value:this.parseValueLiteral(t)})}parseConstArgument(){return this.parseArgument(!0)}parseFragment(){const t=this._lexer.token;this.expectToken(Z.SPREAD);const i=this.expectOptionalKeyword("on");return!i&&this.peek(Z.NAME)?this.node(t,{kind:L.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1)}):this.node(t,{kind:L.INLINE_FRAGMENT,typeCondition:i?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentDefinition(){const t=this._lexer.token;return this.expectKeyword("fragment"),this._options.allowLegacyFragmentVariables===!0?this.node(t,{kind:L.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()}):this.node(t,{kind:L.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentName(){if(this._lexer.token.value==="on")throw this.unexpected();return this.parseName()}parseValueLiteral(t){const i=this._lexer.token;switch(i.kind){case Z.BRACKET_L:return this.parseList(t);case Z.BRACE_L:return this.parseObject(t);case Z.INT:return this.advanceLexer(),this.node(i,{kind:L.INT,value:i.value});case Z.FLOAT:return this.advanceLexer(),this.node(i,{kind:L.FLOAT,value:i.value});case Z.STRING:case Z.BLOCK_STRING:return this.parseStringLiteral();case Z.NAME:switch(this.advanceLexer(),i.value){case"true":return this.node(i,{kind:L.BOOLEAN,value:!0});case"false":return this.node(i,{kind:L.BOOLEAN,value:!1});case"null":return this.node(i,{kind:L.NULL});default:return this.node(i,{kind:L.ENUM,value:i.value})}case Z.DOLLAR:if(t)if(this.expectToken(Z.DOLLAR),this._lexer.token.kind===Z.NAME){const n=this._lexer.token.value;throw ce(this._lexer.source,i.start,`Unexpected variable "$${n}" in constant value.`)}else throw this.unexpected(i);return this.parseVariable();default:throw this.unexpected()}}parseConstValueLiteral(){return this.parseValueLiteral(!0)}parseStringLiteral(){const t=this._lexer.token;return this.advanceLexer(),this.node(t,{kind:L.STRING,value:t.value,block:t.kind===Z.BLOCK_STRING})}parseList(t){const i=()=>this.parseValueLiteral(t);return this.node(this._lexer.token,{kind:L.LIST,values:this.any(Z.BRACKET_L,i,Z.BRACKET_R)})}parseObject(t){const i=()=>this.parseObjectField(t);return this.node(this._lexer.token,{kind:L.OBJECT,fields:this.any(Z.BRACE_L,i,Z.BRACE_R)})}parseObjectField(t){const i=this._lexer.token,n=this.parseName();return this.expectToken(Z.COLON),this.node(i,{kind:L.OBJECT_FIELD,name:n,value:this.parseValueLiteral(t)})}parseDirectives(t){const i=[];for(;this.peek(Z.AT);)i.push(this.parseDirective(t));return i}parseConstDirectives(){return this.parseDirectives(!0)}parseDirective(t){const i=this._lexer.token;return this.expectToken(Z.AT),this.node(i,{kind:L.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(t)})}parseTypeReference(){const t=this._lexer.token;let i;if(this.expectOptionalToken(Z.BRACKET_L)){const n=this.parseTypeReference();this.expectToken(Z.BRACKET_R),i=this.node(t,{kind:L.LIST_TYPE,type:n})}else i=this.parseNamedType();return this.expectOptionalToken(Z.BANG)?this.node(t,{kind:L.NON_NULL_TYPE,type:i}):i}parseNamedType(){return this.node(this._lexer.token,{kind:L.NAMED_TYPE,name:this.parseName()})}peekDescription(){return this.peek(Z.STRING)||this.peek(Z.BLOCK_STRING)}parseDescription(){if(this.peekDescription())return this.parseStringLiteral()}parseSchemaDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("schema");const n=this.parseConstDirectives(),s=this.many(Z.BRACE_L,this.parseOperationTypeDefinition,Z.BRACE_R);return this.node(t,{kind:L.SCHEMA_DEFINITION,description:i,directives:n,operationTypes:s})}parseOperationTypeDefinition(){const t=this._lexer.token,i=this.parseOperationType();this.expectToken(Z.COLON);const n=this.parseNamedType();return this.node(t,{kind:L.OPERATION_TYPE_DEFINITION,operation:i,type:n})}parseScalarTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("scalar");const n=this.parseName(),s=this.parseConstDirectives();return this.node(t,{kind:L.SCALAR_TYPE_DEFINITION,description:i,name:n,directives:s})}parseObjectTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("type");const n=this.parseName(),s=this.parseImplementsInterfaces(),r=this.parseConstDirectives(),l=this.parseFieldsDefinition();return this.node(t,{kind:L.OBJECT_TYPE_DEFINITION,description:i,name:n,interfaces:s,directives:r,fields:l})}parseImplementsInterfaces(){return this.expectOptionalKeyword("implements")?this.delimitedMany(Z.AMP,this.parseNamedType):[]}parseFieldsDefinition(){return this.optionalMany(Z.BRACE_L,this.parseFieldDefinition,Z.BRACE_R)}parseFieldDefinition(){const t=this._lexer.token,i=this.parseDescription(),n=this.parseName(),s=this.parseArgumentDefs();this.expectToken(Z.COLON);const r=this.parseTypeReference(),l=this.parseConstDirectives();return this.node(t,{kind:L.FIELD_DEFINITION,description:i,name:n,arguments:s,type:r,directives:l})}parseArgumentDefs(){return this.optionalMany(Z.PAREN_L,this.parseInputValueDef,Z.PAREN_R)}parseInputValueDef(){const t=this._lexer.token,i=this.parseDescription(),n=this.parseName();this.expectToken(Z.COLON);const s=this.parseTypeReference();let r;this.expectOptionalToken(Z.EQUALS)&&(r=this.parseConstValueLiteral());const l=this.parseConstDirectives();return this.node(t,{kind:L.INPUT_VALUE_DEFINITION,description:i,name:n,type:s,defaultValue:r,directives:l})}parseInterfaceTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("interface");const n=this.parseName(),s=this.parseImplementsInterfaces(),r=this.parseConstDirectives(),l=this.parseFieldsDefinition();return this.node(t,{kind:L.INTERFACE_TYPE_DEFINITION,description:i,name:n,interfaces:s,directives:r,fields:l})}parseUnionTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("union");const n=this.parseName(),s=this.parseConstDirectives(),r=this.parseUnionMemberTypes();return this.node(t,{kind:L.UNION_TYPE_DEFINITION,description:i,name:n,directives:s,types:r})}parseUnionMemberTypes(){return this.expectOptionalToken(Z.EQUALS)?this.delimitedMany(Z.PIPE,this.parseNamedType):[]}parseEnumTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("enum");const n=this.parseName(),s=this.parseConstDirectives(),r=this.parseEnumValuesDefinition();return this.node(t,{kind:L.ENUM_TYPE_DEFINITION,description:i,name:n,directives:s,values:r})}parseEnumValuesDefinition(){return this.optionalMany(Z.BRACE_L,this.parseEnumValueDefinition,Z.BRACE_R)}parseEnumValueDefinition(){const t=this._lexer.token,i=this.parseDescription(),n=this.parseEnumValueName(),s=this.parseConstDirectives();return this.node(t,{kind:L.ENUM_VALUE_DEFINITION,description:i,name:n,directives:s})}parseEnumValueName(){if(this._lexer.token.value==="true"||this._lexer.token.value==="false"||this._lexer.token.value==="null")throw ce(this._lexer.source,this._lexer.token.start,`${ki(this._lexer.token)} is reserved and cannot be used for an enum value.`);return this.parseName()}parseInputObjectTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("input");const n=this.parseName(),s=this.parseConstDirectives(),r=this.parseInputFieldsDefinition();return this.node(t,{kind:L.INPUT_OBJECT_TYPE_DEFINITION,description:i,name:n,directives:s,fields:r})}parseInputFieldsDefinition(){return this.optionalMany(Z.BRACE_L,this.parseInputValueDef,Z.BRACE_R)}parseTypeSystemExtension(){const t=this._lexer.lookahead();if(t.kind===Z.NAME)switch(t.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(t)}parseSchemaExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");const i=this.parseConstDirectives(),n=this.optionalMany(Z.BRACE_L,this.parseOperationTypeDefinition,Z.BRACE_R);if(i.length===0&&n.length===0)throw this.unexpected();return this.node(t,{kind:L.SCHEMA_EXTENSION,directives:i,operationTypes:n})}parseScalarTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");const i=this.parseName(),n=this.parseConstDirectives();if(n.length===0)throw this.unexpected();return this.node(t,{kind:L.SCALAR_TYPE_EXTENSION,name:i,directives:n})}parseObjectTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");const i=this.parseName(),n=this.parseImplementsInterfaces(),s=this.parseConstDirectives(),r=this.parseFieldsDefinition();if(n.length===0&&s.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:L.OBJECT_TYPE_EXTENSION,name:i,interfaces:n,directives:s,fields:r})}parseInterfaceTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");const i=this.parseName(),n=this.parseImplementsInterfaces(),s=this.parseConstDirectives(),r=this.parseFieldsDefinition();if(n.length===0&&s.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:L.INTERFACE_TYPE_EXTENSION,name:i,interfaces:n,directives:s,fields:r})}parseUnionTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");const i=this.parseName(),n=this.parseConstDirectives(),s=this.parseUnionMemberTypes();if(n.length===0&&s.length===0)throw this.unexpected();return this.node(t,{kind:L.UNION_TYPE_EXTENSION,name:i,directives:n,types:s})}parseEnumTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");const i=this.parseName(),n=this.parseConstDirectives(),s=this.parseEnumValuesDefinition();if(n.length===0&&s.length===0)throw this.unexpected();return this.node(t,{kind:L.ENUM_TYPE_EXTENSION,name:i,directives:n,values:s})}parseInputObjectTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");const i=this.parseName(),n=this.parseConstDirectives(),s=this.parseInputFieldsDefinition();if(n.length===0&&s.length===0)throw this.unexpected();return this.node(t,{kind:L.INPUT_OBJECT_TYPE_EXTENSION,name:i,directives:n,fields:s})}parseDirectiveDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("directive"),this.expectToken(Z.AT);const n=this.parseName(),s=this.parseArgumentDefs(),r=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");const l=this.parseDirectiveLocations();return this.node(t,{kind:L.DIRECTIVE_DEFINITION,description:i,name:n,arguments:s,repeatable:r,locations:l})}parseDirectiveLocations(){return this.delimitedMany(Z.PIPE,this.parseDirectiveLocation)}parseDirectiveLocation(){const t=this._lexer.token,i=this.parseName();if(Object.prototype.hasOwnProperty.call(_n,i.value))return i;throw this.unexpected(t)}node(t,i){return this._options.noLocation!==!0&&(i.loc=new Ru(t,this._lexer.lastToken,this._lexer.source)),i}peek(t){return this._lexer.token.kind===t}expectToken(t){const i=this._lexer.token;if(i.kind===t)return this.advanceLexer(),i;throw ce(this._lexer.source,i.start,`Expected ${ho(t)}, found ${ki(i)}.`)}expectOptionalToken(t){return this._lexer.token.kind===t?(this.advanceLexer(),!0):!1}expectKeyword(t){const i=this._lexer.token;if(i.kind===Z.NAME&&i.value===t)this.advanceLexer();else throw ce(this._lexer.source,i.start,`Expected "${t}", found ${ki(i)}.`)}expectOptionalKeyword(t){const i=this._lexer.token;return i.kind===Z.NAME&&i.value===t?(this.advanceLexer(),!0):!1}unexpected(t){const i=t??this._lexer.token;return ce(this._lexer.source,i.start,`Unexpected ${ki(i)}.`)}any(t,i,n){this.expectToken(t);const s=[];for(;!this.expectOptionalToken(n);)s.push(i.call(this));return s}optionalMany(t,i,n){if(this.expectOptionalToken(t)){const s=[];do s.push(i.call(this));while(!this.expectOptionalToken(n));return s}return[]}many(t,i,n){this.expectToken(t);const s=[];do s.push(i.call(this));while(!this.expectOptionalToken(n));return s}delimitedMany(t,i){this.expectOptionalToken(t);const n=[];do n.push(i.call(this));while(this.expectOptionalToken(t));return n}advanceLexer(){const{maxTokens:t}=this._options,i=this._lexer.advance();if(i.kind!==Z.EOF&&(++this._tokenCounter,t!==void 0&&this._tokenCounter>t))throw ce(this._lexer.source,i.start,`Document contains more that ${t} tokens. Parsing aborted.`)}};function ki(e){const t=e.value;return ho(e.kind)+(t!=null?` "${t}"`:"")}function ho(e){return Lu(e)?`"${e}"`:e}function qu(e){return`"${e.replace(ed,td)}"`}const ed=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function td(e){return id[e.charCodeAt(0)]}const id=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\u007F","\\u0080","\\u0081","\\u0082","\\u0083","\\u0084","\\u0085","\\u0086","\\u0087","\\u0088","\\u0089","\\u008A","\\u008B","\\u008C","\\u008D","\\u008E","\\u008F","\\u0090","\\u0091","\\u0092","\\u0093","\\u0094","\\u0095","\\u0096","\\u0097","\\u0098","\\u0099","\\u009A","\\u009B","\\u009C","\\u009D","\\u009E","\\u009F"],nd=Object.freeze({});function sd(e,t,i=to){const n=new Map;for(const I of Object.values(L))n.set(I,rd(t,I));let s,r=Array.isArray(e),l=[e],o=-1,a=[],c=e,u,h;const p=[],m=[];do{o++;const I=o===l.length,V=I&&a.length!==0;if(I){if(u=m.length===0?void 0:p[p.length-1],c=h,h=m.pop(),V)if(r){c=c.slice();let G=0;for(const[X,v]of a){const k=X-G;v===null?(c.splice(k,1),G++):c[k]=v}}else{c=B({},c);for(const[G,X]of a)c[G]=X}o=s.index,l=s.keys,a=s.edits,r=s.inArray,s=s.prev}else if(h){if(u=r?o:l[o],c=h[u],c==null)continue;p.push(u)}let R;if(!Array.isArray(c)){var f,d;io(c)||Ri(!1,`Invalid AST Node: ${es(c)}.`);const G=I?(f=n.get(c.kind))===null||f===void 0?void 0:f.leave:(d=n.get(c.kind))===null||d===void 0?void 0:d.enter;if(R=G?.call(t,c,u,h,p,m),R===nd)break;if(R===!1){if(!I){p.pop();continue}}else if(R!==void 0&&(a.push([u,R]),!I))if(io(R))c=R;else{p.pop();continue}}if(R===void 0&&V&&a.push([u,c]),I)p.pop();else{var S;s={inArray:r,index:o,keys:l,edits:a,prev:s},r=Array.isArray(c),l=r?c:(S=i[c.kind])!==null&&S!==void 0?S:[],o=-1,a=[],h&&m.push(h),h=c}}while(s!==void 0);return a.length!==0?a[a.length-1][1]:e}function rd(e,t){const i=e[t];return typeof i=="object"?i:typeof i=="function"?{enter:i,leave:void 0}:{enter:e.enter,leave:e.leave}}function po(e){return sd(e,ld)}const od=80,ld={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>x(e.definitions,`
|
|
22
|
+
spurious results.`)}}return!1};let co=class{constructor(t,i="GraphQL request",n={line:1,column:1}){typeof t=="string"||Ci(!1,`Body must be a string. Received: ${ts(t)}.`),this.body=t,this.name=i,this.locationOffset=n,this.locationOffset.line>0||Ci(!1,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||Ci(!1,"column in locationOffset is 1-indexed and must be positive.")}get[Symbol.toStringTag](){return"Source"}};function $u(e){return _u(e,co)}function uo(e,t){const i=new qu(e,t),n=i.parseDocument();return Object.defineProperty(n,"tokenCount",{enumerable:!1,value:i.tokenCount}),n}let qu=class{constructor(t,i={}){const n=$u(t)?t:new co(t);this._lexer=new Lu(n),this._options=i,this._tokenCounter=0}get tokenCount(){return this._tokenCounter}parseName(){const t=this.expectToken(Z.NAME);return this.node(t,{kind:L.NAME,value:t.value})}parseDocument(){return this.node(this._lexer.token,{kind:L.DOCUMENT,definitions:this.many(Z.SOF,this.parseDefinition,Z.EOF)})}parseDefinition(){if(this.peek(Z.BRACE_L))return this.parseOperationDefinition();const t=this.peekDescription(),i=t?this._lexer.lookahead():this._lexer.token;if(i.kind===Z.NAME){switch(i.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}if(t)throw ce(this._lexer.source,this._lexer.token.start,"Unexpected description, descriptions are supported only on type definitions.");switch(i.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"extend":return this.parseTypeSystemExtension()}}throw this.unexpected(i)}parseOperationDefinition(){const t=this._lexer.token;if(this.peek(Z.BRACE_L))return this.node(t,{kind:L.OPERATION_DEFINITION,operation:mt.QUERY,name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet()});const i=this.parseOperationType();let n;return this.peek(Z.NAME)&&(n=this.parseName()),this.node(t,{kind:L.OPERATION_DEFINITION,operation:i,name:n,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseOperationType(){const t=this.expectToken(Z.NAME);switch(t.value){case"query":return mt.QUERY;case"mutation":return mt.MUTATION;case"subscription":return mt.SUBSCRIPTION}throw this.unexpected(t)}parseVariableDefinitions(){return this.optionalMany(Z.PAREN_L,this.parseVariableDefinition,Z.PAREN_R)}parseVariableDefinition(){return this.node(this._lexer.token,{kind:L.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(Z.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(Z.EQUALS)?this.parseConstValueLiteral():void 0,directives:this.parseConstDirectives()})}parseVariable(){const t=this._lexer.token;return this.expectToken(Z.DOLLAR),this.node(t,{kind:L.VARIABLE,name:this.parseName()})}parseSelectionSet(){return this.node(this._lexer.token,{kind:L.SELECTION_SET,selections:this.many(Z.BRACE_L,this.parseSelection,Z.BRACE_R)})}parseSelection(){return this.peek(Z.SPREAD)?this.parseFragment():this.parseField()}parseField(){const t=this._lexer.token,i=this.parseName();let n,s;return this.expectOptionalToken(Z.COLON)?(n=i,s=this.parseName()):s=i,this.node(t,{kind:L.FIELD,alias:n,name:s,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(Z.BRACE_L)?this.parseSelectionSet():void 0})}parseArguments(t){const i=t?this.parseConstArgument:this.parseArgument;return this.optionalMany(Z.PAREN_L,i,Z.PAREN_R)}parseArgument(t=!1){const i=this._lexer.token,n=this.parseName();return this.expectToken(Z.COLON),this.node(i,{kind:L.ARGUMENT,name:n,value:this.parseValueLiteral(t)})}parseConstArgument(){return this.parseArgument(!0)}parseFragment(){const t=this._lexer.token;this.expectToken(Z.SPREAD);const i=this.expectOptionalKeyword("on");return!i&&this.peek(Z.NAME)?this.node(t,{kind:L.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1)}):this.node(t,{kind:L.INLINE_FRAGMENT,typeCondition:i?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentDefinition(){const t=this._lexer.token;return this.expectKeyword("fragment"),this._options.allowLegacyFragmentVariables===!0?this.node(t,{kind:L.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()}):this.node(t,{kind:L.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentName(){if(this._lexer.token.value==="on")throw this.unexpected();return this.parseName()}parseValueLiteral(t){const i=this._lexer.token;switch(i.kind){case Z.BRACKET_L:return this.parseList(t);case Z.BRACE_L:return this.parseObject(t);case Z.INT:return this.advanceLexer(),this.node(i,{kind:L.INT,value:i.value});case Z.FLOAT:return this.advanceLexer(),this.node(i,{kind:L.FLOAT,value:i.value});case Z.STRING:case Z.BLOCK_STRING:return this.parseStringLiteral();case Z.NAME:switch(this.advanceLexer(),i.value){case"true":return this.node(i,{kind:L.BOOLEAN,value:!0});case"false":return this.node(i,{kind:L.BOOLEAN,value:!1});case"null":return this.node(i,{kind:L.NULL});default:return this.node(i,{kind:L.ENUM,value:i.value})}case Z.DOLLAR:if(t)if(this.expectToken(Z.DOLLAR),this._lexer.token.kind===Z.NAME){const n=this._lexer.token.value;throw ce(this._lexer.source,i.start,`Unexpected variable "$${n}" in constant value.`)}else throw this.unexpected(i);return this.parseVariable();default:throw this.unexpected()}}parseConstValueLiteral(){return this.parseValueLiteral(!0)}parseStringLiteral(){const t=this._lexer.token;return this.advanceLexer(),this.node(t,{kind:L.STRING,value:t.value,block:t.kind===Z.BLOCK_STRING})}parseList(t){const i=()=>this.parseValueLiteral(t);return this.node(this._lexer.token,{kind:L.LIST,values:this.any(Z.BRACKET_L,i,Z.BRACKET_R)})}parseObject(t){const i=()=>this.parseObjectField(t);return this.node(this._lexer.token,{kind:L.OBJECT,fields:this.any(Z.BRACE_L,i,Z.BRACE_R)})}parseObjectField(t){const i=this._lexer.token,n=this.parseName();return this.expectToken(Z.COLON),this.node(i,{kind:L.OBJECT_FIELD,name:n,value:this.parseValueLiteral(t)})}parseDirectives(t){const i=[];for(;this.peek(Z.AT);)i.push(this.parseDirective(t));return i}parseConstDirectives(){return this.parseDirectives(!0)}parseDirective(t){const i=this._lexer.token;return this.expectToken(Z.AT),this.node(i,{kind:L.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(t)})}parseTypeReference(){const t=this._lexer.token;let i;if(this.expectOptionalToken(Z.BRACKET_L)){const n=this.parseTypeReference();this.expectToken(Z.BRACKET_R),i=this.node(t,{kind:L.LIST_TYPE,type:n})}else i=this.parseNamedType();return this.expectOptionalToken(Z.BANG)?this.node(t,{kind:L.NON_NULL_TYPE,type:i}):i}parseNamedType(){return this.node(this._lexer.token,{kind:L.NAMED_TYPE,name:this.parseName()})}peekDescription(){return this.peek(Z.STRING)||this.peek(Z.BLOCK_STRING)}parseDescription(){if(this.peekDescription())return this.parseStringLiteral()}parseSchemaDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("schema");const n=this.parseConstDirectives(),s=this.many(Z.BRACE_L,this.parseOperationTypeDefinition,Z.BRACE_R);return this.node(t,{kind:L.SCHEMA_DEFINITION,description:i,directives:n,operationTypes:s})}parseOperationTypeDefinition(){const t=this._lexer.token,i=this.parseOperationType();this.expectToken(Z.COLON);const n=this.parseNamedType();return this.node(t,{kind:L.OPERATION_TYPE_DEFINITION,operation:i,type:n})}parseScalarTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("scalar");const n=this.parseName(),s=this.parseConstDirectives();return this.node(t,{kind:L.SCALAR_TYPE_DEFINITION,description:i,name:n,directives:s})}parseObjectTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("type");const n=this.parseName(),s=this.parseImplementsInterfaces(),r=this.parseConstDirectives(),l=this.parseFieldsDefinition();return this.node(t,{kind:L.OBJECT_TYPE_DEFINITION,description:i,name:n,interfaces:s,directives:r,fields:l})}parseImplementsInterfaces(){return this.expectOptionalKeyword("implements")?this.delimitedMany(Z.AMP,this.parseNamedType):[]}parseFieldsDefinition(){return this.optionalMany(Z.BRACE_L,this.parseFieldDefinition,Z.BRACE_R)}parseFieldDefinition(){const t=this._lexer.token,i=this.parseDescription(),n=this.parseName(),s=this.parseArgumentDefs();this.expectToken(Z.COLON);const r=this.parseTypeReference(),l=this.parseConstDirectives();return this.node(t,{kind:L.FIELD_DEFINITION,description:i,name:n,arguments:s,type:r,directives:l})}parseArgumentDefs(){return this.optionalMany(Z.PAREN_L,this.parseInputValueDef,Z.PAREN_R)}parseInputValueDef(){const t=this._lexer.token,i=this.parseDescription(),n=this.parseName();this.expectToken(Z.COLON);const s=this.parseTypeReference();let r;this.expectOptionalToken(Z.EQUALS)&&(r=this.parseConstValueLiteral());const l=this.parseConstDirectives();return this.node(t,{kind:L.INPUT_VALUE_DEFINITION,description:i,name:n,type:s,defaultValue:r,directives:l})}parseInterfaceTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("interface");const n=this.parseName(),s=this.parseImplementsInterfaces(),r=this.parseConstDirectives(),l=this.parseFieldsDefinition();return this.node(t,{kind:L.INTERFACE_TYPE_DEFINITION,description:i,name:n,interfaces:s,directives:r,fields:l})}parseUnionTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("union");const n=this.parseName(),s=this.parseConstDirectives(),r=this.parseUnionMemberTypes();return this.node(t,{kind:L.UNION_TYPE_DEFINITION,description:i,name:n,directives:s,types:r})}parseUnionMemberTypes(){return this.expectOptionalToken(Z.EQUALS)?this.delimitedMany(Z.PIPE,this.parseNamedType):[]}parseEnumTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("enum");const n=this.parseName(),s=this.parseConstDirectives(),r=this.parseEnumValuesDefinition();return this.node(t,{kind:L.ENUM_TYPE_DEFINITION,description:i,name:n,directives:s,values:r})}parseEnumValuesDefinition(){return this.optionalMany(Z.BRACE_L,this.parseEnumValueDefinition,Z.BRACE_R)}parseEnumValueDefinition(){const t=this._lexer.token,i=this.parseDescription(),n=this.parseEnumValueName(),s=this.parseConstDirectives();return this.node(t,{kind:L.ENUM_VALUE_DEFINITION,description:i,name:n,directives:s})}parseEnumValueName(){if(this._lexer.token.value==="true"||this._lexer.token.value==="false"||this._lexer.token.value==="null")throw ce(this._lexer.source,this._lexer.token.start,`${vi(this._lexer.token)} is reserved and cannot be used for an enum value.`);return this.parseName()}parseInputObjectTypeDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("input");const n=this.parseName(),s=this.parseConstDirectives(),r=this.parseInputFieldsDefinition();return this.node(t,{kind:L.INPUT_OBJECT_TYPE_DEFINITION,description:i,name:n,directives:s,fields:r})}parseInputFieldsDefinition(){return this.optionalMany(Z.BRACE_L,this.parseInputValueDef,Z.BRACE_R)}parseTypeSystemExtension(){const t=this._lexer.lookahead();if(t.kind===Z.NAME)switch(t.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(t)}parseSchemaExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");const i=this.parseConstDirectives(),n=this.optionalMany(Z.BRACE_L,this.parseOperationTypeDefinition,Z.BRACE_R);if(i.length===0&&n.length===0)throw this.unexpected();return this.node(t,{kind:L.SCHEMA_EXTENSION,directives:i,operationTypes:n})}parseScalarTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");const i=this.parseName(),n=this.parseConstDirectives();if(n.length===0)throw this.unexpected();return this.node(t,{kind:L.SCALAR_TYPE_EXTENSION,name:i,directives:n})}parseObjectTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");const i=this.parseName(),n=this.parseImplementsInterfaces(),s=this.parseConstDirectives(),r=this.parseFieldsDefinition();if(n.length===0&&s.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:L.OBJECT_TYPE_EXTENSION,name:i,interfaces:n,directives:s,fields:r})}parseInterfaceTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");const i=this.parseName(),n=this.parseImplementsInterfaces(),s=this.parseConstDirectives(),r=this.parseFieldsDefinition();if(n.length===0&&s.length===0&&r.length===0)throw this.unexpected();return this.node(t,{kind:L.INTERFACE_TYPE_EXTENSION,name:i,interfaces:n,directives:s,fields:r})}parseUnionTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");const i=this.parseName(),n=this.parseConstDirectives(),s=this.parseUnionMemberTypes();if(n.length===0&&s.length===0)throw this.unexpected();return this.node(t,{kind:L.UNION_TYPE_EXTENSION,name:i,directives:n,types:s})}parseEnumTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");const i=this.parseName(),n=this.parseConstDirectives(),s=this.parseEnumValuesDefinition();if(n.length===0&&s.length===0)throw this.unexpected();return this.node(t,{kind:L.ENUM_TYPE_EXTENSION,name:i,directives:n,values:s})}parseInputObjectTypeExtension(){const t=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");const i=this.parseName(),n=this.parseConstDirectives(),s=this.parseInputFieldsDefinition();if(n.length===0&&s.length===0)throw this.unexpected();return this.node(t,{kind:L.INPUT_OBJECT_TYPE_EXTENSION,name:i,directives:n,fields:s})}parseDirectiveDefinition(){const t=this._lexer.token,i=this.parseDescription();this.expectKeyword("directive"),this.expectToken(Z.AT);const n=this.parseName(),s=this.parseArgumentDefs(),r=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");const l=this.parseDirectiveLocations();return this.node(t,{kind:L.DIRECTIVE_DEFINITION,description:i,name:n,arguments:s,repeatable:r,locations:l})}parseDirectiveLocations(){return this.delimitedMany(Z.PIPE,this.parseDirectiveLocation)}parseDirectiveLocation(){const t=this._lexer.token,i=this.parseName();if(Object.prototype.hasOwnProperty.call($n,i.value))return i;throw this.unexpected(t)}node(t,i){return this._options.noLocation!==!0&&(i.loc=new Wu(t,this._lexer.lastToken,this._lexer.source)),i}peek(t){return this._lexer.token.kind===t}expectToken(t){const i=this._lexer.token;if(i.kind===t)return this.advanceLexer(),i;throw ce(this._lexer.source,i.start,`Expected ${ho(t)}, found ${vi(i)}.`)}expectOptionalToken(t){return this._lexer.token.kind===t?(this.advanceLexer(),!0):!1}expectKeyword(t){const i=this._lexer.token;if(i.kind===Z.NAME&&i.value===t)this.advanceLexer();else throw ce(this._lexer.source,i.start,`Expected "${t}", found ${vi(i)}.`)}expectOptionalKeyword(t){const i=this._lexer.token;return i.kind===Z.NAME&&i.value===t?(this.advanceLexer(),!0):!1}unexpected(t){const i=t??this._lexer.token;return ce(this._lexer.source,i.start,`Unexpected ${vi(i)}.`)}any(t,i,n){this.expectToken(t);const s=[];for(;!this.expectOptionalToken(n);)s.push(i.call(this));return s}optionalMany(t,i,n){if(this.expectOptionalToken(t)){const s=[];do s.push(i.call(this));while(!this.expectOptionalToken(n));return s}return[]}many(t,i,n){this.expectToken(t);const s=[];do s.push(i.call(this));while(!this.expectOptionalToken(n));return s}delimitedMany(t,i){this.expectOptionalToken(t);const n=[];do n.push(i.call(this));while(this.expectOptionalToken(t));return n}advanceLexer(){const{maxTokens:t}=this._options,i=this._lexer.advance();if(i.kind!==Z.EOF&&(++this._tokenCounter,t!==void 0&&this._tokenCounter>t))throw ce(this._lexer.source,i.start,`Document contains more that ${t} tokens. Parsing aborted.`)}};function vi(e){const t=e.value;return ho(e.kind)+(t!=null?` "${t}"`:"")}function ho(e){return Nu(e)?`"${e}"`:e}function ed(e){return`"${e.replace(td,id)}"`}const td=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function id(e){return nd[e.charCodeAt(0)]}const nd=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\u007F","\\u0080","\\u0081","\\u0082","\\u0083","\\u0084","\\u0085","\\u0086","\\u0087","\\u0088","\\u0089","\\u008A","\\u008B","\\u008C","\\u008D","\\u008E","\\u008F","\\u0090","\\u0091","\\u0092","\\u0093","\\u0094","\\u0095","\\u0096","\\u0097","\\u0098","\\u0099","\\u009A","\\u009B","\\u009C","\\u009D","\\u009E","\\u009F"],sd=Object.freeze({});function rd(e,t,i=to){const n=new Map;for(const I of Object.values(L))n.set(I,od(t,I));let s,r=Array.isArray(e),l=[e],o=-1,a=[],c=e,u,h;const p=[],m=[];do{o++;const I=o===l.length,V=I&&a.length!==0;if(I){if(u=m.length===0?void 0:p[p.length-1],c=h,h=m.pop(),V)if(r){c=c.slice();let G=0;for(const[X,v]of a){const k=X-G;v===null?(c.splice(k,1),G++):c[k]=v}}else{c=B({},c);for(const[G,X]of a)c[G]=X}o=s.index,l=s.keys,a=s.edits,r=s.inArray,s=s.prev}else if(h){if(u=r?o:l[o],c=h[u],c==null)continue;p.push(u)}let R;if(!Array.isArray(c)){var f,d;io(c)||Ci(!1,`Invalid AST Node: ${ts(c)}.`);const G=I?(f=n.get(c.kind))===null||f===void 0?void 0:f.leave:(d=n.get(c.kind))===null||d===void 0?void 0:d.enter;if(R=G?.call(t,c,u,h,p,m),R===sd)break;if(R===!1){if(!I){p.pop();continue}}else if(R!==void 0&&(a.push([u,R]),!I))if(io(R))c=R;else{p.pop();continue}}if(R===void 0&&V&&a.push([u,c]),I)p.pop();else{var S;s={inArray:r,index:o,keys:l,edits:a,prev:s},r=Array.isArray(c),l=r?c:(S=i[c.kind])!==null&&S!==void 0?S:[],o=-1,a=[],h&&m.push(h),h=c}}while(s!==void 0);return a.length!==0?a[a.length-1][1]:e}function od(e,t){const i=e[t];return typeof i=="object"?i:typeof i=="function"?{enter:i,leave:void 0}:{enter:e.enter,leave:e.leave}}function po(e){return rd(e,ad)}const ld=80,ad={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>x(e.definitions,`
|
|
23
23
|
|
|
24
|
-
`)},OperationDefinition:{leave(e){const t=z("(",x(e.variableDefinitions,", "),")"),i=x([e.operation,x([e.name,t]),x(e.directives," ")]," ");return(i==="query"?"":i+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:i,directives:n})=>e+": "+t+z(" = ",i)+z(" ",x(n," "))},SelectionSet:{leave:({selections:e})=>we(e)},Field:{leave({alias:e,name:t,arguments:i,directives:n,selectionSet:s}){const r=z("",e,": ")+t;let l=r+z("(",x(i,", "),")");return l.length>
|
|
25
|
-
`,
|
|
24
|
+
`)},OperationDefinition:{leave(e){const t=z("(",x(e.variableDefinitions,", "),")"),i=x([e.operation,x([e.name,t]),x(e.directives," ")]," ");return(i==="query"?"":i+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:i,directives:n})=>e+": "+t+z(" = ",i)+z(" ",x(n," "))},SelectionSet:{leave:({selections:e})=>we(e)},Field:{leave({alias:e,name:t,arguments:i,directives:n,selectionSet:s}){const r=z("",e,": ")+t;let l=r+z("(",x(i,", "),")");return l.length>ld&&(l=r+z(`(
|
|
25
|
+
`,ki(x(i,`
|
|
26
26
|
`)),`
|
|
27
|
-
)`)),x([l,x(n," "),s]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+z(" ",x(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:i})=>x(["...",z("on ",e),x(t," "),i]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:i,directives:n,selectionSet:s})=>`fragment ${e}${z("(",x(i,", "),")")} on ${t} ${z("",x(n," ")," ")}`+s},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?
|
|
27
|
+
)`)),x([l,x(n," "),s]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+z(" ",x(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:i})=>x(["...",z("on ",e),x(t," "),i]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:i,directives:n,selectionSet:s})=>`fragment ${e}${z("(",x(i,", "),")")} on ${t} ${z("",x(n," ")," ")}`+s},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?Tu(e):ed(e)},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+x(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+x(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+z("(",x(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:i})=>z("",e,`
|
|
28
28
|
`)+x(["schema",x(t," "),we(i)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:i})=>z("",e,`
|
|
29
29
|
`)+x(["scalar",t,x(i," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:i,directives:n,fields:s})=>z("",e,`
|
|
30
30
|
`)+x(["type",t,z("implements ",x(i," & ")),x(n," "),we(s)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:i,type:n,directives:s})=>z("",e,`
|
|
31
31
|
`)+t+(mo(i)?z(`(
|
|
32
|
-
`,
|
|
32
|
+
`,ki(x(i,`
|
|
33
33
|
`)),`
|
|
34
34
|
)`):z("(",x(i,", "),")"))+": "+n+z(" ",x(s," "))},InputValueDefinition:{leave:({description:e,name:t,type:i,defaultValue:n,directives:s})=>z("",e,`
|
|
35
35
|
`)+x([t+": "+i,z("= ",n),x(s," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:i,directives:n,fields:s})=>z("",e,`
|
|
@@ -39,21 +39,21 @@ spurious results.`)}}return!1};let co=class{constructor(t,i="GraphQL request",n=
|
|
|
39
39
|
`)+x([t,x(i," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:i,fields:n})=>z("",e,`
|
|
40
40
|
`)+x(["input",t,x(i," "),we(n)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:i,repeatable:n,locations:s})=>z("",e,`
|
|
41
41
|
`)+"directive @"+t+(mo(i)?z(`(
|
|
42
|
-
`,
|
|
42
|
+
`,ki(x(i,`
|
|
43
43
|
`)),`
|
|
44
44
|
)`):z("(",x(i,", "),")"))+(n?" repeatable":"")+" on "+x(s," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>x(["extend schema",x(e," "),we(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>x(["extend scalar",e,x(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:i,fields:n})=>x(["extend type",e,z("implements ",x(t," & ")),x(i," "),we(n)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:i,fields:n})=>x(["extend interface",e,z("implements ",x(t," & ")),x(i," "),we(n)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:i})=>x(["extend union",e,x(t," "),z("= ",x(i," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:i})=>x(["extend enum",e,x(t," "),we(i)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:i})=>x(["extend input",e,x(t," "),we(i)]," ")}};function x(e,t=""){var i;return(i=e?.filter(n=>n).join(t))!==null&&i!==void 0?i:""}function we(e){return z(`{
|
|
45
|
-
`,
|
|
45
|
+
`,ki(x(e,`
|
|
46
46
|
`)),`
|
|
47
|
-
}`)}function z(e,t,i=""){return t!=null&&t!==""?e+t+i:""}function
|
|
47
|
+
}`)}function z(e,t,i=""){return t!=null&&t!==""?e+t+i:""}function ki(e){return z(" ",e.replace(/\n/g,`
|
|
48
48
|
`))}function mo(e){var t;return(t=e?.some(i=>i.includes(`
|
|
49
|
-
`)))!==null&&t!==void 0?t:!1}const ts=JSON,ad=e=>e.toUpperCase(),cd=e=>{const t={};return e.forEach((i,n)=>{t[n]=i}),t},ud=(e,t,i)=>e.document?e:{document:e,variables:t,requestHeaders:i,signal:void 0},dd=(e,t,i)=>e.query?e:{query:e,variables:t,requestHeaders:i,signal:void 0},hd=(e,t)=>e.documents?e:{documents:e,requestHeaders:t,signal:void 0},fo=e=>{var t,i;let n;const s=e.definitions.filter(r=>r.kind==="OperationDefinition");return s.length===1&&(n=(i=(t=s[0])==null?void 0:t.name)==null?void 0:i.value),n},is=e=>{if(typeof e=="string"){let i;try{const n=uo(e);i=fo(n)}catch{}return{query:e,operationName:i}}const t=fo(e);return{query:po(e),operationName:t}};class bt extends Error{constructor(t,i){const n=`${bt.extractMessage(t)}: ${JSON.stringify({response:t,request:i})}`;super(n),Object.setPrototypeOf(this,bt.prototype),this.response=t,this.request=i,typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,bt)}static extractMessage(t){var i,n,s;return(s=(n=(i=t.errors)==null?void 0:i[0])==null?void 0:n.message)!=null?s:`GraphQL Error (Code: ${t.status})`}}var pd=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ns(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ss={exports:{}};(function(e,t){var i=typeof self<"u"?self:pd,n=function(){function r(){this.fetch=!1,this.DOMException=i.DOMException}return r.prototype=i,new r}();(function(r){(function(l){var o={searchParams:"URLSearchParams"in r,iterable:"Symbol"in r&&"iterator"in Symbol,blob:"FileReader"in r&&"Blob"in r&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in r,arrayBuffer:"ArrayBuffer"in r};function a(b){return b&&DataView.prototype.isPrototypeOf(b)}if(o.arrayBuffer)var c=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],u=ArrayBuffer.isView||function(b){return b&&c.indexOf(Object.prototype.toString.call(b))>-1};function h(b){if(typeof b!="string"&&(b=String(b)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(b))throw new TypeError("Invalid character in header field name");return b.toLowerCase()}function p(b){return typeof b!="string"&&(b=String(b)),b}function m(b){var y={next:function(){var T=b.shift();return{done:T===void 0,value:T}}};return o.iterable&&(y[Symbol.iterator]=function(){return y}),y}function f(b){this.map={},b instanceof f?b.forEach(function(y,T){this.append(T,y)},this):Array.isArray(b)?b.forEach(function(y){this.append(y[0],y[1])},this):b&&Object.getOwnPropertyNames(b).forEach(function(y){this.append(y,b[y])},this)}f.prototype.append=function(b,y){b=h(b),y=p(y);var T=this.map[b];this.map[b]=T?T+", "+y:y},f.prototype.delete=function(b){delete this.map[h(b)]},f.prototype.get=function(b){return b=h(b),this.has(b)?this.map[b]:null},f.prototype.has=function(b){return this.map.hasOwnProperty(h(b))},f.prototype.set=function(b,y){this.map[h(b)]=p(y)},f.prototype.forEach=function(b,y){for(var T in this.map)this.map.hasOwnProperty(T)&&b.call(y,this.map[T],T,this)},f.prototype.keys=function(){var b=[];return this.forEach(function(y,T){b.push(T)}),m(b)},f.prototype.values=function(){var b=[];return this.forEach(function(y){b.push(y)}),m(b)},f.prototype.entries=function(){var b=[];return this.forEach(function(y,T){b.push([T,y])}),m(b)},o.iterable&&(f.prototype[Symbol.iterator]=f.prototype.entries);function d(b){if(b.bodyUsed)return Promise.reject(new TypeError("Already read"));b.bodyUsed=!0}function S(b){return new Promise(function(y,T){b.onload=function(){y(b.result)},b.onerror=function(){T(b.error)}})}function I(b){var y=new FileReader,T=S(y);return y.readAsArrayBuffer(b),T}function V(b){var y=new FileReader,T=S(y);return y.readAsText(b),T}function R(b){for(var y=new Uint8Array(b),T=new Array(y.length),F=0;F<y.length;F++)T[F]=String.fromCharCode(y[F]);return T.join("")}function G(b){if(b.slice)return b.slice(0);var y=new Uint8Array(b.byteLength);return y.set(new Uint8Array(b)),y.buffer}function X(){return this.bodyUsed=!1,this._initBody=function(b){this._bodyInit=b,b?typeof b=="string"?this._bodyText=b:o.blob&&Blob.prototype.isPrototypeOf(b)?this._bodyBlob=b:o.formData&&FormData.prototype.isPrototypeOf(b)?this._bodyFormData=b:o.searchParams&&URLSearchParams.prototype.isPrototypeOf(b)?this._bodyText=b.toString():o.arrayBuffer&&o.blob&&a(b)?(this._bodyArrayBuffer=G(b.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):o.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(b)||u(b))?this._bodyArrayBuffer=G(b):this._bodyText=b=Object.prototype.toString.call(b):this._bodyText="",this.headers.get("content-type")||(typeof b=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):o.searchParams&&URLSearchParams.prototype.isPrototypeOf(b)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},o.blob&&(this.blob=function(){var b=d(this);if(b)return b;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?d(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(I)}),this.text=function(){var b=d(this);if(b)return b;if(this._bodyBlob)return V(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(R(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},o.formData&&(this.formData=function(){return this.text().then(g)}),this.json=function(){return this.text().then(JSON.parse)},this}var v=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function k(b){var y=b.toUpperCase();return v.indexOf(y)>-1?y:b}function w(b,y){y=y||{};var T=y.body;if(b instanceof w){if(b.bodyUsed)throw new TypeError("Already read");this.url=b.url,this.credentials=b.credentials,y.headers||(this.headers=new f(b.headers)),this.method=b.method,this.mode=b.mode,this.signal=b.signal,!T&&b._bodyInit!=null&&(T=b._bodyInit,b.bodyUsed=!0)}else this.url=String(b);if(this.credentials=y.credentials||this.credentials||"same-origin",(y.headers||!this.headers)&&(this.headers=new f(y.headers)),this.method=k(y.method||this.method||"GET"),this.mode=y.mode||this.mode||null,this.signal=y.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&T)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(T)}w.prototype.clone=function(){return new w(this,{body:this._bodyInit})};function g(b){var y=new FormData;return b.trim().split("&").forEach(function(T){if(T){var F=T.split("="),K=F.shift().replace(/\+/g," "),N=F.join("=").replace(/\+/g," ");y.append(decodeURIComponent(K),decodeURIComponent(N))}}),y}function W(b){var y=new f,T=b.replace(/\r?\n[\t ]+/g," ");return T.split(/\r?\n/).forEach(function(F){var K=F.split(":"),N=K.shift().trim();if(N){var A=K.join(":").trim();y.append(N,A)}}),y}X.call(w.prototype);function J(b,y){y||(y={}),this.type="default",this.status=y.status===void 0?200:y.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in y?y.statusText:"OK",this.headers=new f(y.headers),this.url=y.url||"",this._initBody(b)}X.call(J.prototype),J.prototype.clone=function(){return new J(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new f(this.headers),url:this.url})},J.error=function(){var b=new J(null,{status:0,statusText:""});return b.type="error",b};var E=[301,302,303,307,308];J.redirect=function(b,y){if(E.indexOf(y)===-1)throw new RangeError("Invalid status code");return new J(null,{status:y,headers:{location:b}})},l.DOMException=r.DOMException;try{new l.DOMException}catch{l.DOMException=function(y,T){this.message=y,this.name=T;var F=Error(y);this.stack=F.stack},l.DOMException.prototype=Object.create(Error.prototype),l.DOMException.prototype.constructor=l.DOMException}function $(b,y){return new Promise(function(T,F){var K=new w(b,y);if(K.signal&&K.signal.aborted)return F(new l.DOMException("Aborted","AbortError"));var N=new XMLHttpRequest;function A(){N.abort()}N.onload=function(){var j={status:N.status,statusText:N.statusText,headers:W(N.getAllResponseHeaders()||"")};j.url="responseURL"in N?N.responseURL:j.headers.get("X-Request-URL");var de="response"in N?N.response:N.responseText;T(new J(de,j))},N.onerror=function(){F(new TypeError("Network request failed"))},N.ontimeout=function(){F(new TypeError("Network request failed"))},N.onabort=function(){F(new l.DOMException("Aborted","AbortError"))},N.open(K.method,K.url,!0),K.credentials==="include"?N.withCredentials=!0:K.credentials==="omit"&&(N.withCredentials=!1),"responseType"in N&&o.blob&&(N.responseType="blob"),K.headers.forEach(function(j,de){N.setRequestHeader(de,j)}),K.signal&&(K.signal.addEventListener("abort",A),N.onreadystatechange=function(){N.readyState===4&&K.signal.removeEventListener("abort",A)}),N.send(typeof K._bodyInit>"u"?null:K._bodyInit)})}return $.polyfill=!0,r.fetch||(r.fetch=$,r.Headers=f,r.Request=w,r.Response=J),l.Headers=f,l.Request=w,l.Response=J,l.fetch=$,Object.defineProperty(l,"__esModule",{value:!0}),l})({})})(n),n.fetch.ponyfill=!0,delete n.fetch.polyfill;var s=n;t=s.fetch,t.default=s.fetch,t.fetch=s.fetch,t.Headers=s.Headers,t.Request=s.Request,t.Response=s.Response,e.exports=t})(ss,ss.exports);var rs=ss.exports;const xi=ns(rs),md=Object.freeze(Object.defineProperty({__proto__:null,default:xi},Symbol.toStringTag,{value:"Module"})),yt=e=>{let t={};return e&&(typeof Headers<"u"&&e instanceof Headers||md&&rs.Headers&&e instanceof rs.Headers?t=cd(e):Array.isArray(e)?e.forEach(([i,n])=>{i&&n!==void 0&&(t[i]=n)}):t=e),t},bo=e=>e.replace(/([\s,]|#[^\n\r]+)+/g," ").trim(),fd=e=>{if(!Array.isArray(e.query)){const n=e,s=[`query=${encodeURIComponent(bo(n.query))}`];return e.variables&&s.push(`variables=${encodeURIComponent(n.jsonSerializer.stringify(n.variables))}`),n.operationName&&s.push(`operationName=${encodeURIComponent(n.operationName)}`),s.join("&")}if(typeof e.variables<"u"&&!Array.isArray(e.variables))throw new Error("Cannot create query with given variable type, array expected");const t=e,i=e.query.reduce((n,s,r)=>(n.push({query:bo(s),variables:t.variables?t.jsonSerializer.stringify(t.variables[r]):void 0}),n),[]);return`query=${encodeURIComponent(t.jsonSerializer.stringify(i))}`},bd=e=>t=>pt(void 0,null,function*(){var i;const{url:n,query:s,variables:r,operationName:l,fetch:o,fetchOptions:a,middleware:c}=t,u=B({},t.headers);let h="",p;e==="POST"?(p=gd(s,r,l,a.jsonSerializer),typeof p=="string"&&(u["Content-Type"]="application/json")):h=fd({query:s,variables:r,operationName:l,jsonSerializer:(i=a.jsonSerializer)!=null?i:ts});const m=B({method:e,headers:u,body:p},a);let f=n,d=m;if(c){const S=yield Promise.resolve(c(Ci(B({},m),{url:n,operationName:l,variables:r}))),{url:I}=S,V=Ut(S,["url"]);f=I,d=V}return h&&(f=`${f}?${h}`),yield o(f,d)});let yd=class{constructor(t,i={}){this.url=t,this.requestConfig=i,this.rawRequest=(...n)=>pt(this,null,function*(){const[s,r,l]=n,o=dd(s,r,l),a=this.requestConfig,{headers:c,fetch:u=xi,method:h="POST",requestMiddleware:p,responseMiddleware:m}=a,f=Ut(a,["headers","fetch","method","requestMiddleware","responseMiddleware"]),{url:d}=this;o.signal!==void 0&&(f.signal=o.signal);const{operationName:S}=is(o.query);return os({url:d,query:o.query,variables:o.variables,headers:B(B({},yt(ls(c))),yt(o.requestHeaders)),operationName:S,fetch:u,method:h,fetchOptions:f,middleware:p}).then(I=>(m&&m(I),I)).catch(I=>{throw m&&m(I),I})})}request(t,...i){return pt(this,null,function*(){const[n,s]=i,r=ud(t,n,s),l=this.requestConfig,{headers:o,fetch:a=xi,method:c="POST",requestMiddleware:u,responseMiddleware:h}=l,p=Ut(l,["headers","fetch","method","requestMiddleware","responseMiddleware"]),{url:m}=this;r.signal!==void 0&&(p.signal=r.signal);const{query:f,operationName:d}=is(r.document);return os({url:m,query:f,variables:r.variables,headers:B(B({},yt(ls(o))),yt(r.requestHeaders)),operationName:d,fetch:a,method:c,fetchOptions:p,middleware:u}).then(S=>(h&&h(S),S.data)).catch(S=>{throw h&&h(S),S})})}batchRequests(t,i){var n;const s=hd(t,i),r=this.requestConfig,{headers:l}=r,o=Ut(r,["headers"]);s.signal!==void 0&&(o.signal=s.signal);const a=s.documents.map(({document:u})=>is(u).query),c=s.documents.map(({variables:u})=>u);return os({url:this.url,query:a,variables:c,headers:B(B({},yt(ls(l))),yt(s.requestHeaders)),operationName:void 0,fetch:(n=this.requestConfig.fetch)!=null?n:xi,method:this.requestConfig.method||"POST",fetchOptions:o,middleware:this.requestConfig.requestMiddleware}).then(u=>(this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(u),u.data)).catch(u=>{throw this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(u),u})}setHeaders(t){return this.requestConfig.headers=t,this}setHeader(t,i){const{headers:n}=this.requestConfig;return n?n[t]=i:this.requestConfig.headers={[t]:i},this}setEndpoint(t){return this.url=t,this}};const os=e=>pt(void 0,null,function*(){var t,i;const{query:n,variables:s,fetchOptions:r}=e,l=bd(ad((t=e.method)!=null?t:"post")),o=Array.isArray(e.query),a=yield l(e),c=yield Zd(a,(i=r.jsonSerializer)!=null?i:ts),u=Array.isArray(c)?!c.some(({data:p})=>!p):!!c.data,h=Array.isArray(c)||!c.errors||Array.isArray(c.errors)&&!c.errors.length||r.errorPolicy==="all"||r.errorPolicy==="ignore";if(a.ok&&h&&u){const p=c,m=Ut(p,["errors"]),f=r.errorPolicy==="ignore"?m:c;return Ci(B({},o?{data:f}:f),{headers:a.headers,status:a.status})}else{const p=typeof c=="string"?{error:c}:c;throw new bt(Ci(B({},p),{status:a.status,headers:a.headers}),{query:n,variables:s})}}),gd=(e,t,i,n)=>{const s=n??ts;if(!Array.isArray(e))return s.stringify({query:e,variables:t,operationName:i});if(typeof t<"u"&&!Array.isArray(t))throw new Error("Cannot create request body with given variable type, array expected");const r=e.reduce((l,o,a)=>(l.push({query:o,variables:t?t[a]:void 0}),l),[]);return s.stringify(r)},Zd=(e,t)=>pt(void 0,null,function*(){let i;return e.headers.forEach((n,s)=>{s.toLowerCase()==="content-type"&&(i=n)}),i&&(i.toLowerCase().startsWith("application/json")||i.toLowerCase().startsWith("application/graphql+json")||i.toLowerCase().startsWith("application/graphql-response+json"))?t.parse(yield e.text()):e.text()}),ls=e=>typeof e=="function"?e():e;var as={exports:{}};(function(e,t){t=e.exports=i,t.getSerialize=n;function i(s,r,l,o){return JSON.stringify(s,n(r,o),l)}function n(s,r){var l=[],o=[];return r==null&&(r=function(a,c){return l[0]===c?"[Circular ~]":"[Circular ~."+o.slice(0,l.indexOf(c)).join(".")+"]"}),function(a,c){if(l.length>0){var u=l.indexOf(this);~u?l.splice(u+1):l.push(this),~u?o.splice(u,1/0,a):o.push(a),~l.indexOf(c)&&(c=r.call(this,a,c))}else l.push(c);return s==null?c:s.call(this,a,c)}}})(as,as.exports);var Id=as.exports;const Sd=ns(Id);var Ti=function(){return Ti=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++){t=arguments[i];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s])}return e},Ti.apply(this,arguments)},Li=new Map,cs=new Map,yo=!0,Ni=!1;function go(e){return e.replace(/[\s,]+/g," ").trim()}function Xd(e){return go(e.source.body.substring(e.start,e.end))}function Vd(e){var t=new Set,i=[];return e.definitions.forEach(function(n){if(n.kind==="FragmentDefinition"){var s=n.name.value,r=Xd(n.loc),l=cs.get(s);l&&!l.has(r)?yo&&console.warn("Warning: fragment with name "+s+` already exists.
|
|
49
|
+
`)))!==null&&t!==void 0?t:!1}const is=JSON,cd=e=>e.toUpperCase(),ud=e=>{const t={};return e.forEach((i,n)=>{t[n]=i}),t},dd=(e,t,i)=>e.document?e:{document:e,variables:t,requestHeaders:i,signal:void 0},hd=(e,t,i)=>e.query?e:{query:e,variables:t,requestHeaders:i,signal:void 0},pd=(e,t)=>e.documents?e:{documents:e,requestHeaders:t,signal:void 0},fo=e=>{var t,i;let n;const s=e.definitions.filter(r=>r.kind==="OperationDefinition");return s.length===1&&(n=(i=(t=s[0])==null?void 0:t.name)==null?void 0:i.value),n},ns=e=>{if(typeof e=="string"){let i;try{const n=uo(e);i=fo(n)}catch{}return{query:e,operationName:i}}const t=fo(e);return{query:po(e),operationName:t}};let bo=class Qn extends Error{constructor(t,i){const n=`${Qn.extractMessage(t)}: ${JSON.stringify({response:t,request:i})}`;super(n),Object.setPrototypeOf(this,Qn.prototype),this.response=t,this.request=i,typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Qn)}static extractMessage(t){var i,n,s;return(s=(n=(i=t.errors)==null?void 0:i[0])==null?void 0:n.message)!=null?s:`GraphQL Error (Code: ${t.status})`}};var md=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ss(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var rs={exports:{}};(function(e,t){var i=typeof self<"u"?self:md,n=function(){function r(){this.fetch=!1,this.DOMException=i.DOMException}return r.prototype=i,new r}();(function(r){(function(l){var o={searchParams:"URLSearchParams"in r,iterable:"Symbol"in r&&"iterator"in Symbol,blob:"FileReader"in r&&"Blob"in r&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in r,arrayBuffer:"ArrayBuffer"in r};function a(b){return b&&DataView.prototype.isPrototypeOf(b)}if(o.arrayBuffer)var c=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],u=ArrayBuffer.isView||function(b){return b&&c.indexOf(Object.prototype.toString.call(b))>-1};function h(b){if(typeof b!="string"&&(b=String(b)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(b))throw new TypeError("Invalid character in header field name");return b.toLowerCase()}function p(b){return typeof b!="string"&&(b=String(b)),b}function m(b){var y={next:function(){var T=b.shift();return{done:T===void 0,value:T}}};return o.iterable&&(y[Symbol.iterator]=function(){return y}),y}function f(b){this.map={},b instanceof f?b.forEach(function(y,T){this.append(T,y)},this):Array.isArray(b)?b.forEach(function(y){this.append(y[0],y[1])},this):b&&Object.getOwnPropertyNames(b).forEach(function(y){this.append(y,b[y])},this)}f.prototype.append=function(b,y){b=h(b),y=p(y);var T=this.map[b];this.map[b]=T?T+", "+y:y},f.prototype.delete=function(b){delete this.map[h(b)]},f.prototype.get=function(b){return b=h(b),this.has(b)?this.map[b]:null},f.prototype.has=function(b){return this.map.hasOwnProperty(h(b))},f.prototype.set=function(b,y){this.map[h(b)]=p(y)},f.prototype.forEach=function(b,y){for(var T in this.map)this.map.hasOwnProperty(T)&&b.call(y,this.map[T],T,this)},f.prototype.keys=function(){var b=[];return this.forEach(function(y,T){b.push(T)}),m(b)},f.prototype.values=function(){var b=[];return this.forEach(function(y){b.push(y)}),m(b)},f.prototype.entries=function(){var b=[];return this.forEach(function(y,T){b.push([T,y])}),m(b)},o.iterable&&(f.prototype[Symbol.iterator]=f.prototype.entries);function d(b){if(b.bodyUsed)return Promise.reject(new TypeError("Already read"));b.bodyUsed=!0}function S(b){return new Promise(function(y,T){b.onload=function(){y(b.result)},b.onerror=function(){T(b.error)}})}function I(b){var y=new FileReader,T=S(y);return y.readAsArrayBuffer(b),T}function V(b){var y=new FileReader,T=S(y);return y.readAsText(b),T}function R(b){for(var y=new Uint8Array(b),T=new Array(y.length),F=0;F<y.length;F++)T[F]=String.fromCharCode(y[F]);return T.join("")}function G(b){if(b.slice)return b.slice(0);var y=new Uint8Array(b.byteLength);return y.set(new Uint8Array(b)),y.buffer}function X(){return this.bodyUsed=!1,this._initBody=function(b){this._bodyInit=b,b?typeof b=="string"?this._bodyText=b:o.blob&&Blob.prototype.isPrototypeOf(b)?this._bodyBlob=b:o.formData&&FormData.prototype.isPrototypeOf(b)?this._bodyFormData=b:o.searchParams&&URLSearchParams.prototype.isPrototypeOf(b)?this._bodyText=b.toString():o.arrayBuffer&&o.blob&&a(b)?(this._bodyArrayBuffer=G(b.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):o.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(b)||u(b))?this._bodyArrayBuffer=G(b):this._bodyText=b=Object.prototype.toString.call(b):this._bodyText="",this.headers.get("content-type")||(typeof b=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):o.searchParams&&URLSearchParams.prototype.isPrototypeOf(b)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},o.blob&&(this.blob=function(){var b=d(this);if(b)return b;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?d(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(I)}),this.text=function(){var b=d(this);if(b)return b;if(this._bodyBlob)return V(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(R(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},o.formData&&(this.formData=function(){return this.text().then(g)}),this.json=function(){return this.text().then(JSON.parse)},this}var v=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function k(b){var y=b.toUpperCase();return v.indexOf(y)>-1?y:b}function w(b,y){y=y||{};var T=y.body;if(b instanceof w){if(b.bodyUsed)throw new TypeError("Already read");this.url=b.url,this.credentials=b.credentials,y.headers||(this.headers=new f(b.headers)),this.method=b.method,this.mode=b.mode,this.signal=b.signal,!T&&b._bodyInit!=null&&(T=b._bodyInit,b.bodyUsed=!0)}else this.url=String(b);if(this.credentials=y.credentials||this.credentials||"same-origin",(y.headers||!this.headers)&&(this.headers=new f(y.headers)),this.method=k(y.method||this.method||"GET"),this.mode=y.mode||this.mode||null,this.signal=y.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&T)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(T)}w.prototype.clone=function(){return new w(this,{body:this._bodyInit})};function g(b){var y=new FormData;return b.trim().split("&").forEach(function(T){if(T){var F=T.split("="),K=F.shift().replace(/\+/g," "),N=F.join("=").replace(/\+/g," ");y.append(decodeURIComponent(K),decodeURIComponent(N))}}),y}function W(b){var y=new f,T=b.replace(/\r?\n[\t ]+/g," ");return T.split(/\r?\n/).forEach(function(F){var K=F.split(":"),N=K.shift().trim();if(N){var A=K.join(":").trim();y.append(N,A)}}),y}X.call(w.prototype);function J(b,y){y||(y={}),this.type="default",this.status=y.status===void 0?200:y.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in y?y.statusText:"OK",this.headers=new f(y.headers),this.url=y.url||"",this._initBody(b)}X.call(J.prototype),J.prototype.clone=function(){return new J(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new f(this.headers),url:this.url})},J.error=function(){var b=new J(null,{status:0,statusText:""});return b.type="error",b};var E=[301,302,303,307,308];J.redirect=function(b,y){if(E.indexOf(y)===-1)throw new RangeError("Invalid status code");return new J(null,{status:y,headers:{location:b}})},l.DOMException=r.DOMException;try{new l.DOMException}catch{l.DOMException=function(y,T){this.message=y,this.name=T;var F=Error(y);this.stack=F.stack},l.DOMException.prototype=Object.create(Error.prototype),l.DOMException.prototype.constructor=l.DOMException}function $(b,y){return new Promise(function(T,F){var K=new w(b,y);if(K.signal&&K.signal.aborted)return F(new l.DOMException("Aborted","AbortError"));var N=new XMLHttpRequest;function A(){N.abort()}N.onload=function(){var j={status:N.status,statusText:N.statusText,headers:W(N.getAllResponseHeaders()||"")};j.url="responseURL"in N?N.responseURL:j.headers.get("X-Request-URL");var de="response"in N?N.response:N.responseText;T(new J(de,j))},N.onerror=function(){F(new TypeError("Network request failed"))},N.ontimeout=function(){F(new TypeError("Network request failed"))},N.onabort=function(){F(new l.DOMException("Aborted","AbortError"))},N.open(K.method,K.url,!0),K.credentials==="include"?N.withCredentials=!0:K.credentials==="omit"&&(N.withCredentials=!1),"responseType"in N&&o.blob&&(N.responseType="blob"),K.headers.forEach(function(j,de){N.setRequestHeader(de,j)}),K.signal&&(K.signal.addEventListener("abort",A),N.onreadystatechange=function(){N.readyState===4&&K.signal.removeEventListener("abort",A)}),N.send(typeof K._bodyInit>"u"?null:K._bodyInit)})}return $.polyfill=!0,r.fetch||(r.fetch=$,r.Headers=f,r.Request=w,r.Response=J),l.Headers=f,l.Request=w,l.Response=J,l.fetch=$,Object.defineProperty(l,"__esModule",{value:!0}),l})({})})(n),n.fetch.ponyfill=!0,delete n.fetch.polyfill;var s=n;t=s.fetch,t.default=s.fetch,t.fetch=s.fetch,t.Headers=s.Headers,t.Request=s.Request,t.Response=s.Response,e.exports=t})(rs,rs.exports);var os=rs.exports;const wi=ss(os),fd=Object.freeze(Object.defineProperty({__proto__:null,default:wi},Symbol.toStringTag,{value:"Module"})),bt=e=>{let t={};return e&&(typeof Headers<"u"&&e instanceof Headers||fd&&os.Headers&&e instanceof os.Headers?t=ud(e):Array.isArray(e)?e.forEach(([i,n])=>{i&&n!==void 0&&(t[i]=n)}):t=e),t},yo=e=>e.replace(/([\s,]|#[^\n\r]+)+/g," ").trim(),bd=e=>{if(!Array.isArray(e.query)){const n=e,s=[`query=${encodeURIComponent(yo(n.query))}`];return e.variables&&s.push(`variables=${encodeURIComponent(n.jsonSerializer.stringify(n.variables))}`),n.operationName&&s.push(`operationName=${encodeURIComponent(n.operationName)}`),s.join("&")}if(typeof e.variables<"u"&&!Array.isArray(e.variables))throw new Error("Cannot create query with given variable type, array expected");const t=e,i=e.query.reduce((n,s,r)=>(n.push({query:yo(s),variables:t.variables?t.jsonSerializer.stringify(t.variables[r]):void 0}),n),[]);return`query=${encodeURIComponent(t.jsonSerializer.stringify(i))}`},yd=e=>t=>pt(void 0,null,function*(){var i;const{url:n,query:s,variables:r,operationName:l,fetch:o,fetchOptions:a,middleware:c}=t,u=B({},t.headers);let h="",p;e==="POST"?(p=Zd(s,r,l,a.jsonSerializer),typeof p=="string"&&(u["Content-Type"]="application/json")):h=bd({query:s,variables:r,operationName:l,jsonSerializer:(i=a.jsonSerializer)!=null?i:is});const m=B({method:e,headers:u,body:p},a);let f=n,d=m;if(c){const S=yield Promise.resolve(c(Gi(B({},m),{url:n,operationName:l,variables:r}))),{url:I}=S,V=Ut(S,["url"]);f=I,d=V}return h&&(f=`${f}?${h}`),yield o(f,d)});let gd=class{constructor(t,i={}){this.url=t,this.requestConfig=i,this.rawRequest=(...n)=>pt(this,null,function*(){const[s,r,l]=n,o=hd(s,r,l),a=this.requestConfig,{headers:c,fetch:u=wi,method:h="POST",requestMiddleware:p,responseMiddleware:m}=a,f=Ut(a,["headers","fetch","method","requestMiddleware","responseMiddleware"]),{url:d}=this;o.signal!==void 0&&(f.signal=o.signal);const{operationName:S}=ns(o.query);return ls({url:d,query:o.query,variables:o.variables,headers:B(B({},bt(as(c))),bt(o.requestHeaders)),operationName:S,fetch:u,method:h,fetchOptions:f,middleware:p}).then(I=>(m&&m(I),I)).catch(I=>{throw m&&m(I),I})})}request(t,...i){return pt(this,null,function*(){const[n,s]=i,r=dd(t,n,s),l=this.requestConfig,{headers:o,fetch:a=wi,method:c="POST",requestMiddleware:u,responseMiddleware:h}=l,p=Ut(l,["headers","fetch","method","requestMiddleware","responseMiddleware"]),{url:m}=this;r.signal!==void 0&&(p.signal=r.signal);const{query:f,operationName:d}=ns(r.document);return ls({url:m,query:f,variables:r.variables,headers:B(B({},bt(as(o))),bt(r.requestHeaders)),operationName:d,fetch:a,method:c,fetchOptions:p,middleware:u}).then(S=>(h&&h(S),S.data)).catch(S=>{throw h&&h(S),S})})}batchRequests(t,i){var n;const s=pd(t,i),r=this.requestConfig,{headers:l}=r,o=Ut(r,["headers"]);s.signal!==void 0&&(o.signal=s.signal);const a=s.documents.map(({document:u})=>ns(u).query),c=s.documents.map(({variables:u})=>u);return ls({url:this.url,query:a,variables:c,headers:B(B({},bt(as(l))),bt(s.requestHeaders)),operationName:void 0,fetch:(n=this.requestConfig.fetch)!=null?n:wi,method:this.requestConfig.method||"POST",fetchOptions:o,middleware:this.requestConfig.requestMiddleware}).then(u=>(this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(u),u.data)).catch(u=>{throw this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(u),u})}setHeaders(t){return this.requestConfig.headers=t,this}setHeader(t,i){const{headers:n}=this.requestConfig;return n?n[t]=i:this.requestConfig.headers={[t]:i},this}setEndpoint(t){return this.url=t,this}};const ls=e=>pt(void 0,null,function*(){var t,i;const{query:n,variables:s,fetchOptions:r}=e,l=yd(cd((t=e.method)!=null?t:"post")),o=Array.isArray(e.query),a=yield l(e),c=yield Id(a,(i=r.jsonSerializer)!=null?i:is),u=Array.isArray(c)?!c.some(({data:p})=>!p):!!c.data,h=Array.isArray(c)||!c.errors||Array.isArray(c.errors)&&!c.errors.length||r.errorPolicy==="all"||r.errorPolicy==="ignore";if(a.ok&&h&&u){const p=c,m=Ut(p,["errors"]),f=r.errorPolicy==="ignore"?m:c;return Gi(B({},o?{data:f}:f),{headers:a.headers,status:a.status})}else{const p=typeof c=="string"?{error:c}:c;throw new bo(Gi(B({},p),{status:a.status,headers:a.headers}),{query:n,variables:s})}}),Zd=(e,t,i,n)=>{const s=n??is;if(!Array.isArray(e))return s.stringify({query:e,variables:t,operationName:i});if(typeof t<"u"&&!Array.isArray(t))throw new Error("Cannot create request body with given variable type, array expected");const r=e.reduce((l,o,a)=>(l.push({query:o,variables:t?t[a]:void 0}),l),[]);return s.stringify(r)},Id=(e,t)=>pt(void 0,null,function*(){let i;return e.headers.forEach((n,s)=>{s.toLowerCase()==="content-type"&&(i=n)}),i&&(i.toLowerCase().startsWith("application/json")||i.toLowerCase().startsWith("application/graphql+json")||i.toLowerCase().startsWith("application/graphql-response+json"))?t.parse(yield e.text()):e.text()}),as=e=>typeof e=="function"?e():e;var cs={exports:{}};(function(e,t){t=e.exports=i,t.getSerialize=n;function i(s,r,l,o){return JSON.stringify(s,n(r,o),l)}function n(s,r){var l=[],o=[];return r==null&&(r=function(a,c){return l[0]===c?"[Circular ~]":"[Circular ~."+o.slice(0,l.indexOf(c)).join(".")+"]"}),function(a,c){if(l.length>0){var u=l.indexOf(this);~u?l.splice(u+1):l.push(this),~u?o.splice(u,1/0,a):o.push(a),~l.indexOf(c)&&(c=r.call(this,a,c))}else l.push(c);return s==null?c:s.call(this,a,c)}}})(cs,cs.exports);var Sd=cs.exports;const Xd=ss(Sd);var xi=function(){return xi=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++){t=arguments[i];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s])}return e},xi.apply(this,arguments)},Ti=new Map,us=new Map,go=!0,Li=!1;function Zo(e){return e.replace(/[\s,]+/g," ").trim()}function Vd(e){return Zo(e.source.body.substring(e.start,e.end))}function Gd(e){var t=new Set,i=[];return e.definitions.forEach(function(n){if(n.kind==="FragmentDefinition"){var s=n.name.value,r=Vd(n.loc),l=us.get(s);l&&!l.has(r)?go&&console.warn("Warning: fragment with name "+s+` already exists.
|
|
50
50
|
graphql-tag enforces all fragment names across your application to be unique; read more about
|
|
51
|
-
this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):l||
|
|
51
|
+
this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):l||us.set(s,l=new Set),l.add(r),t.has(r)||(t.add(r),i.push(n))}else i.push(n)}),xi(xi({},e),{definitions:i})}function Cd(e){var t=new Set(e.definitions);t.forEach(function(n){n.loc&&delete n.loc,Object.keys(n).forEach(function(s){var r=n[s];r&&typeof r=="object"&&t.add(r)})});var i=e.loc;return i&&(delete i.startToken,delete i.endToken),e}function Rd(e){var t=Zo(e);if(!Ti.has(t)){var i=uo(e,{experimentalFragmentVariables:Li,allowLegacyFragmentVariables:Li});if(!i||i.kind!=="Document")throw new Error("Not a valid GraphQL document.");Ti.set(t,Cd(Gd(i)))}return Ti.get(t)}function fe(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];typeof e=="string"&&(e=[e]);var n=e[0];return t.forEach(function(s,r){s&&s.kind==="Document"?n+=s.loc.source.body:n+=s,n+=e[r+1]}),Rd(n)}function Wd(){Ti.clear(),us.clear()}function vd(){go=!1}function kd(){Li=!0}function wd(){Li=!1}var Et={gql:fe,resetCaches:Wd,disableFragmentWarnings:vd,enableExperimentalFragmentVariables:kd,disableExperimentalFragmentVariables:wd};(function(e){e.gql=Et.gql,e.resetCaches=Et.resetCaches,e.disableFragmentWarnings=Et.disableFragmentWarnings,e.enableExperimentalFragmentVariables=Et.enableExperimentalFragmentVariables,e.disableExperimentalFragmentVariables=Et.disableExperimentalFragmentVariables})(fe||(fe={})),fe.default=fe;const Io=fe`
|
|
52
52
|
fragment MatchParts on MatchConfig {
|
|
53
53
|
regexValue
|
|
54
54
|
matchValue
|
|
55
55
|
}
|
|
56
|
-
`,
|
|
56
|
+
`,xd=fe`
|
|
57
57
|
mutation PushPayload(
|
|
58
58
|
$session_secure_id: String!
|
|
59
59
|
$payload_id: ID!
|
|
@@ -79,7 +79,7 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):l
|
|
|
79
79
|
highlight_logs: $highlight_logs
|
|
80
80
|
)
|
|
81
81
|
}
|
|
82
|
-
`,
|
|
82
|
+
`,So=fe`
|
|
83
83
|
mutation PushSessionEvents(
|
|
84
84
|
$session_secure_id: String!
|
|
85
85
|
$payload_id: Int64ID!
|
|
@@ -91,7 +91,7 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):l
|
|
|
91
91
|
data: $data
|
|
92
92
|
)
|
|
93
93
|
}
|
|
94
|
-
`,
|
|
94
|
+
`,Td=fe`
|
|
95
95
|
mutation identifySession(
|
|
96
96
|
$session_secure_id: String!
|
|
97
97
|
$user_identifier: String!
|
|
@@ -103,7 +103,7 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):l
|
|
|
103
103
|
user_object: $user_object
|
|
104
104
|
)
|
|
105
105
|
}
|
|
106
|
-
`,
|
|
106
|
+
`,Ld=fe`
|
|
107
107
|
mutation addSessionProperties(
|
|
108
108
|
$session_secure_id: String!
|
|
109
109
|
$properties_object: Any
|
|
@@ -113,11 +113,11 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):l
|
|
|
113
113
|
properties_object: $properties_object
|
|
114
114
|
)
|
|
115
115
|
}
|
|
116
|
-
`,
|
|
116
|
+
`,Nd=fe`
|
|
117
117
|
mutation pushMetrics($metrics: [MetricInput]!) {
|
|
118
118
|
pushMetrics(metrics: $metrics)
|
|
119
119
|
}
|
|
120
|
-
`,
|
|
120
|
+
`,Jd=fe`
|
|
121
121
|
mutation addSessionFeedback(
|
|
122
122
|
$session_secure_id: String!
|
|
123
123
|
$user_name: String
|
|
@@ -133,7 +133,7 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):l
|
|
|
133
133
|
timestamp: $timestamp
|
|
134
134
|
)
|
|
135
135
|
}
|
|
136
|
-
`,
|
|
136
|
+
`,Yd=fe`
|
|
137
137
|
mutation initializeSession(
|
|
138
138
|
$session_secure_id: String!
|
|
139
139
|
$session_key: String
|
|
@@ -220,12 +220,12 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):l
|
|
|
220
220
|
}
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
-
${
|
|
224
|
-
`,
|
|
223
|
+
${Io}
|
|
224
|
+
`,Fd=fe`
|
|
225
225
|
query Ignore($id: ID!) {
|
|
226
226
|
ignore(id: $id)
|
|
227
227
|
}
|
|
228
|
-
`,
|
|
228
|
+
`,Ud=fe`
|
|
229
229
|
query GetSamplingConfig($organization_verbose_id: String!) {
|
|
230
230
|
sampling(organization_verbose_id: $organization_verbose_id) {
|
|
231
231
|
spans {
|
|
@@ -274,8 +274,8 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):l
|
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
|
-
${
|
|
278
|
-
`,Ud=(e,t,i,n)=>e();function Kd(e,t=Ud){return{PushPayload(i,n){return t(s=>e.request(wd,i,B(B({},n),s)),"PushPayload","mutation",i)},PushSessionEvents(i,n){return t(s=>e.request(Io,i,B(B({},n),s)),"PushSessionEvents","mutation",i)},identifySession(i,n){return t(s=>e.request(xd,i,B(B({},n),s)),"identifySession","mutation",i)},addSessionProperties(i,n){return t(s=>e.request(Td,i,B(B({},n),s)),"addSessionProperties","mutation",i)},pushMetrics(i,n){return t(s=>e.request(Ld,i,B(B({},n),s)),"pushMetrics","mutation",i)},addSessionFeedback(i,n){return t(s=>e.request(Nd,i,B(B({},n),s)),"addSessionFeedback","mutation",i)},initializeSession(i,n){return t(s=>e.request(Jd,i,B(B({},n),s)),"initializeSession","mutation",i)},Ignore(i,n){return t(s=>e.request(Yd,i,B(B({},n),s)),"Ignore","query",i)},GetSamplingConfig(i,n){return t(s=>e.request(Fd,i,B(B({},n),s)),"GetSamplingConfig","query",i)}}}function Md(){var e=document.createElement("canvas");return e.getContext&&e.getContext("2d")?e.toDataURL("image/webp").indexOf("data:image/webp")==0:!1}function Od(){return Md()?{type:"image/webp",quality:.9}:{type:"image/jpeg",quality:.6}}const Ed="telemetry.sdk.name",zd="telemetry.sdk.version",So=1e3,Hd=1e3*2,Pd=4*60*60*1e3,us=15*60*1e3,Xo={normal:{bytes:1e7,time:4*60*1e3},canvas:{bytes:16e6,time:5e3}},Dd=100,Vo="app.highlight.io",Bd="https://app.launchdarkly.com",Qd={"observability.ld-stg.launchdarkly.com":"ld-stg.launchdarkly.com","observability.app.launchdarkly.com":"app.launchdarkly.com","observability.app.ld.catamorphic.com":"app.ld.catamorphic.com"},jd="/projects/default",Ad=new RegExp("pub\\.(?<domain>.+)");/*! js-cookie v3.0.5 | MIT */function Ji(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)e[n]=i[n]}return e}var _d={read:function(e){return e[0]==='"'&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function ds(e,t){function i(s,r,l){if(typeof document<"u"){l=Ji({},t,l),typeof l.expires=="number"&&(l.expires=new Date(Date.now()+l.expires*864e5)),l.expires&&(l.expires=l.expires.toUTCString()),s=encodeURIComponent(s).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var o="";for(var a in l)l[a]&&(o+="; "+a,l[a]!==!0&&(o+="="+l[a].split(";")[0]));return document.cookie=s+"="+e.write(r,s)+o}}function n(s){if(!(typeof document>"u"||arguments.length&&!s)){for(var r=document.cookie?document.cookie.split("; "):[],l={},o=0;o<r.length;o++){var a=r[o].split("="),c=a.slice(1).join("=");try{var u=decodeURIComponent(a[0]);if(l[u]=e.read(c,u),s===u)break}catch{}}return s?l[s]:l}}return Object.create({set:i,get:n,remove:function(s,r){i(s,"",Ji({},r,{expires:-1}))},withAttributes:function(s){return ds(this.converter,Ji({},this.attributes,s))},withConverter:function(s){return ds(Ji({},this.converter,s),this.attributes)}},{attributes:{value:Object.freeze(t)},converter:{value:Object.freeze(e)}})}var hs=ds(_d,{path:"/"}),ps=(e=>(e.CLIENT_ID="highlightClientID",e))(ps||{});let Yi="localStorage",ms=!0,$d=class{constructor(){Kt(this,"storage",{})}get length(){return Object.keys(this.storage).length}key(t){var i;return(i=Object.keys(this.storage)[t])!=null?i:null}getItem(t){var i;return(i=this.storage[t])!=null?i:""}setItem(t,i){this.storage[t]=i}removeItem(t){delete this.storage[t]}},qd=class{getItem(t){var i;return(i=hs.get(t))!=null?i:""}setItem(t,i){if(!ms)return;const n=new Date;n.setTime(n.getTime()+us),hs.set(t,i,{expires:n})}removeItem(t){ms&&hs.remove(t)}};const gt=new $d,Fi=new qd,zt=()=>{let e=null;if(typeof window>"u")return gt;try{switch(Yi){case"localStorage":e=window.localStorage;break;case"sessionStorage":e=window.sessionStorage;break}e||(it("storage","getPersistentStorage","debug",`persistent storage was not found for mode ${Yi}; using global storage`),e=gt)}catch(t){it("storage","getPersistentStorage","debug","failed to get persistent storage; using global storage",t),e=gt}return e},eh=e=>{Yi=e},Go=e=>{ms=e},Ge=e=>{try{return zt().getItem(e)}catch(t){return it("storage","getItem","debug",`failed to get item ${e}; using global storage`,t),gt.getItem(e)}},Ee=(e,t)=>{Fi.setItem(e,t);try{return zt().setItem(e,t)}catch(i){return it("storage","setItem","debug",`failed to set item ${e}; using global storage`,i),gt.setItem(e,t)}},Ui=e=>{Fi.removeItem(e);try{return zt().removeItem(e)}catch(t){return it("storage","removeItem","debug",`failed to remove item ${e}; using global storage`,t),gt.removeItem(e)}},th=e=>{if(Yi==="sessionStorage"){console.warn("highlight.io cannot use local storage; segment integration will not work");return}if(typeof window>"u"){console.warn("highlight.io cannot use local storage (not a window); segment integration will not work");return}const t=window.localStorage.setItem;window.localStorage.setItem=function(){const[i,n]=arguments;e({keyName:i,keyValue:n}),t.apply(this,[i,n])}};var be=(e=>(e.SEGMENT_LAST_SENT_HASH_KEY="HIGHLIGHT_SEGMENT_LAST_SENT_HASH_KEY",e.SESSION_ID="sessionID",e.SESSION_DATA="sessionData",e.USER_IDENTIFIER="highlightIdentifier",e.USER_OBJECT="highlightUserObject",e))(be||{});const Ki=e=>`${be.SESSION_DATA}_${e}`,ih=()=>{var e;return typeof globalThis<"u"&&(e=globalThis.persistentSessionSecureID)!=null&&e.length?globalThis.persistentSessionSecureID:Co()},nh=e=>{typeof globalThis<"u"&&e!=null&&e.length&&(globalThis.persistentSessionSecureID=e)},Co=()=>{var e;return(e=Ge(be.SESSION_ID))!=null?e:""},Ht=e=>{Ee(be.SESSION_ID,e)},sh=e=>{const t=Ki(e);return JSON.parse(Ge(t)||"{}")},Mi=e=>{e||(e=Co());let t=sh(e);if(t&&t.lastPushTime&&Date.now()-t.lastPushTime<us)return t;Ui(Ki(e))},st=function(e){if(!(e!=null&&e.sessionSecureID))return;const t=e.sessionSecureID;nh(t);const i=Ki(t);Ee(i,JSON.stringify(e)),oh(i)},rh=function(){const e=Fi.getItem(be.SESSION_ID);Ht(e);const t=Ki(e),i=Fi.getItem(t);try{st(JSON.parse(i))}catch{}};function oh(e){const t=`${be.SESSION_DATA}_`;for(let i=zt().length-1;i>=0;i--){const n=zt().key(i);if(n&&n.startsWith(t)&&n!==e)try{const s=JSON.parse(Ge(n)||"{}");s.lastPushTime!==void 0&&Date.now()-s.lastPushTime>=us&&(it("highlightSession","pruneSessionData","debug",`removing session data for stale key ${n}`),Ui(n))}catch(s){it("highlightSession","pruneSessionData","error",`failed to parse session data for key ${n}`,s)}}}var Ro=(e=>(e.BillingQuotaExceeded="BillingQuotaExceeded",e))(Ro||{});const lh=3,ah=1e3,ch=500,uh=[Ro.BillingQuotaExceeded.toString()],dh=e=>{var t;return((t=e.response.errors)==null?void 0:t.find(i=>uh.includes(i.message)))===void 0},hh=()=>{const e=(t,i,n,s,r=0)=>pt(void 0,null,function*(){try{return yield t()}catch(l){if(l instanceof bt&&!dh(l))throw l;if(r<lh)return yield new Promise(o=>setTimeout(o,ah+ch*Math.pow(2,r))),yield e(t,i,n,s,r+1);throw console.error(`highlight.io: data request failed after ${r} retries`),l}});return e},Wo="feature_flag",vo="launchdarkly",ph=`${Wo}.set.id`,mh=`${Wo}.provider.name`,fh=`${vo}.application.id`,bh=`${vo}.application.version`,yh="$ld:telemetry:session:init",ko="$ld:telemetry:track";function wo(e){return e.includes("%")||e.includes(":")?e.replace(/%/g,"%25").replace(/:/g,"%3A"):e}function xo(e){return e.kind==="multi"}function To(e){return xo(e)?Object.keys(e).sort().filter(t=>t!=="kind").map(t=>`${t}:${wo(e[t].key)}`).join(":"):"kind"in e&&e.kind==="user"?e.key:"kind"in e?`${e.kind}:${wo(e.key)}`:e.key}function gh(e){return xo(e)?Object.keys(e).sort().filter(t=>t!=="kind").map(t=>({[t]:e[t].key})).reduce((t,i)=>B(B({},t),i),{}):"kind"in e?{[e.kind]:e.key}:{user:e.key}}let Zh=class{constructor(t,i){Kt(this,"client"),Kt(this,"metadata"),this.client=t,this.metadata=i}getHooks(t){return[]}init(t){this.client.track(yh,{sessionID:t})}recordGauge(t,i){}identify(t,i,n={},s){}error(t,i){}track(t,i){const n=i.event;this.client.track(n?`${ko}:${n}`:ko,Ci(B({},i),{sessionID:t}))}},Ih=class extends Qn{constructor(t,i){super(),Kt(this,"client"),this.client=new Zh(t,i)}getHooks(t){return[{getMetadata:()=>({name:"highlight.run/ld"}),afterIdentify:(i,n,s)=>(this.load(this.client),n)}]}init(t){return this._bufferCall("init",[t])}recordGauge(t,i){return this._bufferCall("recordGauge",[t,i])}identify(t,i,n={},s){return this._bufferCall("identify",[t,i,n,s])}error(t,i){return this._bufferCall("error",[t,i])}track(t,i){return this._bufferCall("track",[t,i])}};const Sh=e=>{e(window.location.href);const t=history.pushState;history.pushState=(r=>function(){var l=r.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),l})(history.pushState);const i=history.replaceState;history.replaceState=(r=>function(){var l=r.apply(this,arguments);return window.dispatchEvent(new Event("replacestate")),window.dispatchEvent(new Event("locationchange")),l})(history.replaceState);const n=()=>{window.dispatchEvent(new Event("locationchange"))};window.addEventListener("popstate",n);const s=function(){e(window.location.href)};return window.addEventListener("locationchange",s),()=>{window.removeEventListener("popstate",n),window.removeEventListener("locationchange",s),history.pushState=t,history.replaceState=i}},Xh="10.3.0",Vh={version:Xh},Gh=Vh.version;function Lo(e,t){return Rh(e)}function Ch(e){if(e.id.length)return`#${e.id}`;if(e.classList.length){let t=[];for(const i of e.classList)t.push(`.${i}`);return`${e.nodeName.toLowerCase()}${t.join(",")}`}return e.nodeName.toLowerCase()}const Rh=e=>{let t="";const i=e.getAttribute("class"),n=e.getAttribute("id");return n&&(t=t.concat(No(n,"#"))),i&&(t=t.concat(No(i,"."))),t===""&&(t=t.concat(e.tagName.toLowerCase())),t},No=(e,t)=>`${t}${e.trim().split(" ").join(t)}`,Wh=e=>{let t;const i=()=>{clearTimeout(t),t=setTimeout(()=>{var n,s;e({height:window.innerHeight,width:window.innerWidth,availHeight:window.screen.availHeight,availWidth:window.screen.availWidth,colorDepth:window.screen.colorDepth,pixelDepth:window.screen.pixelDepth,orientation:(s=(n=window.screen.orientation)==null?void 0:n.angle)!=null?s:0})},500)};return window.addEventListener("resize",i),i(),()=>window.removeEventListener("resize",i)};var Jo={exports:{}};/**
|
|
277
|
+
${Io}
|
|
278
|
+
`,Kd=(e,t,i,n)=>e();function Md(e,t=Kd){return{PushPayload(i,n){return t(s=>e.request(xd,i,B(B({},n),s)),"PushPayload","mutation",i)},PushSessionEvents(i,n){return t(s=>e.request(So,i,B(B({},n),s)),"PushSessionEvents","mutation",i)},identifySession(i,n){return t(s=>e.request(Td,i,B(B({},n),s)),"identifySession","mutation",i)},addSessionProperties(i,n){return t(s=>e.request(Ld,i,B(B({},n),s)),"addSessionProperties","mutation",i)},pushMetrics(i,n){return t(s=>e.request(Nd,i,B(B({},n),s)),"pushMetrics","mutation",i)},addSessionFeedback(i,n){return t(s=>e.request(Jd,i,B(B({},n),s)),"addSessionFeedback","mutation",i)},initializeSession(i,n){return t(s=>e.request(Yd,i,B(B({},n),s)),"initializeSession","mutation",i)},Ignore(i,n){return t(s=>e.request(Fd,i,B(B({},n),s)),"Ignore","query",i)},GetSamplingConfig(i,n){return t(s=>e.request(Ud,i,B(B({},n),s)),"GetSamplingConfig","query",i)}}}function Od(){var e=document.createElement("canvas");return e.getContext&&e.getContext("2d")?e.toDataURL("image/webp").indexOf("data:image/webp")==0:!1}function Ed(){return Od()?{type:"image/webp",quality:.9}:{type:"image/jpeg",quality:.6}}const zd="telemetry.sdk.name",Hd="telemetry.sdk.version",Xo=1e3,Pd=1e3*2,Dd=4*60*60*1e3,ds=15*60*1e3,Vo={normal:{bytes:1e7,time:4*60*1e3},canvas:{bytes:16e6,time:5e3}},Bd=100,Go="app.highlight.io",Qd="https://app.launchdarkly.com",jd={"observability.ld-stg.launchdarkly.com":"ld-stg.launchdarkly.com","observability.app.launchdarkly.com":"app.launchdarkly.com","observability.app.ld.catamorphic.com":"app.ld.catamorphic.com"},Ad="/projects/default",_d=new RegExp("pub\\.(?<domain>.+)");/*! js-cookie v3.0.5 | MIT */function Ni(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)e[n]=i[n]}return e}var $d={read:function(e){return e[0]==='"'&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function hs(e,t){function i(s,r,l){if(typeof document<"u"){l=Ni({},t,l),typeof l.expires=="number"&&(l.expires=new Date(Date.now()+l.expires*864e5)),l.expires&&(l.expires=l.expires.toUTCString()),s=encodeURIComponent(s).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var o="";for(var a in l)l[a]&&(o+="; "+a,l[a]!==!0&&(o+="="+l[a].split(";")[0]));return document.cookie=s+"="+e.write(r,s)+o}}function n(s){if(!(typeof document>"u"||arguments.length&&!s)){for(var r=document.cookie?document.cookie.split("; "):[],l={},o=0;o<r.length;o++){var a=r[o].split("="),c=a.slice(1).join("=");try{var u=decodeURIComponent(a[0]);if(l[u]=e.read(c,u),s===u)break}catch{}}return s?l[s]:l}}return Object.create({set:i,get:n,remove:function(s,r){i(s,"",Ni({},r,{expires:-1}))},withAttributes:function(s){return hs(this.converter,Ni({},this.attributes,s))},withConverter:function(s){return hs(Ni({},this.converter,s),this.attributes)}},{attributes:{value:Object.freeze(t)},converter:{value:Object.freeze(e)}})}var Ji=hs($d,{path:"/"}),ps=(e=>(e.CLIENT_ID="highlightClientID",e))(ps||{});let Yi="localStorage",ms=!0,qd=class{constructor(){Kt(this,"storage",{})}get length(){return Object.keys(this.storage).length}key(t){var i;return(i=Object.keys(this.storage)[t])!=null?i:null}getItem(t){var i;return(i=this.storage[t])!=null?i:""}setItem(t,i){this.storage[t]=i}removeItem(t){delete this.storage[t]}},eh=class{getItem(t){var i;return(i=Ji.get(t))!=null?i:""}setItem(t,i){if(!ms)return;const n=new Date;n.setTime(n.getTime()+ds),Ji.set(t,i,{expires:n})}removeItem(t){ms&&Ji.remove(t)}keys(){var t;return Object.keys((t=Ji.get())!=null?t:{})}};const yt=new qd,gt=new eh,Fi=()=>{let e=null;if(typeof window>"u")return yt;try{switch(Yi){case"localStorage":e=window.localStorage;break;case"sessionStorage":e=window.sessionStorage;break}e||(ht("storage","getPersistentStorage","debug",`persistent storage was not found for mode ${Yi}; using global storage`),e=yt)}catch(t){ht("storage","getPersistentStorage","debug","failed to get persistent storage; using global storage",t),e=yt}return e},th=e=>{Yi=e},Co=e=>{ms=e},Ge=e=>{try{return Fi().getItem(e)}catch(t){return ht("storage","getItem","debug",`failed to get item ${e}; using global storage`,t),yt.getItem(e)}},Ee=(e,t)=>{gt.setItem(e,t);try{return Fi().setItem(e,t)}catch(i){return ht("storage","setItem","debug",`failed to set item ${e}; using global storage`,i),yt.setItem(e,t)}},Ui=e=>{gt.removeItem(e);try{return Fi().removeItem(e)}catch(t){return ht("storage","removeItem","debug",`failed to remove item ${e}; using global storage`,t),yt.removeItem(e)}},ih=e=>{if(Yi==="sessionStorage"){console.warn("highlight.io cannot use local storage; segment integration will not work");return}if(typeof window>"u"){console.warn("highlight.io cannot use local storage (not a window); segment integration will not work");return}const t=window.localStorage.setItem;window.localStorage.setItem=function(){const[i,n]=arguments;e({keyName:i,keyValue:n}),t.apply(this,[i,n])}};var be=(e=>(e.SEGMENT_LAST_SENT_HASH_KEY="HIGHLIGHT_SEGMENT_LAST_SENT_HASH_KEY",e.SESSION_ID="sessionID",e.SESSION_DATA="sessionData",e.USER_IDENTIFIER="highlightIdentifier",e.USER_OBJECT="highlightUserObject",e))(be||{});const Ki=e=>`${be.SESSION_DATA}_${e}`,nh=()=>{var e;return typeof globalThis<"u"&&(e=globalThis.persistentSessionSecureID)!=null&&e.length?globalThis.persistentSessionSecureID:Ro()},sh=e=>{typeof globalThis<"u"&&e!=null&&e.length&&(globalThis.persistentSessionSecureID=e)},Ro=()=>{var e;return(e=Ge(be.SESSION_ID))!=null?e:""},zt=e=>{Ee(be.SESSION_ID,e)},rh=e=>{const t=Ki(e);return JSON.parse(Ge(t)||"{}")},Mi=e=>{e||(e=Ro());let t=rh(e);if(t&&t.lastPushTime&&Date.now()-t.lastPushTime<ds)return t;Ui(Ki(e))},nt=function(e){if(!(e!=null&&e.sessionSecureID))return;const t=e.sessionSecureID;sh(t);const i=Ki(t);Ee(i,JSON.stringify(e)),lh(i)},oh=function(){const e=gt.getItem(be.SESSION_ID);zt(e);const t=Ki(e),i=gt.getItem(t);try{nt(JSON.parse(i))}catch{}};function lh(e){var t;const i=`${be.SESSION_DATA}_`,n=new Set,s=Fi();for(let r=s.length-1;r>=0;r--){const l=s.key(r);l&&l.startsWith(i)&&l!==e&&n.add(l)}for(const r of gt.keys())r.startsWith(i)&&r!==e&&n.add(r);for(const r of n){let l=!0;try{const o=Ge(r)||gt.getItem(r)||"{}",a=JSON.parse(o),c=(t=a.lastPushTime)!=null?t:a.sessionStartTime;l=c===void 0||Date.now()-c>=ds}catch{}l&&(ht("highlightSession","pruneSessionData","debug",`removing session data for stale key ${r}`),Ui(r))}}var Wo=(e=>(e.BillingQuotaExceeded="BillingQuotaExceeded",e))(Wo||{});const ah=3,ch=1e3,uh=500,dh=[Wo.BillingQuotaExceeded.toString()],hh=e=>{var t;return((t=e.response.errors)==null?void 0:t.find(i=>dh.includes(i.message)))===void 0},ph=()=>{const e=(t,i,n,s,r=0)=>pt(void 0,null,function*(){try{return yield t()}catch(l){if(l instanceof bo&&!hh(l))throw l;if(r<ah)return yield new Promise(o=>setTimeout(o,ch+uh*Math.pow(2,r))),yield e(t,i,n,s,r+1);throw console.error(`highlight.io: data request failed after ${r} retries`),l}});return e},vo="feature_flag",ko="launchdarkly",mh=`${vo}.set.id`,fh=`${vo}.provider.name`,bh=`${ko}.application.id`,yh=`${ko}.application.version`,gh="$ld:telemetry:session:init",wo="$ld:telemetry:track";function xo(e){return e.includes("%")||e.includes(":")?e.replace(/%/g,"%25").replace(/:/g,"%3A"):e}function To(e){return e.kind==="multi"}function Lo(e){return To(e)?Object.keys(e).sort().filter(t=>t!=="kind").map(t=>`${t}:${xo(e[t].key)}`).join(":"):"kind"in e&&e.kind==="user"?e.key:"kind"in e?`${e.kind}:${xo(e.key)}`:e.key}function Zh(e){return To(e)?Object.keys(e).sort().filter(t=>t!=="kind").map(t=>({[t]:e[t].key})).reduce((t,i)=>B(B({},t),i),{}):"kind"in e?{[e.kind]:e.key}:{user:e.key}}let Ih=class{constructor(t,i){Kt(this,"client"),Kt(this,"metadata"),this.client=t,this.metadata=i}getHooks(t){return[]}init(t){this.client.track(gh,{sessionID:t})}recordGauge(t,i){}identify(t,i,n={},s){}error(t,i){}track(t,i){const n=i.event;this.client.track(n?`${wo}:${n}`:wo,Gi(B({},i),{sessionID:t}))}},Sh=class extends jn{constructor(t,i){super(),Kt(this,"client"),this.client=new Ih(t,i)}getHooks(t){return[{getMetadata:()=>({name:"highlight.run/ld"}),afterIdentify:(i,n,s)=>(this.load(this.client),n)}]}init(t){return this._bufferCall("init",[t])}recordGauge(t,i){return this._bufferCall("recordGauge",[t,i])}identify(t,i,n={},s){return this._bufferCall("identify",[t,i,n,s])}error(t,i){return this._bufferCall("error",[t,i])}track(t,i){return this._bufferCall("track",[t,i])}};const Xh=e=>{e(window.location.href);const t=history.pushState;history.pushState=(r=>function(){var l=r.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),l})(history.pushState);const i=history.replaceState;history.replaceState=(r=>function(){var l=r.apply(this,arguments);return window.dispatchEvent(new Event("replacestate")),window.dispatchEvent(new Event("locationchange")),l})(history.replaceState);const n=()=>{window.dispatchEvent(new Event("locationchange"))};window.addEventListener("popstate",n);const s=function(){e(window.location.href)};return window.addEventListener("locationchange",s),()=>{window.removeEventListener("popstate",n),window.removeEventListener("locationchange",s),history.pushState=t,history.replaceState=i}},Vh="10.3.1",Gh={version:Vh},Ch=Gh.version;function No(e,t){return Wh(e)}function Rh(e){if(e.id.length)return`#${e.id}`;if(e.classList.length){let t=[];for(const i of e.classList)t.push(`.${i}`);return`${e.nodeName.toLowerCase()}${t.join(",")}`}return e.nodeName.toLowerCase()}const Wh=e=>{let t="";const i=e.getAttribute("class"),n=e.getAttribute("id");return n&&(t=t.concat(Jo(n,"#"))),i&&(t=t.concat(Jo(i,"."))),t===""&&(t=t.concat(e.tagName.toLowerCase())),t},Jo=(e,t)=>`${t}${e.trim().split(" ").join(t)}`,vh=e=>{let t;const i=()=>{clearTimeout(t),t=setTimeout(()=>{var n,s;e({height:window.innerHeight,width:window.innerWidth,availHeight:window.screen.availHeight,availWidth:window.screen.availWidth,colorDepth:window.screen.colorDepth,pixelDepth:window.screen.pixelDepth,orientation:(s=(n=window.screen.orientation)==null?void 0:n.angle)!=null?s:0})},500)};return window.addEventListener("resize",i),i(),()=>window.removeEventListener("resize",i)};var Yo={exports:{}};/**
|
|
279
279
|
* @preserve
|
|
280
280
|
* JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)
|
|
281
281
|
*
|
|
@@ -285,77 +285,77 @@ this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names`):l
|
|
|
285
285
|
* @see http://github.com/garycourt/murmurhash-js
|
|
286
286
|
* @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
|
|
287
287
|
* @see http://sites.google.com/site/murmurhash/
|
|
288
|
-
*/(function(e){(function(){var t;function i(n,s){var r=this instanceof i?this:t;if(r.reset(s),typeof n=="string"&&n.length>0&&r.hash(n),r!==this)return r}i.prototype.hash=function(n){var s,r,l,o,a;switch(a=n.length,this.len+=a,r=this.k1,l=0,this.rem){case 0:r^=a>l?n.charCodeAt(l++)&65535:0;case 1:r^=a>l?(n.charCodeAt(l++)&65535)<<8:0;case 2:r^=a>l?(n.charCodeAt(l++)&65535)<<16:0;case 3:r^=a>l?(n.charCodeAt(l)&255)<<24:0,r^=a>l?(n.charCodeAt(l++)&65280)>>8:0}if(this.rem=a+this.rem&3,a-=this.rem,a>0){for(s=this.h1;r=r*11601+(r&65535)*3432906752&4294967295,r=r<<15|r>>>17,r=r*13715+(r&65535)*461832192&4294967295,s^=r,s=s<<13|s>>>19,s=s*5+3864292196&4294967295,!(l>=a);)r=n.charCodeAt(l++)&65535^(n.charCodeAt(l++)&65535)<<8^(n.charCodeAt(l++)&65535)<<16,o=n.charCodeAt(l++),r^=(o&255)<<24^(o&65280)>>8;switch(r=0,this.rem){case 3:r^=(n.charCodeAt(l+2)&65535)<<16;case 2:r^=(n.charCodeAt(l+1)&65535)<<8;case 1:r^=n.charCodeAt(l)&65535}this.h1=s}return this.k1=r,this},i.prototype.result=function(){var n,s;return n=this.k1,s=this.h1,n>0&&(n=n*11601+(n&65535)*3432906752&4294967295,n=n<<15|n>>>17,n=n*13715+(n&65535)*461832192&4294967295,s^=n),s^=this.len,s^=s>>>16,s=s*51819+(s&65535)*2246770688&4294967295,s^=s>>>13,s=s*44597+(s&65535)*3266445312&4294967295,s^=s>>>16,s>>>0},i.prototype.reset=function(n){return this.h1=typeof n=="number"?n:0,this.rem=this.k1=this.len=0,this},t=new i,e.exports=i})()})(Jo);var vh=Jo.exports;const kh=ns(vh),fs=28,Zt="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",wh=2246822507,Pt=e=>{var t,i="";if(e){const n=kh(e).result();for(let s=0;s<fs;s++){const r=((n^s*wh)>>>0)%Zt.length;i+=Zt.charAt(r)}}else{const n=typeof window<"u"&&((t=window.crypto)==null?void 0:t.getRandomValues),s=new Uint32Array(fs);n&&window.crypto.getRandomValues(s);for(let r=0;r<fs;r++)n?i+=Zt.charAt(s[r]%Zt.length):i+=Zt.charAt(Math.floor(Math.random()*Zt.length))}return i};let xh=class{constructor(t){Kt(this,"sessionSecureID");try{t!=null&&t.storageMode&&eh(t?.storageMode),Go(!!(t!=null&&t.sessionCookie)),t!=null&&t.sessionCookie?rh():Go(!1)}catch(i){Xe("Error initializing @launchdarkly observability plugin","error",i)}}configureSession(t,i){try{const n=ih();let s=Mi(n);s!=null&&s.sessionSecureID?this.sessionSecureID=s.sessionSecureID:(i!=null&&i.sessionKey?this.sessionSecureID=Pt(`${t}-${i.sessionKey}`):this.sessionSecureID=Pt(),Ht(this.sessionSecureID),st({sessionSecureID:this.sessionSecureID,sessionKey:i?.sessionKey,projectID:0,sessionStartTime:Date.now(),lastPushTime:Date.now()}))}catch(n){Xe("Error configuring session in @launchdarkly observability plugin","error",n)}}};var Th=(e,t,i)=>new Promise((n,s)=>{var r=a=>{try{o(i.next(a))}catch(c){s(c)}},l=a=>{try{o(i.throw(a))}catch(c){s(c)}},o=a=>a.done?n(a.value):Promise.resolve(a.value).then(r,l);o((i=i.apply(e,t)).next())});class Yo extends Qn{getSession(){return this._isLoaded?this._bufferCall("getSession",[]):null}start(t){return Th(this,null,function*(){return this._sdk.start(t)})}stop(){return this._sdk.stop()}addSessionProperties(t){return this._bufferCall("addSessionProperties",[t])}getRecordingState(){return this._isLoaded?this._bufferCall("getRecordingState",[]):"NotRecording"}snapshot(t){return this._isLoaded?this._bufferCall("snapshot",[t]):Promise.resolve(void 0)}register(t,i){return this._bufferCall("register",[t,i])}}Re.LDRecord=void 0,typeof globalThis<"u"?globalThis.LDRecord?Re.LDRecord=globalThis.LDRecord:(Re.LDRecord=new Yo,globalThis.LDRecord=Re.LDRecord):Re.LDRecord=new Yo;var Lh=Object.defineProperty,Nh=Object.defineProperties,Jh=Object.getOwnPropertyDescriptors,Oi=Object.getOwnPropertySymbols,Fo=Object.prototype.hasOwnProperty,Uo=Object.prototype.propertyIsEnumerable,bs=(e,t,i)=>t in e?Lh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Y=(e,t)=>{for(var i in t||(t={}))Fo.call(t,i)&&bs(e,i,t[i]);if(Oi)for(var i of Oi(t))Uo.call(t,i)&&bs(e,i,t[i]);return e},he=(e,t)=>Nh(e,Jh(t)),It=(e,t)=>{var i={};for(var n in e)Fo.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(e!=null&&Oi)for(var n of Oi(e))t.indexOf(n)<0&&Uo.call(e,n)&&(i[n]=e[n]);return i},U=(e,t,i)=>bs(e,typeof t!="symbol"?t+"":t,i),ye=(e,t,i)=>new Promise((n,s)=>{var r=a=>{try{o(i.next(a))}catch(c){s(c)}},l=a=>{try{o(i.throw(a))}catch(c){s(c)}},o=a=>a.done?n(a.value):Promise.resolve(a.value).then(r,l);o((i=i.apply(e,t)).next())});const Yh={key:"_sid"},Fh="rrweb/sequential-id@1",Uh=e=>{const t=Yh;let i=0;return{name:Fh,eventProcessor(n){return Object.assign(n,{[t.key]:++i}),n},options:t}};var Kh=Object.defineProperty,Mh=(e,t,i)=>t in e?Kh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,C=(e,t,i)=>Mh(e,typeof t!="symbol"?t+"":t,i),Ko,Oh=Object.defineProperty,Eh=(e,t,i)=>t in e?Oh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Mo=(e,t,i)=>Eh(e,typeof t!="symbol"?t+"":t,i),ae=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(ae||{});const Ei=new Map,Oo=new WeakSet;function Eo(e){return e!==null&&typeof e=="object"&&"complete"in e&&"naturalWidth"in e&&"naturalHeight"in e&&"src"in e&&"onload"in e}function zh(e){if(Oo.has(e))return;Oo.add(e);const t=e.drawImage.bind(e);e.drawImage=function(i,...n){const s=Ei.get(e);s&&(s.cancelled=!0);const r=()=>{n.length===2&&Eo(i)&&n.push(i.naturalWidth||i.width,i.naturalHeight||i.height),t(i,...n)};if(Eo(i)&&!i.complete){const l={cancelled:!1};Ei.set(e,l);const o=()=>{l.cancelled||(Ei.delete(e),r())},a=()=>{if(!l.cancelled){Ei.delete(e);try{r()}catch{}}};i.onload=o,i.onerror=a}else r()}}const zo={Node:["childNodes","parentNode","parentElement","textContent"],ShadowRoot:["host","styleSheets"],Element:["shadowRoot","querySelector","querySelectorAll"],MutationObserver:[]},Ho={Node:["contains","getRootNode"],ShadowRoot:["getSelection"],Element:[],MutationObserver:["constructor"]},zi={},Hh=()=>!!globalThis.Zone;function ys(e){if(zi[e])return zi[e];const t=globalThis[e],i=t.prototype,n=e in zo?zo[e]:void 0,s=!!(n&&n.every(o=>{var a,c;return!!((c=(a=Object.getOwnPropertyDescriptor(i,o))==null?void 0:a.get)!=null&&c.toString().includes("[native code]"))})),r=e in Ho?Ho[e]:void 0,l=!!(r&&r.every(o=>{var a;return typeof i[o]=="function"&&((a=i[o])==null?void 0:a.toString().includes("[native code]"))}));if(s&&l&&!Hh())return zi[e]=t.prototype,t.prototype;try{const o=document.createElement("iframe");document.body.appendChild(o);const a=o.contentWindow;if(!a)return t.prototype;const c=a[e].prototype;return document.body.removeChild(o),c?zi[e]=c:i}catch{return i}}const gs={};function Ae(e,t,i){var n;const s=`${e}.${String(i)}`;if(gs[s])return gs[s].call(t);const r=ys(e),l=(n=Object.getOwnPropertyDescriptor(r,i))==null?void 0:n.get;return l?(gs[s]=l,l.call(t)):t[i]}const Zs={};function Po(e,t,i){const n=`${e}.${String(i)}`;if(Zs[n])return Zs[n].bind(t);const s=ys(e)[i];return typeof s!="function"?t[i]:(Zs[n]=s,s.bind(t))}function Ph(e){return Ae("Node",e,"childNodes")}function Dh(e){return Ae("Node",e,"parentNode")}function Bh(e){return Ae("Node",e,"parentElement")}function Qh(e){return Ae("Node",e,"textContent")}function jh(e,t){return Po("Node",e,"contains")(t)}function Ah(e){return Po("Node",e,"getRootNode")()}function _h(e){return!e||!("host"in e)?null:Ae("ShadowRoot",e,"host")}function $h(e){return e.styleSheets}function qh(e){return!e||!("shadowRoot"in e)?null:Ae("Element",e,"shadowRoot")}function ep(e,t){return Ae("Element",e,"querySelector")(t)}function tp(e,t){return Ae("Element",e,"querySelectorAll")(t)}function ip(){return ys("MutationObserver").constructor}function np(e,t,i){try{if(!(t in e))return()=>{};const n=e[t],s=i(n);return typeof s=="function"&&(s.prototype=s.prototype||{},Object.defineProperties(s,{__rrweb_original__:{enumerable:!1,value:n}})),e[t]=s,()=>{e[t]=n}}catch{return()=>{}}}const pe={childNodes:Ph,parentNode:Dh,parentElement:Bh,textContent:Qh,contains:jh,getRootNode:Ah,host:_h,styleSheets:$h,shadowRoot:qh,querySelector:ep,querySelectorAll:tp,mutationObserver:ip,patch:np,wrapCanvasContextDrawImage:zh};function Do(e){return e.nodeType===e.ELEMENT_NODE}function Dt(e){const t=e&&"host"in e&&"mode"in e&&pe.host(e)||null;return!!(t&&"shadowRoot"in t&&pe.shadowRoot(t)===e)}function Bt(e){return Object.prototype.toString.call(e)==="[object ShadowRoot]"}function sp(e){return e.includes(" background-clip: text;")&&!e.includes(" -webkit-background-clip: text;")&&(e=e.replace(/\sbackground-clip:\s*text;/g," -webkit-background-clip: text; background-clip: text;")),e}function rp(e){const{cssText:t}=e;if(t.split('"').length<3)return t;const i=["@import",`url(${JSON.stringify(e.href)})`];return e.layerName===""?i.push("layer"):e.layerName&&i.push(`layer(${e.layerName})`),e.supportsText&&i.push(`supports(${e.supportsText})`),e.media.length&&i.push(e.media.mediaText),i.join(" ")+";"}function Is(e){try{const t=e.rules||e.cssRules;if(!t)return null;let i=e.href;!i&&e.ownerNode&&e.ownerNode.ownerDocument&&(i=e.ownerNode.ownerDocument.location.href);const n=Array.from(t,s=>Bo(s,i)).join("");return sp(n)}catch{return null}}function Bo(e,t){if(lp(e)){let i;try{i=Is(e.styleSheet)||rp(e)}catch{i=e.cssText}return e.styleSheet.href?Di(i,e.styleSheet.href):i}else{let i=e.cssText;return ap(e)&&e.selectorText.includes(":")&&(i=op(i)),t?Di(i,t):i}}function op(e){const t=/(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm;return e.replace(t,"$1\\$2")}function lp(e){return"styleSheet"in e}function ap(e){return"selectorText"in e}class Qo{constructor(){Mo(this,"idNodeMap",new Map),Mo(this,"nodeMetaMap",new WeakMap)}getId(t){var i;if(!t)return-1;const n=(i=this.getMeta(t))==null?void 0:i.id;return n??-1}getNode(t){return this.idNodeMap.get(t)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(t){return this.nodeMetaMap.get(t)||null}removeNodeFromMap(t){const i=this.getId(t);this.idNodeMap.delete(i),t.childNodes&&t.childNodes.forEach(n=>this.removeNodeFromMap(n))}has(t){return this.idNodeMap.has(t)}hasNode(t){return this.nodeMetaMap.has(t)}add(t,i){const n=i.id;this.idNodeMap.set(n,t),this.nodeMetaMap.set(t,i)}replace(t,i){const n=this.getNode(t);if(n){const s=this.nodeMetaMap.get(n);s&&this.nodeMetaMap.set(i,s)}this.idNodeMap.set(t,i)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}}function cp(){return new Qo}function Hi({element:e,maskInputOptions:t,tagName:i,type:n,value:s,overwriteRecord:r,maskInputFn:l}){let o=s||"";return $o({maskInputOptions:t,tagName:i,type:n,overwriteRecord:r})&&(l?o=l(o,e):o="*".repeat(o.length)),o}function St(e){return e.toLowerCase()}const jo="__rrweb_original__";function up(e){const t=e.getContext("2d");if(!t)return!0;const i=50;for(let n=0;n<e.width;n+=i)for(let s=0;s<e.height;s+=i){const r=t.getImageData,l=jo in r?r[jo]:r;if(new Uint32Array(l.call(t,n,s,Math.min(i,e.width-n),Math.min(i,e.height-s)).data.buffer).some(o=>o!==0))return!1}return!0}function Pi(e){const t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?St(t):null}function Ao(e,t){var i;let n;try{n=new URL(e,window.location.href)}catch{return null}const s=/\.([0-9a-z]+)(?:$)/i,r=n.pathname.match(s);return(i=r?.[1])!=null?i:null}function dp(e){let t="";return e.indexOf("//")>-1?t=e.split("/").slice(0,3).join("/"):t=e.split("/")[0],t=t.split("?")[0],t}const hp=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,pp=/^(?:[a-z+]+:)?\/\//i,mp=/^www\..*/i,fp=/^(data:)([^,]*),(.*)/i;function Di(e,t){return(e||"").replace(hp,(i,n,s,r,l,o)=>{const a=s||l||o,c=n||r||"";if(!a)return i;if(pp.test(a)||mp.test(a))return`url(${c}${a}${c})`;if(fp.test(a))return`url(${c}${a}${c})`;if(a[0]==="/")return`url(${c}${dp(t)+a}${c})`;const u=t.split("/"),h=a.split("/");u.pop();for(const p of h)p!=="."&&(p===".."?u.pop():u.push(p));return`url(${c}${u.join("/")}${c})`})}function Bi(e,t=!1){return t?e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,""):e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,"").replace(/0px/g,"0")}function bp(e,t,i=!1){const n=Array.from(t.childNodes),s=[];let r=0;if(n.length>1&&e&&typeof e=="string"){let l=Bi(e,i);const o=l.length/e.length;for(let a=1;a<n.length;a++)if(n[a].textContent&&typeof n[a].textContent=="string"){const c=Bi(n[a].textContent,i),u=100;let h=3;for(;h<c.length&&(c[h].match(/[a-zA-Z0-9]/)||c.indexOf(c.substring(0,h),1)!==-1);h++);for(;h<c.length;h++){let p=c.substring(0,h),m=l.split(p),f=-1;if(m.length===2)f=m[0].length;else if(m.length>2&&m[0]===""&&n[a-1].textContent!=="")f=l.indexOf(p,1);else if(m.length===1){if(p=p.substring(0,p.length-1),m=l.split(p),m.length<=1)return s.push(e),s;h=u+1}else h===c.length-1&&(f=l.indexOf(p));if(m.length>=2&&h>u){const d=n[a-1].textContent;if(d&&typeof d=="string"){const S=Bi(d).length;f=l.indexOf(p,S)}f===-1&&(f=m[0].length)}if(f!==-1){let d=Math.floor(f/o);for(;d>0&&d<e.length;){if(r+=1,r>50*n.length)return s.push(e),s;const S=Bi(e.substring(0,d),i);if(S.length===f){s.push(e.substring(0,d)),e=e.substring(d),l=l.substring(f);break}else S.length<f?d+=Math.max(1,Math.floor((f-S.length)/o)):d-=Math.max(1,Math.floor((S.length-f)*o))}break}}}}return s.push(e),s}function yp(e,t){return bp(e,t).join("/* rr_split */")}function Ss(e){return e=e.replace(/[^ -~]+/g,""),e=e?.split(" ").map(t=>t?Math.random().toString(20).substring(2,t.length+2):"").join(" ")||"",e}function Xs(e){return e==="img"||e==="video"||e==="audio"||e==="source"}const gp=new RegExp(/[a-zA-Z0-9.!#$%&'*+=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*/),Zp=new RegExp(/[0-9]{9,16}/),Ip=new RegExp(/[0-9]{3}-?[0-9]{2}-?[0-9]{4}/),Sp=new RegExp(/[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}/),Xp=new RegExp(/[0-9]{4}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}/),Vp=new RegExp(/[0-9]{1,5}.?[0-9]{0,3}\s[a-zA-Z]{2,30}\s[a-zA-Z]{2,15}/),Gp=new RegExp(/(?:[0-9]{1,3}.){3}[0-9]{1,3}/),Cp=[gp,Zp,Ip,Sp,Xp,Vp,Gp];function _o(e){return e?Cp.some(t=>t.test(e)):!1}const $o=({maskInputOptions:e,tagName:t,type:i,overwriteRecord:n})=>{const s=i&&i.toLowerCase();return n!=="true"&&(!!e[t.toLowerCase()]||!!(s&&e[s]))};let Rp=1;const Wp=new RegExp("[^a-z0-9-_:]"),Qt=-2;function qo(){return Rp++}function vp(e){if(e instanceof HTMLFormElement)return"form";const t=St(e.tagName);return Wp.test(t)?"div":t}let Xt,el;const kp=/^[^ \t\n\r\u000c]+/,wp=/^[, \t\n\r\u000c]+/;function xp(e,t){if(t.trim()==="")return t;let i=0;function n(r){let l;const o=r.exec(t.substring(i));return o?(l=o[0],i+=l.length,l):""}const s=[];for(;n(wp),!(i>=t.length);){let r=n(kp);if(r.slice(-1)===",")r=Qi(e,r.substring(0,r.length-1)),s.push(r);else{let l="";r=Qi(e,r);let o=!1;for(;;){const a=t.charAt(i);if(a===""){s.push((r+l).trim());break}else if(o)a===")"&&(o=!1);else if(a===","){i+=1,s.push((r+l).trim());break}else a==="("&&(o=!0);l+=a,i+=1}}}return s.join(", ")}const tl=new WeakMap;function Qi(e,t){return!t||t.trim()===""?t:Vs(e,t)}function Tp(e){return!!(e.tagName==="svg"||e.ownerSVGElement)}function Vs(e,t){let i=tl.get(e);if(i||(i=e.createElement("a"),tl.set(e,i)),!t)t="";else if(t.startsWith("blob:")||t.startsWith("data:"))return t;return i.setAttribute("href",t),i.href}function il(e,t,i,n){return n&&(i==="src"||i==="href"&&!(t==="use"&&n[0]==="#")||i==="xlink:href"&&n[0]!=="#"||i==="background"&&(t==="table"||t==="td"||t==="th")?Qi(e,n):i==="srcset"?xp(e,n):i==="style"?Di(n,Vs(e)):t==="object"&&i==="data"?Qi(e,n):n)}function nl(e,t,i){return(e==="video"||e==="audio")&&t==="autoplay"}function sl(e,t,i){try{if(typeof t=="string"){if(e.classList.contains(t))return!0}else for(let n=e.classList.length;n--;){const s=e.classList[n];if(t.test(s))return!0}if(i)return e.matches(i)}catch{}return!1}function ji(e,t,i){if(!e)return!1;if(e.nodeType!==e.ELEMENT_NODE)return i?ji(pe.parentNode(e),t,i):!1;for(let n=e.classList.length;n--;){const s=e.classList[n];if(t.test(s))return!0}return i?ji(pe.parentNode(e),t,i):!1}function rl(e,t,i,n){let s;if(Do(e)){if(s=e,!pe.childNodes(s).length)return!1}else{if(pe.parentElement(e)===null)return!1;s=pe.parentElement(e)}try{if(typeof t=="string"){if(n){if(s.closest(`.${t}`))return!0}else if(s.classList.contains(t))return!0}else if(ji(s,t,n))return!0;if(i){if(n){if(s.closest(i))return!0}else if(s.matches(i))return!0}}catch{}return!1}function Lp(e,t,i){const n=e.contentWindow;if(!n)return;let s=!1,r;try{r=n.document.readyState}catch{return}if(r!=="complete"){const o=setTimeout(()=>{s||(t(),s=!0)},i);e.addEventListener("load",()=>{clearTimeout(o),s=!0,t()});return}const l="about:blank";if(n.location.href!==l||e.src===l||e.src==="")return setTimeout(t,0),e.addEventListener("load",t);e.addEventListener("load",t)}function Np(e,t,i){let n=!1,s;try{s=e.sheet}catch{return}if(s)return;const r=setTimeout(()=>{n||(t(),n=!0)},i);e.addEventListener("load",()=>{clearTimeout(r),n=!0,t()})}function Jp(e,t){const{doc:i,mirror:n,blockClass:s,blockSelector:r,needsMask:l,inlineStylesheet:o,maskInputOptions:a={},maskTextClass:c,maskTextFn:u,maskInputFn:h,dataURLOptions:p={},inlineImages:m,inlineVideos:f,recordCanvas:d,keepIframeSrcFn:S,newlyAddedElement:I=!1,cssCaptured:V=!1,privacySetting:R}=t,G=Yp(i,n);switch(e.nodeType){case e.DOCUMENT_NODE:return e.compatMode!=="CSS1Compat"?{type:ae.Document,childNodes:[],compatMode:e.compatMode}:{type:ae.Document,childNodes:[]};case e.DOCUMENT_TYPE_NODE:return{type:ae.DocumentType,name:e.name,publicId:e.publicId,systemId:e.systemId,rootId:G};case e.ELEMENT_NODE:return Up(e,{doc:i,blockClass:s,blockSelector:r,inlineStylesheet:o,maskInputOptions:a,maskInputFn:h,maskTextClass:c,dataURLOptions:p,inlineImages:m,inlineVideos:f,recordCanvas:d,keepIframeSrcFn:S,newlyAddedElement:I,privacySetting:R,rootId:G});case e.TEXT_NODE:return Fp(e,{doc:i,needsMask:l,maskTextFn:u,privacySetting:R,rootId:G,cssCaptured:V});case e.CDATA_SECTION_NODE:return{type:ae.CDATA,textContent:"",rootId:G};case e.COMMENT_NODE:return{type:ae.Comment,textContent:pe.textContent(e)||"",rootId:G};default:return!1}}function Yp(e,t){if(!t.hasNode(e))return;const i=t.getId(e);return i===1?void 0:i}function Fp(e,t){var i;const{needsMask:n,maskTextFn:s,privacySetting:r,rootId:l,cssCaptured:o}=t,a=pe.parentNode(e),c=a&&a.tagName;let u="";const h=c==="STYLE"?!0:void 0,p=c==="SCRIPT"?!0:void 0;p?u="SCRIPT_PLACEHOLDER":o||(u=pe.textContent(e),h&&u&&(u=Di(u,Vs(t.doc)))),!h&&!p&&u&&n&&(u=s?s(u,pe.parentElement(e)):u.replace(/[\S]/g,"*"));const m=r==="strict",f=(i=e.parentElement)==null?void 0:i.getAttribute("data-hl-record"),d=r==="default"&&_o(u);return(m||d)&&!f&&c&&!new Set(["HEAD","TITLE","STYLE","SCRIPT","HTML","BODY","NOSCRIPT"]).has(c)&&u&&(u=Ss(u)),{type:ae.Text,textContent:u||"",rootId:l}}function Up(e,t){const{doc:i,blockClass:n,blockSelector:s,inlineStylesheet:r,maskInputOptions:l={},maskInputFn:o,maskTextClass:a,dataURLOptions:c={},inlineImages:u,inlineVideos:h,recordCanvas:p,keepIframeSrcFn:m,newlyAddedElement:f=!1,privacySetting:d,rootId:S}=t;let I=sl(e,n,s);const V=sl(e,a,null),R=d==="strict";let G=vp(e),X={};const v=e.attributes.length;for(let g=0;g<v;g++){const W=e.attributes[g];nl(G,W.name)||(X[W.name]=il(i,G,St(W.name),W.value))}if(G==="link"&&r){const g=Array.from(i.styleSheets).find(J=>J.href===e.href);let W=null;g&&(W=Is(g)),W&&(delete X.rel,delete X.href,X._cssText=W)}if(G==="style"&&e.sheet){let g=Is(e.sheet);g&&(e.childNodes.length>1&&(g=yp(g,e)),X._cssText=g)}if(G==="input"||G==="textarea"||G==="select"){const g=e.value,W=e.checked;X.type!=="radio"&&X.type!=="checkbox"&&X.type!=="submit"&&X.type!=="button"&&g?X.value=Hi({element:e,type:Pi(e),tagName:G,value:g,overwriteRecord:e.getAttribute("data-hl-record"),maskInputOptions:l,maskInputFn:o}):W&&(X.checked=W)}if(G==="option"&&(e.selected&&!l.select?X.selected=!0:delete X.selected),G==="dialog"&&e.open&&(X.rr_open_mode=e.matches("dialog:modal")?"modal":"non-modal"),G==="canvas"&&p){if(e.__context==="2d")up(e);else if(!("__context"in e)){const g=e.toDataURL(c.type,c.quality),W=i.createElement("canvas");W.width=e.width,W.height=e.height;const J=W.toDataURL(c.type,c.quality);g!==J&&(X.rr_dataURL=g)}}if(G==="img"&&u&&!I&&!V&&!R){Xt||(Xt=i.createElement("canvas"),el=Xt.getContext("2d"));const g=e,W=g.currentSrc||g.getAttribute("src")||"<unknown-src>",J=g.crossOrigin,E=()=>{g.removeEventListener("load",E);try{Xt.width=g.naturalWidth,Xt.height=g.naturalHeight,el.drawImage(g,0,0),X.rr_dataURL=Xt.toDataURL(c.type,c.quality)}catch($){if(g.crossOrigin!=="anonymous"){g.crossOrigin="anonymous",g.complete&&g.naturalWidth!==0?E():g.addEventListener("load",E);return}else console.warn(`Cannot inline img src=${W}! Error: ${$}`)}g.crossOrigin==="anonymous"&&(J?X.crossOrigin=J:g.removeAttribute("crossorigin"))};g.complete&&g.naturalWidth!==0?E():g.addEventListener("load",E)}if(G==="audio"||G==="video"){const g=X;g.rr_mediaState=e.paused?"paused":"played",g.rr_mediaCurrentTime=e.currentTime,g.rr_mediaPlaybackRate=e.playbackRate,g.rr_mediaMuted=e.muted,g.rr_mediaLoop=e.loop,g.rr_mediaVolume=e.volume}if(f||(e.scrollLeft&&(X.rr_scrollLeft=e.scrollLeft),e.scrollTop&&(X.rr_scrollTop=e.scrollTop)),I||V||R&&Xs(G)){const{width:g,height:W}=e.getBoundingClientRect();X={class:X.class,rr_width:`${g}px`,rr_height:`${W}px`}}R&&Xs(G)&&(I=!0),G==="iframe"&&!m(X.src)&&(e.contentDocument||(X.rr_src=X.src),delete X.src);let k;try{customElements.get(G)&&(k=!0)}catch{}const w=g=>{const{width:W,height:J}=g.getBoundingClientRect();X={width:W,height:J,rr_width:`${W}px`,rr_height:`${J}px`,rr_inlined_video:!0,class:X.class,style:X.style},G="canvas";const E=i.createElement("canvas");E.width=e.width,E.height=e.height,X.rr_dataURL=E.toDataURL(c.type,c.quality)};if(G==="video"){const g=e;u&&(g.src===""||g.src.indexOf("blob:")!==-1)&&w(g),h&&g.src!==""&&g.src.indexOf("blob:")===-1&&w(g)}return{type:ae.Element,tagName:G,attributes:X,childNodes:[],isSVG:Tp(e)||void 0,needBlock:I,needMask:V,rootId:S,isCustom:k}}function ie(e){return e==null?"":e.toLowerCase()}function Kp(e,t){return!!(t.comment&&e.type===ae.Comment||e.type===ae.Element&&(t.script&&(e.tagName==="script"||e.tagName==="link"&&(e.attributes.rel==="preload"&&e.attributes.as==="script"||e.attributes.rel==="modulepreload")||e.tagName==="link"&&e.attributes.rel==="prefetch"&&typeof e.attributes.href=="string"&&Ao(e.attributes.href)==="js")||t.headFavicon&&(e.tagName==="link"&&e.attributes.rel==="shortcut icon"||e.tagName==="meta"&&(ie(e.attributes.name).match(/^msapplication-tile(image|color)$/)||ie(e.attributes.name)==="application-name"||ie(e.attributes.rel)==="icon"||ie(e.attributes.rel)==="apple-touch-icon"||ie(e.attributes.rel)==="shortcut icon"))||e.tagName==="meta"&&(t.headMetaDescKeywords&&ie(e.attributes.name).match(/^description|keywords$/)||t.headMetaSocial&&(ie(e.attributes.property).match(/^(og|twitter|fb):/)||ie(e.attributes.name).match(/^(og|twitter):/)||ie(e.attributes.name)==="pinterest")||t.headMetaRobots&&(ie(e.attributes.name)==="robots"||ie(e.attributes.name)==="googlebot"||ie(e.attributes.name)==="bingbot")||t.headMetaHttpEquiv&&e.attributes["http-equiv"]!==void 0||t.headMetaAuthorship&&(ie(e.attributes.name)==="author"||ie(e.attributes.name)==="generator"||ie(e.attributes.name)==="framework"||ie(e.attributes.name)==="publisher"||ie(e.attributes.name)==="progid"||ie(e.attributes.property).match(/^article:/)||ie(e.attributes.property).match(/^product:/))||t.headMetaVerification&&(ie(e.attributes.name)==="google-site-verification"||ie(e.attributes.name)==="yandex-verification"||ie(e.attributes.name)==="csrf-token"||ie(e.attributes.name)==="p:domain_verify"||ie(e.attributes.name)==="verify-v1"||ie(e.attributes.name)==="verification"||ie(e.attributes.name)==="shopify-checkout-api-token"))))}function Vt(e,t){const{doc:i,mirror:n,blockClass:s,blockSelector:r,maskTextClass:l,maskTextSelector:o,skipChild:a=!1,inlineStylesheet:c=!0,maskInputOptions:u={},maskTextFn:h,maskInputFn:p,slimDOMOptions:m,dataURLOptions:f={},inlineImages:d=!1,inlineVideos:S=!1,recordCanvas:I=!1,onSerialize:V,onIframeLoad:R,iframeLoadTimeout:G=5e3,onStylesheetLoad:X,stylesheetLoadTimeout:v=5e3,keepIframeSrcFn:k=()=>!1,newlyAddedElement:w=!1,cssCaptured:g=!1,privacySetting:W}=t;let{needsMask:J}=t,{preserveWhiteSpace:E=!0}=t;J||(J=rl(e,l,o,J===void 0));const $=Jp(e,{doc:i,mirror:n,blockClass:s,blockSelector:r,needsMask:J,inlineStylesheet:c,maskInputOptions:u,maskTextClass:l,maskTextFn:h,maskInputFn:p,dataURLOptions:f,inlineImages:d,inlineVideos:S,recordCanvas:I,keepIframeSrcFn:k,newlyAddedElement:w,cssCaptured:g,privacySetting:W});if(!$)return console.warn(e,"not serialized"),null;let b;n.hasNode(e)?b=n.getId(e):Kp($,m)||!E&&$.type===ae.Text&&!$.textContent.replace(/^\s+|\s+$/gm,"").length?b=Qt:b=qo();const y=Object.assign($,{id:b});if(n.add(e,y),b===Qt)return null;V&&V(e);let T=!a,F=W,K=W==="strict";if(y.type===ae.Element){if(T=T&&!y.needBlock,K||(K=!!y.needBlock||!!y.needMask),F=K?"strict":F,K&&Xs(y.tagName)){const j=e.cloneNode();j.src="",n.add(j,y)}delete y.needBlock,delete y.needMask;const A=pe.shadowRoot(e);A&&Bt(A)&&(y.isShadowHost=!0)}if((y.type===ae.Document||y.type===ae.Element)&&T){m.headWhitespace&&y.type===ae.Element&&y.tagName==="head"&&(E=!1);const A={doc:i,mirror:n,blockClass:s,blockSelector:r,needsMask:J,maskTextClass:l,maskTextSelector:o,skipChild:a,inlineStylesheet:c,maskInputOptions:u,maskTextFn:h,maskInputFn:p,slimDOMOptions:m,dataURLOptions:f,inlineImages:d,inlineVideos:S,recordCanvas:I,preserveWhiteSpace:E,onSerialize:V,onIframeLoad:R,iframeLoadTimeout:G,onStylesheetLoad:X,stylesheetLoadTimeout:v,keepIframeSrcFn:k,cssCaptured:!1,privacySetting:F};if(!(y.type===ae.Element&&y.tagName==="textarea"&&y.attributes.value!==void 0)){y.type===ae.Element&&y.attributes._cssText!==void 0&&typeof y.attributes._cssText=="string"&&(A.cssCaptured=!0);for(const de of Array.from(pe.childNodes(e))){const Se=Vt(de,A);Se&&y.childNodes.push(Se)}}let j=null;if(Do(e)&&(j=pe.shadowRoot(e)))for(const de of Array.from(pe.childNodes(j))){const Se=Vt(de,A);Se&&(Bt(j)&&(Se.isShadow=!0),y.childNodes.push(Se))}}const N=pe.parentNode(e);return N&&Dt(N)&&Bt(N)&&(y.isShadow=!0),y.type===ae.Element&&y.tagName==="iframe"&&Lp(e,()=>{const A=e.contentDocument;if(A&&R){const j=Vt(A,{doc:A,mirror:n,blockClass:s,blockSelector:r,needsMask:J,maskTextClass:l,maskTextSelector:o,skipChild:!1,inlineStylesheet:c,maskInputOptions:u,maskTextFn:h,maskInputFn:p,slimDOMOptions:m,dataURLOptions:f,inlineImages:d,inlineVideos:S,recordCanvas:I,preserveWhiteSpace:E,onSerialize:V,onIframeLoad:R,iframeLoadTimeout:G,onStylesheetLoad:X,stylesheetLoadTimeout:v,keepIframeSrcFn:k,privacySetting:W});j&&R(e,j)}},G),y.type===ae.Element&&y.tagName==="link"&&typeof y.attributes.rel=="string"&&(y.attributes.rel==="stylesheet"||y.attributes.rel==="preload"&&typeof y.attributes.href=="string"&&Ao(y.attributes.href)==="css")&&Np(e,()=>{if(X){const A=Vt(e,{doc:i,mirror:n,blockClass:s,blockSelector:r,needsMask:J,maskTextClass:l,maskTextSelector:o,skipChild:!1,inlineStylesheet:c,maskInputOptions:u,maskTextFn:h,maskInputFn:p,slimDOMOptions:m,dataURLOptions:f,inlineImages:d,inlineVideos:S,recordCanvas:I,preserveWhiteSpace:E,onSerialize:V,onIframeLoad:R,iframeLoadTimeout:G,onStylesheetLoad:X,stylesheetLoadTimeout:v,keepIframeSrcFn:k,privacySetting:W});A&&X(e,A)}},v),y}function Mp(e,t){const{mirror:i=new Qo,blockClass:n="highlight-block",blockSelector:s=null,maskTextClass:r="highlight-mask",maskTextSelector:l=null,inlineStylesheet:o=!0,inlineImages:a=!1,inlineVideos:c=!1,recordCanvas:u=!1,maskAllInputs:h=!1,maskTextFn:p,maskInputFn:m,slimDOM:f=!1,dataURLOptions:d,preserveWhiteSpace:S,onSerialize:I,onIframeLoad:V,iframeLoadTimeout:R,onStylesheetLoad:G,stylesheetLoadTimeout:X,keepIframeSrcFn:v=()=>!1,privacySetting:k="default"}=t||{};return Vt(e,{doc:e,mirror:i,blockClass:n,blockSelector:s,maskTextClass:r,maskTextSelector:l,skipChild:!1,inlineStylesheet:o,maskInputOptions:h===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:h===!1?{password:!0}:h,maskTextFn:p,maskInputFn:m,slimDOMOptions:f||f==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:f==="all",headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0,headMetaVerification:!0}:f||{},dataURLOptions:d,inlineImages:a,inlineVideos:c,recordCanvas:u,preserveWhiteSpace:S,onSerialize:I,onIframeLoad:V,iframeLoadTimeout:R,onStylesheetLoad:G,stylesheetLoadTimeout:X,keepIframeSrcFn:v,newlyAddedElement:!1,privacySetting:k})}function Op(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var i=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};i.prototype=t.prototype}else i={};return Object.defineProperty(i,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(i,n,s.get?s:{enumerable:!0,get:function(){return e[n]}})}),i}var Gs={exports:{}},M=String,ol=function(){return{isColorSupported:!1,reset:M,bold:M,dim:M,italic:M,underline:M,inverse:M,hidden:M,strikethrough:M,black:M,red:M,green:M,yellow:M,blue:M,magenta:M,cyan:M,white:M,gray:M,bgBlack:M,bgRed:M,bgGreen:M,bgYellow:M,bgBlue:M,bgMagenta:M,bgCyan:M,bgWhite:M,blackBright:M,redBright:M,greenBright:M,yellowBright:M,blueBright:M,magentaBright:M,cyanBright:M,whiteBright:M,bgBlackBright:M,bgRedBright:M,bgGreenBright:M,bgYellowBright:M,bgBlueBright:M,bgMagentaBright:M,bgCyanBright:M,bgWhiteBright:M}};Gs.exports=ol(),Gs.exports.createColors=ol;var Ep=Gs.exports;const zp={},Hp=Object.freeze(Object.defineProperty({__proto__:null,default:zp},Symbol.toStringTag,{value:"Module"})),xe=Op(Hp);let ll=Ep,al=xe,Cs=class au extends Error{constructor(t,i,n,s,r,l){super(t),this.name="CssSyntaxError",this.reason=t,r&&(this.file=r),s&&(this.source=s),l&&(this.plugin=l),typeof i<"u"&&typeof n<"u"&&(typeof i=="number"?(this.line=i,this.column=n):(this.line=i.line,this.column=i.column,this.endLine=n.line,this.endColumn=n.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,au)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(t){if(!this.source)return"";let i=this.source;t==null&&(t=ll.isColorSupported);let n=u=>u,s=u=>u,r=u=>u;if(t){let{bold:u,gray:h,red:p}=ll.createColors(!0);s=m=>u(p(m)),n=m=>h(m),al&&(r=m=>al(m))}let l=i.split(/\r?\n/),o=Math.max(this.line-3,0),a=Math.min(this.line+2,l.length),c=String(a).length;return l.slice(o,a).map((u,h)=>{let p=o+1+h,m=" "+(" "+p).slice(-c)+" | ";if(p===this.line){if(u.length>160){let d=20,S=Math.max(0,this.column-d),I=Math.max(this.column+d,this.endColumn+d),V=u.slice(S,I),R=n(m.replace(/\d/g," "))+u.slice(0,Math.min(this.column-1,d-1)).replace(/[^\t]/g," ");return s(">")+n(m)+r(V)+`
|
|
288
|
+
*/(function(e){(function(){var t;function i(n,s){var r=this instanceof i?this:t;if(r.reset(s),typeof n=="string"&&n.length>0&&r.hash(n),r!==this)return r}i.prototype.hash=function(n){var s,r,l,o,a;switch(a=n.length,this.len+=a,r=this.k1,l=0,this.rem){case 0:r^=a>l?n.charCodeAt(l++)&65535:0;case 1:r^=a>l?(n.charCodeAt(l++)&65535)<<8:0;case 2:r^=a>l?(n.charCodeAt(l++)&65535)<<16:0;case 3:r^=a>l?(n.charCodeAt(l)&255)<<24:0,r^=a>l?(n.charCodeAt(l++)&65280)>>8:0}if(this.rem=a+this.rem&3,a-=this.rem,a>0){for(s=this.h1;r=r*11601+(r&65535)*3432906752&4294967295,r=r<<15|r>>>17,r=r*13715+(r&65535)*461832192&4294967295,s^=r,s=s<<13|s>>>19,s=s*5+3864292196&4294967295,!(l>=a);)r=n.charCodeAt(l++)&65535^(n.charCodeAt(l++)&65535)<<8^(n.charCodeAt(l++)&65535)<<16,o=n.charCodeAt(l++),r^=(o&255)<<24^(o&65280)>>8;switch(r=0,this.rem){case 3:r^=(n.charCodeAt(l+2)&65535)<<16;case 2:r^=(n.charCodeAt(l+1)&65535)<<8;case 1:r^=n.charCodeAt(l)&65535}this.h1=s}return this.k1=r,this},i.prototype.result=function(){var n,s;return n=this.k1,s=this.h1,n>0&&(n=n*11601+(n&65535)*3432906752&4294967295,n=n<<15|n>>>17,n=n*13715+(n&65535)*461832192&4294967295,s^=n),s^=this.len,s^=s>>>16,s=s*51819+(s&65535)*2246770688&4294967295,s^=s>>>13,s=s*44597+(s&65535)*3266445312&4294967295,s^=s>>>16,s>>>0},i.prototype.reset=function(n){return this.h1=typeof n=="number"?n:0,this.rem=this.k1=this.len=0,this},t=new i,e.exports=i})()})(Yo);var kh=Yo.exports;const wh=ss(kh),fs=28,Zt="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",xh=2246822507,Ht=e=>{var t,i="";if(e){const n=wh(e).result();for(let s=0;s<fs;s++){const r=((n^s*xh)>>>0)%Zt.length;i+=Zt.charAt(r)}}else{const n=typeof window<"u"&&((t=window.crypto)==null?void 0:t.getRandomValues),s=new Uint32Array(fs);n&&window.crypto.getRandomValues(s);for(let r=0;r<fs;r++)n?i+=Zt.charAt(s[r]%Zt.length):i+=Zt.charAt(Math.floor(Math.random()*Zt.length))}return i};let Th=class{constructor(t){Kt(this,"sessionSecureID");try{t!=null&&t.storageMode&&th(t?.storageMode),Co(!!(t!=null&&t.sessionCookie)),t!=null&&t.sessionCookie?oh():Co(!1)}catch(i){Xe("Error initializing @launchdarkly observability plugin","error",i)}}configureSession(t,i){try{const n=nh();let s=Mi(n);s!=null&&s.sessionSecureID?this.sessionSecureID=s.sessionSecureID:(i!=null&&i.sessionKey?this.sessionSecureID=Ht(`${t}-${i.sessionKey}`):this.sessionSecureID=Ht(),zt(this.sessionSecureID),nt({sessionSecureID:this.sessionSecureID,sessionKey:i?.sessionKey,projectID:0,sessionStartTime:Date.now(),lastPushTime:Date.now()}))}catch(n){Xe("Error configuring session in @launchdarkly observability plugin","error",n)}}};var Lh=(e,t,i)=>new Promise((n,s)=>{var r=a=>{try{o(i.next(a))}catch(c){s(c)}},l=a=>{try{o(i.throw(a))}catch(c){s(c)}},o=a=>a.done?n(a.value):Promise.resolve(a.value).then(r,l);o((i=i.apply(e,t)).next())});class Fo extends jn{getSession(){return this._isLoaded?this._bufferCall("getSession",[]):null}start(t){return Lh(this,null,function*(){return this._sdk.start(t)})}stop(){return this._sdk.stop()}addSessionProperties(t){return this._bufferCall("addSessionProperties",[t])}getRecordingState(){return this._isLoaded?this._bufferCall("getRecordingState",[]):"NotRecording"}snapshot(t){return this._isLoaded?this._bufferCall("snapshot",[t]):Promise.resolve(void 0)}register(t,i){return this._bufferCall("register",[t,i])}}Re.LDRecord=void 0,typeof globalThis<"u"?globalThis.LDRecord?Re.LDRecord=globalThis.LDRecord:(Re.LDRecord=new Fo,globalThis.LDRecord=Re.LDRecord):Re.LDRecord=new Fo;var Nh=Object.defineProperty,Jh=Object.defineProperties,Yh=Object.getOwnPropertyDescriptors,Oi=Object.getOwnPropertySymbols,Uo=Object.prototype.hasOwnProperty,Ko=Object.prototype.propertyIsEnumerable,bs=(e,t,i)=>t in e?Nh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Y=(e,t)=>{for(var i in t||(t={}))Uo.call(t,i)&&bs(e,i,t[i]);if(Oi)for(var i of Oi(t))Ko.call(t,i)&&bs(e,i,t[i]);return e},he=(e,t)=>Jh(e,Yh(t)),It=(e,t)=>{var i={};for(var n in e)Uo.call(e,n)&&t.indexOf(n)<0&&(i[n]=e[n]);if(e!=null&&Oi)for(var n of Oi(e))t.indexOf(n)<0&&Ko.call(e,n)&&(i[n]=e[n]);return i},U=(e,t,i)=>bs(e,typeof t!="symbol"?t+"":t,i),ye=(e,t,i)=>new Promise((n,s)=>{var r=a=>{try{o(i.next(a))}catch(c){s(c)}},l=a=>{try{o(i.throw(a))}catch(c){s(c)}},o=a=>a.done?n(a.value):Promise.resolve(a.value).then(r,l);o((i=i.apply(e,t)).next())});const Fh={key:"_sid"},Uh="rrweb/sequential-id@1",Kh=e=>{const t=Fh;let i=0;return{name:Uh,eventProcessor(n){return Object.assign(n,{[t.key]:++i}),n},options:t}};var Mh=Object.defineProperty,Oh=(e,t,i)=>t in e?Mh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,C=(e,t,i)=>Oh(e,typeof t!="symbol"?t+"":t,i),Mo,Eh=Object.defineProperty,zh=(e,t,i)=>t in e?Eh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Oo=(e,t,i)=>zh(e,typeof t!="symbol"?t+"":t,i),ae=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(ae||{});const Ei=new Map,Eo=new WeakSet;function zo(e){return e!==null&&typeof e=="object"&&"complete"in e&&"naturalWidth"in e&&"naturalHeight"in e&&"src"in e&&"onload"in e}function Hh(e){if(Eo.has(e))return;Eo.add(e);const t=e.drawImage.bind(e);e.drawImage=function(i,...n){const s=Ei.get(e);s&&(s.cancelled=!0);const r=()=>{n.length===2&&zo(i)&&n.push(i.naturalWidth||i.width,i.naturalHeight||i.height),t(i,...n)};if(zo(i)&&!i.complete){const l={cancelled:!1};Ei.set(e,l);const o=()=>{l.cancelled||(Ei.delete(e),r())},a=()=>{if(!l.cancelled){Ei.delete(e);try{r()}catch{}}};i.onload=o,i.onerror=a}else r()}}const Ho={Node:["childNodes","parentNode","parentElement","textContent"],ShadowRoot:["host","styleSheets"],Element:["shadowRoot","querySelector","querySelectorAll"],MutationObserver:[]},Po={Node:["contains","getRootNode"],ShadowRoot:["getSelection"],Element:[],MutationObserver:["constructor"]},zi={},Ph=()=>!!globalThis.Zone;function ys(e){if(zi[e])return zi[e];const t=globalThis[e],i=t.prototype,n=e in Ho?Ho[e]:void 0,s=!!(n&&n.every(o=>{var a,c;return!!((c=(a=Object.getOwnPropertyDescriptor(i,o))==null?void 0:a.get)!=null&&c.toString().includes("[native code]"))})),r=e in Po?Po[e]:void 0,l=!!(r&&r.every(o=>{var a;return typeof i[o]=="function"&&((a=i[o])==null?void 0:a.toString().includes("[native code]"))}));if(s&&l&&!Ph())return zi[e]=t.prototype,t.prototype;try{const o=document.createElement("iframe");document.body.appendChild(o);const a=o.contentWindow;if(!a)return t.prototype;const c=a[e].prototype;return document.body.removeChild(o),c?zi[e]=c:i}catch{return i}}const gs={};function Ae(e,t,i){var n;const s=`${e}.${String(i)}`;if(gs[s])return gs[s].call(t);const r=ys(e),l=(n=Object.getOwnPropertyDescriptor(r,i))==null?void 0:n.get;return l?(gs[s]=l,l.call(t)):t[i]}const Zs={};function Do(e,t,i){const n=`${e}.${String(i)}`;if(Zs[n])return Zs[n].bind(t);const s=ys(e)[i];return typeof s!="function"?t[i]:(Zs[n]=s,s.bind(t))}function Dh(e){return Ae("Node",e,"childNodes")}function Bh(e){return Ae("Node",e,"parentNode")}function Qh(e){return Ae("Node",e,"parentElement")}function jh(e){return Ae("Node",e,"textContent")}function Ah(e,t){return Do("Node",e,"contains")(t)}function _h(e){return Do("Node",e,"getRootNode")()}function $h(e){return!e||!("host"in e)?null:Ae("ShadowRoot",e,"host")}function qh(e){return e.styleSheets}function ep(e){return!e||!("shadowRoot"in e)?null:Ae("Element",e,"shadowRoot")}function tp(e,t){return Ae("Element",e,"querySelector")(t)}function ip(e,t){return Ae("Element",e,"querySelectorAll")(t)}function np(){return ys("MutationObserver").constructor}function sp(e,t,i){try{if(!(t in e))return()=>{};const n=e[t],s=i(n);return typeof s=="function"&&(s.prototype=s.prototype||{},Object.defineProperties(s,{__rrweb_original__:{enumerable:!1,value:n}})),e[t]=s,()=>{e[t]=n}}catch{return()=>{}}}const pe={childNodes:Dh,parentNode:Bh,parentElement:Qh,textContent:jh,contains:Ah,getRootNode:_h,host:$h,styleSheets:qh,shadowRoot:ep,querySelector:tp,querySelectorAll:ip,mutationObserver:np,patch:sp,wrapCanvasContextDrawImage:Hh};function Bo(e){return e.nodeType===e.ELEMENT_NODE}function Pt(e){const t=e&&"host"in e&&"mode"in e&&pe.host(e)||null;return!!(t&&"shadowRoot"in t&&pe.shadowRoot(t)===e)}function Dt(e){return Object.prototype.toString.call(e)==="[object ShadowRoot]"}function rp(e){return e.includes(" background-clip: text;")&&!e.includes(" -webkit-background-clip: text;")&&(e=e.replace(/\sbackground-clip:\s*text;/g," -webkit-background-clip: text; background-clip: text;")),e}function op(e){const{cssText:t}=e;if(t.split('"').length<3)return t;const i=["@import",`url(${JSON.stringify(e.href)})`];return e.layerName===""?i.push("layer"):e.layerName&&i.push(`layer(${e.layerName})`),e.supportsText&&i.push(`supports(${e.supportsText})`),e.media.length&&i.push(e.media.mediaText),i.join(" ")+";"}function Is(e){try{const t=e.rules||e.cssRules;if(!t)return null;let i=e.href;!i&&e.ownerNode&&e.ownerNode.ownerDocument&&(i=e.ownerNode.ownerDocument.location.href);const n=Array.from(t,s=>Qo(s,i)).join("");return rp(n)}catch{return null}}function Qo(e,t){if(ap(e)){let i;try{i=Is(e.styleSheet)||op(e)}catch{i=e.cssText}return e.styleSheet.href?Di(i,e.styleSheet.href):i}else{let i=e.cssText;return cp(e)&&e.selectorText.includes(":")&&(i=lp(i)),t?Di(i,t):i}}function lp(e){const t=/(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm;return e.replace(t,"$1\\$2")}function ap(e){return"styleSheet"in e}function cp(e){return"selectorText"in e}class jo{constructor(){Oo(this,"idNodeMap",new Map),Oo(this,"nodeMetaMap",new WeakMap)}getId(t){var i;if(!t)return-1;const n=(i=this.getMeta(t))==null?void 0:i.id;return n??-1}getNode(t){return this.idNodeMap.get(t)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(t){return this.nodeMetaMap.get(t)||null}removeNodeFromMap(t){const i=this.getId(t);this.idNodeMap.delete(i),t.childNodes&&t.childNodes.forEach(n=>this.removeNodeFromMap(n))}has(t){return this.idNodeMap.has(t)}hasNode(t){return this.nodeMetaMap.has(t)}add(t,i){const n=i.id;this.idNodeMap.set(n,t),this.nodeMetaMap.set(t,i)}replace(t,i){const n=this.getNode(t);if(n){const s=this.nodeMetaMap.get(n);s&&this.nodeMetaMap.set(i,s)}this.idNodeMap.set(t,i)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}}function up(){return new jo}function Hi({element:e,maskInputOptions:t,tagName:i,type:n,value:s,overwriteRecord:r,maskInputFn:l}){let o=s||"";return qo({maskInputOptions:t,tagName:i,type:n,overwriteRecord:r})&&(l?o=l(o,e):o="*".repeat(o.length)),o}function St(e){return e.toLowerCase()}const Ao="__rrweb_original__";function dp(e){const t=e.getContext("2d");if(!t)return!0;const i=50;for(let n=0;n<e.width;n+=i)for(let s=0;s<e.height;s+=i){const r=t.getImageData,l=Ao in r?r[Ao]:r;if(new Uint32Array(l.call(t,n,s,Math.min(i,e.width-n),Math.min(i,e.height-s)).data.buffer).some(o=>o!==0))return!1}return!0}function Pi(e){const t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?St(t):null}function _o(e,t){var i;let n;try{n=new URL(e,window.location.href)}catch{return null}const s=/\.([0-9a-z]+)(?:$)/i,r=n.pathname.match(s);return(i=r?.[1])!=null?i:null}function hp(e){let t="";return e.indexOf("//")>-1?t=e.split("/").slice(0,3).join("/"):t=e.split("/")[0],t=t.split("?")[0],t}const pp=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,mp=/^(?:[a-z+]+:)?\/\//i,fp=/^www\..*/i,bp=/^(data:)([^,]*),(.*)/i;function Di(e,t){return(e||"").replace(pp,(i,n,s,r,l,o)=>{const a=s||l||o,c=n||r||"";if(!a)return i;if(mp.test(a)||fp.test(a))return`url(${c}${a}${c})`;if(bp.test(a))return`url(${c}${a}${c})`;if(a[0]==="/")return`url(${c}${hp(t)+a}${c})`;const u=t.split("/"),h=a.split("/");u.pop();for(const p of h)p!=="."&&(p===".."?u.pop():u.push(p));return`url(${c}${u.join("/")}${c})`})}function Bi(e,t=!1){return t?e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,""):e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,"").replace(/0px/g,"0")}function yp(e,t,i=!1){const n=Array.from(t.childNodes),s=[];let r=0;if(n.length>1&&e&&typeof e=="string"){let l=Bi(e,i);const o=l.length/e.length;for(let a=1;a<n.length;a++)if(n[a].textContent&&typeof n[a].textContent=="string"){const c=Bi(n[a].textContent,i),u=100;let h=3;for(;h<c.length&&(c[h].match(/[a-zA-Z0-9]/)||c.indexOf(c.substring(0,h),1)!==-1);h++);for(;h<c.length;h++){let p=c.substring(0,h),m=l.split(p),f=-1;if(m.length===2)f=m[0].length;else if(m.length>2&&m[0]===""&&n[a-1].textContent!=="")f=l.indexOf(p,1);else if(m.length===1){if(p=p.substring(0,p.length-1),m=l.split(p),m.length<=1)return s.push(e),s;h=u+1}else h===c.length-1&&(f=l.indexOf(p));if(m.length>=2&&h>u){const d=n[a-1].textContent;if(d&&typeof d=="string"){const S=Bi(d).length;f=l.indexOf(p,S)}f===-1&&(f=m[0].length)}if(f!==-1){let d=Math.floor(f/o);for(;d>0&&d<e.length;){if(r+=1,r>50*n.length)return s.push(e),s;const S=Bi(e.substring(0,d),i);if(S.length===f){s.push(e.substring(0,d)),e=e.substring(d),l=l.substring(f);break}else S.length<f?d+=Math.max(1,Math.floor((f-S.length)/o)):d-=Math.max(1,Math.floor((S.length-f)*o))}break}}}}return s.push(e),s}function gp(e,t){return yp(e,t).join("/* rr_split */")}function Ss(e){return e=e.replace(/[^ -~]+/g,""),e=e?.split(" ").map(t=>t?Math.random().toString(20).substring(2,t.length+2):"").join(" ")||"",e}function Xs(e){return e==="img"||e==="video"||e==="audio"||e==="source"}const Zp=new RegExp(/[a-zA-Z0-9.!#$%&'*+=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*/),Ip=new RegExp(/[0-9]{9,16}/),Sp=new RegExp(/[0-9]{3}-?[0-9]{2}-?[0-9]{4}/),Xp=new RegExp(/[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}/),Vp=new RegExp(/[0-9]{4}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}/),Gp=new RegExp(/[0-9]{1,5}.?[0-9]{0,3}\s[a-zA-Z]{2,30}\s[a-zA-Z]{2,15}/),Cp=new RegExp(/(?:[0-9]{1,3}.){3}[0-9]{1,3}/),Rp=[Zp,Ip,Sp,Xp,Vp,Gp,Cp];function $o(e){return e?Rp.some(t=>t.test(e)):!1}const qo=({maskInputOptions:e,tagName:t,type:i,overwriteRecord:n})=>{const s=i&&i.toLowerCase();return n!=="true"&&(!!e[t.toLowerCase()]||!!(s&&e[s]))};let Wp=1;const vp=new RegExp("[^a-z0-9-_:]"),Bt=-2;function el(){return Wp++}function kp(e){if(e instanceof HTMLFormElement)return"form";const t=St(e.tagName);return vp.test(t)?"div":t}let Xt,tl;const wp=/^[^ \t\n\r\u000c]+/,xp=/^[, \t\n\r\u000c]+/;function Tp(e,t){if(t.trim()==="")return t;let i=0;function n(r){let l;const o=r.exec(t.substring(i));return o?(l=o[0],i+=l.length,l):""}const s=[];for(;n(xp),!(i>=t.length);){let r=n(wp);if(r.slice(-1)===",")r=Qi(e,r.substring(0,r.length-1)),s.push(r);else{let l="";r=Qi(e,r);let o=!1;for(;;){const a=t.charAt(i);if(a===""){s.push((r+l).trim());break}else if(o)a===")"&&(o=!1);else if(a===","){i+=1,s.push((r+l).trim());break}else a==="("&&(o=!0);l+=a,i+=1}}}return s.join(", ")}const il=new WeakMap;function Qi(e,t){return!t||t.trim()===""?t:Vs(e,t)}function Lp(e){return!!(e.tagName==="svg"||e.ownerSVGElement)}function Vs(e,t){let i=il.get(e);if(i||(i=e.createElement("a"),il.set(e,i)),!t)t="";else if(t.startsWith("blob:")||t.startsWith("data:"))return t;return i.setAttribute("href",t),i.href}function nl(e,t,i,n){return n&&(i==="src"||i==="href"&&!(t==="use"&&n[0]==="#")||i==="xlink:href"&&n[0]!=="#"||i==="background"&&(t==="table"||t==="td"||t==="th")?Qi(e,n):i==="srcset"?Tp(e,n):i==="style"?Di(n,Vs(e)):t==="object"&&i==="data"?Qi(e,n):n)}function sl(e,t,i){return(e==="video"||e==="audio")&&t==="autoplay"}function rl(e,t,i){try{if(typeof t=="string"){if(e.classList.contains(t))return!0}else for(let n=e.classList.length;n--;){const s=e.classList[n];if(t.test(s))return!0}if(i)return e.matches(i)}catch{}return!1}function ji(e,t,i){if(!e)return!1;if(e.nodeType!==e.ELEMENT_NODE)return i?ji(pe.parentNode(e),t,i):!1;for(let n=e.classList.length;n--;){const s=e.classList[n];if(t.test(s))return!0}return i?ji(pe.parentNode(e),t,i):!1}function ol(e,t,i,n){let s;if(Bo(e)){if(s=e,!pe.childNodes(s).length)return!1}else{if(pe.parentElement(e)===null)return!1;s=pe.parentElement(e)}try{if(typeof t=="string"){if(n){if(s.closest(`.${t}`))return!0}else if(s.classList.contains(t))return!0}else if(ji(s,t,n))return!0;if(i){if(n){if(s.closest(i))return!0}else if(s.matches(i))return!0}}catch{}return!1}function Np(e,t,i){const n=e.contentWindow;if(!n)return;let s=!1,r;try{r=n.document.readyState}catch{return}if(r!=="complete"){const o=setTimeout(()=>{s||(t(),s=!0)},i);e.addEventListener("load",()=>{clearTimeout(o),s=!0,t()});return}const l="about:blank";if(n.location.href!==l||e.src===l||e.src==="")return setTimeout(t,0),e.addEventListener("load",t);e.addEventListener("load",t)}function Jp(e,t,i){let n=!1,s;try{s=e.sheet}catch{return}if(s)return;const r=setTimeout(()=>{n||(t(),n=!0)},i);e.addEventListener("load",()=>{clearTimeout(r),n=!0,t()})}function Yp(e,t){const{doc:i,mirror:n,blockClass:s,blockSelector:r,needsMask:l,inlineStylesheet:o,maskInputOptions:a={},maskTextClass:c,maskTextFn:u,maskInputFn:h,dataURLOptions:p={},inlineImages:m,inlineVideos:f,recordCanvas:d,keepIframeSrcFn:S,newlyAddedElement:I=!1,cssCaptured:V=!1,privacySetting:R}=t,G=Fp(i,n);switch(e.nodeType){case e.DOCUMENT_NODE:return e.compatMode!=="CSS1Compat"?{type:ae.Document,childNodes:[],compatMode:e.compatMode}:{type:ae.Document,childNodes:[]};case e.DOCUMENT_TYPE_NODE:return{type:ae.DocumentType,name:e.name,publicId:e.publicId,systemId:e.systemId,rootId:G};case e.ELEMENT_NODE:return Kp(e,{doc:i,blockClass:s,blockSelector:r,inlineStylesheet:o,maskInputOptions:a,maskInputFn:h,maskTextClass:c,dataURLOptions:p,inlineImages:m,inlineVideos:f,recordCanvas:d,keepIframeSrcFn:S,newlyAddedElement:I,privacySetting:R,rootId:G});case e.TEXT_NODE:return Up(e,{doc:i,needsMask:l,maskTextFn:u,privacySetting:R,rootId:G,cssCaptured:V});case e.CDATA_SECTION_NODE:return{type:ae.CDATA,textContent:"",rootId:G};case e.COMMENT_NODE:return{type:ae.Comment,textContent:pe.textContent(e)||"",rootId:G};default:return!1}}function Fp(e,t){if(!t.hasNode(e))return;const i=t.getId(e);return i===1?void 0:i}function Up(e,t){var i;const{needsMask:n,maskTextFn:s,privacySetting:r,rootId:l,cssCaptured:o}=t,a=pe.parentNode(e),c=a&&a.tagName;let u="";const h=c==="STYLE"?!0:void 0,p=c==="SCRIPT"?!0:void 0;p?u="SCRIPT_PLACEHOLDER":o||(u=pe.textContent(e),h&&u&&(u=Di(u,Vs(t.doc)))),!h&&!p&&u&&n&&(u=s?s(u,pe.parentElement(e)):u.replace(/[\S]/g,"*"));const m=r==="strict",f=(i=e.parentElement)==null?void 0:i.getAttribute("data-hl-record"),d=r==="default"&&$o(u);return(m||d)&&!f&&c&&!new Set(["HEAD","TITLE","STYLE","SCRIPT","HTML","BODY","NOSCRIPT"]).has(c)&&u&&(u=Ss(u)),{type:ae.Text,textContent:u||"",rootId:l}}function Kp(e,t){const{doc:i,blockClass:n,blockSelector:s,inlineStylesheet:r,maskInputOptions:l={},maskInputFn:o,maskTextClass:a,dataURLOptions:c={},inlineImages:u,inlineVideos:h,recordCanvas:p,keepIframeSrcFn:m,newlyAddedElement:f=!1,privacySetting:d,rootId:S}=t;let I=rl(e,n,s);const V=rl(e,a,null),R=d==="strict";let G=kp(e),X={};const v=e.attributes.length;for(let g=0;g<v;g++){const W=e.attributes[g];sl(G,W.name)||(X[W.name]=nl(i,G,St(W.name),W.value))}if(G==="link"&&r){const g=Array.from(i.styleSheets).find(J=>J.href===e.href);let W=null;g&&(W=Is(g)),W&&(delete X.rel,delete X.href,X._cssText=W)}if(G==="style"&&e.sheet){let g=Is(e.sheet);g&&(e.childNodes.length>1&&(g=gp(g,e)),X._cssText=g)}if(G==="input"||G==="textarea"||G==="select"){const g=e.value,W=e.checked;X.type!=="radio"&&X.type!=="checkbox"&&X.type!=="submit"&&X.type!=="button"&&g?X.value=Hi({element:e,type:Pi(e),tagName:G,value:g,overwriteRecord:e.getAttribute("data-hl-record"),maskInputOptions:l,maskInputFn:o}):W&&(X.checked=W)}if(G==="option"&&(e.selected&&!l.select?X.selected=!0:delete X.selected),G==="dialog"&&e.open&&(X.rr_open_mode=e.matches("dialog:modal")?"modal":"non-modal"),G==="canvas"&&p){if(e.__context==="2d")dp(e);else if(!("__context"in e)){const g=e.toDataURL(c.type,c.quality),W=i.createElement("canvas");W.width=e.width,W.height=e.height;const J=W.toDataURL(c.type,c.quality);g!==J&&(X.rr_dataURL=g)}}if(G==="img"&&u&&!I&&!V&&!R){Xt||(Xt=i.createElement("canvas"),tl=Xt.getContext("2d"));const g=e,W=g.currentSrc||g.getAttribute("src")||"<unknown-src>",J=g.crossOrigin,E=()=>{g.removeEventListener("load",E);try{Xt.width=g.naturalWidth,Xt.height=g.naturalHeight,tl.drawImage(g,0,0),X.rr_dataURL=Xt.toDataURL(c.type,c.quality)}catch($){if(g.crossOrigin!=="anonymous"){g.crossOrigin="anonymous",g.complete&&g.naturalWidth!==0?E():g.addEventListener("load",E);return}else console.warn(`Cannot inline img src=${W}! Error: ${$}`)}g.crossOrigin==="anonymous"&&(J?X.crossOrigin=J:g.removeAttribute("crossorigin"))};g.complete&&g.naturalWidth!==0?E():g.addEventListener("load",E)}if(G==="audio"||G==="video"){const g=X;g.rr_mediaState=e.paused?"paused":"played",g.rr_mediaCurrentTime=e.currentTime,g.rr_mediaPlaybackRate=e.playbackRate,g.rr_mediaMuted=e.muted,g.rr_mediaLoop=e.loop,g.rr_mediaVolume=e.volume}if(f||(e.scrollLeft&&(X.rr_scrollLeft=e.scrollLeft),e.scrollTop&&(X.rr_scrollTop=e.scrollTop)),I||V||R&&Xs(G)){const{width:g,height:W}=e.getBoundingClientRect();X={class:X.class,rr_width:`${g}px`,rr_height:`${W}px`}}R&&Xs(G)&&(I=!0),G==="iframe"&&!m(X.src)&&(e.contentDocument||(X.rr_src=X.src),delete X.src);let k;try{customElements.get(G)&&(k=!0)}catch{}const w=g=>{const{width:W,height:J}=g.getBoundingClientRect();X={width:W,height:J,rr_width:`${W}px`,rr_height:`${J}px`,rr_inlined_video:!0,class:X.class,style:X.style},G="canvas";const E=i.createElement("canvas");E.width=e.width,E.height=e.height,X.rr_dataURL=E.toDataURL(c.type,c.quality)};if(G==="video"){const g=e;u&&(g.src===""||g.src.indexOf("blob:")!==-1)&&w(g),h&&g.src!==""&&g.src.indexOf("blob:")===-1&&w(g)}return{type:ae.Element,tagName:G,attributes:X,childNodes:[],isSVG:Lp(e)||void 0,needBlock:I,needMask:V,rootId:S,isCustom:k}}function ie(e){return e==null?"":e.toLowerCase()}function Mp(e,t){return!!(t.comment&&e.type===ae.Comment||e.type===ae.Element&&(t.script&&(e.tagName==="script"||e.tagName==="link"&&(e.attributes.rel==="preload"&&e.attributes.as==="script"||e.attributes.rel==="modulepreload")||e.tagName==="link"&&e.attributes.rel==="prefetch"&&typeof e.attributes.href=="string"&&_o(e.attributes.href)==="js")||t.headFavicon&&(e.tagName==="link"&&e.attributes.rel==="shortcut icon"||e.tagName==="meta"&&(ie(e.attributes.name).match(/^msapplication-tile(image|color)$/)||ie(e.attributes.name)==="application-name"||ie(e.attributes.rel)==="icon"||ie(e.attributes.rel)==="apple-touch-icon"||ie(e.attributes.rel)==="shortcut icon"))||e.tagName==="meta"&&(t.headMetaDescKeywords&&ie(e.attributes.name).match(/^description|keywords$/)||t.headMetaSocial&&(ie(e.attributes.property).match(/^(og|twitter|fb):/)||ie(e.attributes.name).match(/^(og|twitter):/)||ie(e.attributes.name)==="pinterest")||t.headMetaRobots&&(ie(e.attributes.name)==="robots"||ie(e.attributes.name)==="googlebot"||ie(e.attributes.name)==="bingbot")||t.headMetaHttpEquiv&&e.attributes["http-equiv"]!==void 0||t.headMetaAuthorship&&(ie(e.attributes.name)==="author"||ie(e.attributes.name)==="generator"||ie(e.attributes.name)==="framework"||ie(e.attributes.name)==="publisher"||ie(e.attributes.name)==="progid"||ie(e.attributes.property).match(/^article:/)||ie(e.attributes.property).match(/^product:/))||t.headMetaVerification&&(ie(e.attributes.name)==="google-site-verification"||ie(e.attributes.name)==="yandex-verification"||ie(e.attributes.name)==="csrf-token"||ie(e.attributes.name)==="p:domain_verify"||ie(e.attributes.name)==="verify-v1"||ie(e.attributes.name)==="verification"||ie(e.attributes.name)==="shopify-checkout-api-token"))))}function Vt(e,t){const{doc:i,mirror:n,blockClass:s,blockSelector:r,maskTextClass:l,maskTextSelector:o,skipChild:a=!1,inlineStylesheet:c=!0,maskInputOptions:u={},maskTextFn:h,maskInputFn:p,slimDOMOptions:m,dataURLOptions:f={},inlineImages:d=!1,inlineVideos:S=!1,recordCanvas:I=!1,onSerialize:V,onIframeLoad:R,iframeLoadTimeout:G=5e3,onStylesheetLoad:X,stylesheetLoadTimeout:v=5e3,keepIframeSrcFn:k=()=>!1,newlyAddedElement:w=!1,cssCaptured:g=!1,privacySetting:W}=t;let{needsMask:J}=t,{preserveWhiteSpace:E=!0}=t;J||(J=ol(e,l,o,J===void 0));const $=Yp(e,{doc:i,mirror:n,blockClass:s,blockSelector:r,needsMask:J,inlineStylesheet:c,maskInputOptions:u,maskTextClass:l,maskTextFn:h,maskInputFn:p,dataURLOptions:f,inlineImages:d,inlineVideos:S,recordCanvas:I,keepIframeSrcFn:k,newlyAddedElement:w,cssCaptured:g,privacySetting:W});if(!$)return console.warn(e,"not serialized"),null;let b;n.hasNode(e)?b=n.getId(e):Mp($,m)||!E&&$.type===ae.Text&&!$.textContent.replace(/^\s+|\s+$/gm,"").length?b=Bt:b=el();const y=Object.assign($,{id:b});if(n.add(e,y),b===Bt)return null;V&&V(e);let T=!a,F=W,K=W==="strict";if(y.type===ae.Element){if(T=T&&!y.needBlock,K||(K=!!y.needBlock||!!y.needMask),F=K?"strict":F,K&&Xs(y.tagName)){const j=e.cloneNode();j.src="",n.add(j,y)}delete y.needBlock,delete y.needMask;const A=pe.shadowRoot(e);A&&Dt(A)&&(y.isShadowHost=!0)}if((y.type===ae.Document||y.type===ae.Element)&&T){m.headWhitespace&&y.type===ae.Element&&y.tagName==="head"&&(E=!1);const A={doc:i,mirror:n,blockClass:s,blockSelector:r,needsMask:J,maskTextClass:l,maskTextSelector:o,skipChild:a,inlineStylesheet:c,maskInputOptions:u,maskTextFn:h,maskInputFn:p,slimDOMOptions:m,dataURLOptions:f,inlineImages:d,inlineVideos:S,recordCanvas:I,preserveWhiteSpace:E,onSerialize:V,onIframeLoad:R,iframeLoadTimeout:G,onStylesheetLoad:X,stylesheetLoadTimeout:v,keepIframeSrcFn:k,cssCaptured:!1,privacySetting:F};if(!(y.type===ae.Element&&y.tagName==="textarea"&&y.attributes.value!==void 0)){y.type===ae.Element&&y.attributes._cssText!==void 0&&typeof y.attributes._cssText=="string"&&(A.cssCaptured=!0);for(const de of Array.from(pe.childNodes(e))){const Se=Vt(de,A);Se&&y.childNodes.push(Se)}}let j=null;if(Bo(e)&&(j=pe.shadowRoot(e)))for(const de of Array.from(pe.childNodes(j))){const Se=Vt(de,A);Se&&(Dt(j)&&(Se.isShadow=!0),y.childNodes.push(Se))}}const N=pe.parentNode(e);return N&&Pt(N)&&Dt(N)&&(y.isShadow=!0),y.type===ae.Element&&y.tagName==="iframe"&&Np(e,()=>{const A=e.contentDocument;if(A&&R){const j=Vt(A,{doc:A,mirror:n,blockClass:s,blockSelector:r,needsMask:J,maskTextClass:l,maskTextSelector:o,skipChild:!1,inlineStylesheet:c,maskInputOptions:u,maskTextFn:h,maskInputFn:p,slimDOMOptions:m,dataURLOptions:f,inlineImages:d,inlineVideos:S,recordCanvas:I,preserveWhiteSpace:E,onSerialize:V,onIframeLoad:R,iframeLoadTimeout:G,onStylesheetLoad:X,stylesheetLoadTimeout:v,keepIframeSrcFn:k,privacySetting:W});j&&R(e,j)}},G),y.type===ae.Element&&y.tagName==="link"&&typeof y.attributes.rel=="string"&&(y.attributes.rel==="stylesheet"||y.attributes.rel==="preload"&&typeof y.attributes.href=="string"&&_o(y.attributes.href)==="css")&&Jp(e,()=>{if(X){const A=Vt(e,{doc:i,mirror:n,blockClass:s,blockSelector:r,needsMask:J,maskTextClass:l,maskTextSelector:o,skipChild:!1,inlineStylesheet:c,maskInputOptions:u,maskTextFn:h,maskInputFn:p,slimDOMOptions:m,dataURLOptions:f,inlineImages:d,inlineVideos:S,recordCanvas:I,preserveWhiteSpace:E,onSerialize:V,onIframeLoad:R,iframeLoadTimeout:G,onStylesheetLoad:X,stylesheetLoadTimeout:v,keepIframeSrcFn:k,privacySetting:W});A&&X(e,A)}},v),y}function Op(e,t){const{mirror:i=new jo,blockClass:n="highlight-block",blockSelector:s=null,maskTextClass:r="highlight-mask",maskTextSelector:l=null,inlineStylesheet:o=!0,inlineImages:a=!1,inlineVideos:c=!1,recordCanvas:u=!1,maskAllInputs:h=!1,maskTextFn:p,maskInputFn:m,slimDOM:f=!1,dataURLOptions:d,preserveWhiteSpace:S,onSerialize:I,onIframeLoad:V,iframeLoadTimeout:R,onStylesheetLoad:G,stylesheetLoadTimeout:X,keepIframeSrcFn:v=()=>!1,privacySetting:k="default"}=t||{};return Vt(e,{doc:e,mirror:i,blockClass:n,blockSelector:s,maskTextClass:r,maskTextSelector:l,skipChild:!1,inlineStylesheet:o,maskInputOptions:h===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:h===!1?{password:!0}:h,maskTextFn:p,maskInputFn:m,slimDOMOptions:f||f==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:f==="all",headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0,headMetaVerification:!0}:f||{},dataURLOptions:d,inlineImages:a,inlineVideos:c,recordCanvas:u,preserveWhiteSpace:S,onSerialize:I,onIframeLoad:V,iframeLoadTimeout:R,onStylesheetLoad:G,stylesheetLoadTimeout:X,keepIframeSrcFn:v,newlyAddedElement:!1,privacySetting:k})}function Ep(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var i=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};i.prototype=t.prototype}else i={};return Object.defineProperty(i,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(i,n,s.get?s:{enumerable:!0,get:function(){return e[n]}})}),i}var Gs={exports:{}},M=String,ll=function(){return{isColorSupported:!1,reset:M,bold:M,dim:M,italic:M,underline:M,inverse:M,hidden:M,strikethrough:M,black:M,red:M,green:M,yellow:M,blue:M,magenta:M,cyan:M,white:M,gray:M,bgBlack:M,bgRed:M,bgGreen:M,bgYellow:M,bgBlue:M,bgMagenta:M,bgCyan:M,bgWhite:M,blackBright:M,redBright:M,greenBright:M,yellowBright:M,blueBright:M,magentaBright:M,cyanBright:M,whiteBright:M,bgBlackBright:M,bgRedBright:M,bgGreenBright:M,bgYellowBright:M,bgBlueBright:M,bgMagentaBright:M,bgCyanBright:M,bgWhiteBright:M}};Gs.exports=ll(),Gs.exports.createColors=ll;var zp=Gs.exports;const Hp={},Pp=Object.freeze(Object.defineProperty({__proto__:null,default:Hp},Symbol.toStringTag,{value:"Module"})),xe=Ep(Pp);let al=zp,cl=xe,Cs=class cu extends Error{constructor(t,i,n,s,r,l){super(t),this.name="CssSyntaxError",this.reason=t,r&&(this.file=r),s&&(this.source=s),l&&(this.plugin=l),typeof i<"u"&&typeof n<"u"&&(typeof i=="number"?(this.line=i,this.column=n):(this.line=i.line,this.column=i.column,this.endLine=n.line,this.endColumn=n.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,cu)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(t){if(!this.source)return"";let i=this.source;t==null&&(t=al.isColorSupported);let n=u=>u,s=u=>u,r=u=>u;if(t){let{bold:u,gray:h,red:p}=al.createColors(!0);s=m=>u(p(m)),n=m=>h(m),cl&&(r=m=>cl(m))}let l=i.split(/\r?\n/),o=Math.max(this.line-3,0),a=Math.min(this.line+2,l.length),c=String(a).length;return l.slice(o,a).map((u,h)=>{let p=o+1+h,m=" "+(" "+p).slice(-c)+" | ";if(p===this.line){if(u.length>160){let d=20,S=Math.max(0,this.column-d),I=Math.max(this.column+d,this.endColumn+d),V=u.slice(S,I),R=n(m.replace(/\d/g," "))+u.slice(0,Math.min(this.column-1,d-1)).replace(/[^\t]/g," ");return s(">")+n(m)+r(V)+`
|
|
289
289
|
`+R+s("^")}let f=n(m.replace(/\d/g," "))+u.slice(0,this.column-1).replace(/[^\t]/g," ");return s(">")+n(m)+r(u)+`
|
|
290
290
|
`+f+s("^")}return" "+n(m)+r(u)}).join(`
|
|
291
291
|
`)}toString(){let t=this.showSourceCode();return t&&(t=`
|
|
292
292
|
|
|
293
293
|
`+t+`
|
|
294
|
-
`),this.name+": "+this.message+t}};var Rs=Cs;Cs.default=Cs;const
|
|
294
|
+
`),this.name+": "+this.message+t}};var Rs=Cs;Cs.default=Cs;const ul={after:`
|
|
295
295
|
`,beforeClose:`
|
|
296
296
|
`,beforeComment:`
|
|
297
297
|
`,beforeDecl:`
|
|
298
298
|
`,beforeOpen:" ",beforeRule:`
|
|
299
|
-
`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function
|
|
300
|
-
`)){let r=this.raw(e,null,"indent");if(r.length)for(let l=0;l<s;l++)i+=r}return i}block(e,t){let i=this.raw(e,"between","beforeOpen");this.builder(t+i+"{",e,"start");let n;e.nodes&&e.nodes.length?(this.body(e),n=this.raw(e,"after")):n=this.raw(e,"after","emptyBody"),n&&this.builder(n),this.builder("}",e,"end")}body(e){let t=e.nodes.length-1;for(;t>0&&e.nodes[t].type==="comment";)t-=1;let i=this.raw(e,"semicolon");for(let n=0;n<e.nodes.length;n++){let s=e.nodes[n],r=this.raw(s,"before");r&&this.builder(r),this.stringify(s,t!==n||i)}}comment(e){let t=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+i+"*/",e)}decl(e,t){let i=this.raw(e,"between","colon"),n=e.prop+i+this.rawValue(e,"value");e.important&&(n+=e.raws.important||" !important"),t&&(n+=";"),this.builder(n,e)}document(e){this.body(e)}raw(e,t,i){let n;if(i||(i=t),t&&(n=e.raws[t],typeof n<"u"))return n;let s=e.parent;if(i==="before"&&(!s||s.type==="root"&&s.first===e||s&&s.type==="document"))return"";if(!s)return
|
|
299
|
+
`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function Dp(e){return e[0].toUpperCase()+e.slice(1)}let Ws=class{constructor(e){this.builder=e}atrule(e,t){let i="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName<"u"?i+=e.raws.afterName:n&&(i+=" "),e.nodes)this.block(e,i+n);else{let s=(e.raws.between||"")+(t?";":"");this.builder(i+n+s,e)}}beforeAfter(e,t){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):t==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let n=e.parent,s=0;for(;n&&n.type!=="root";)s+=1,n=n.parent;if(i.includes(`
|
|
300
|
+
`)){let r=this.raw(e,null,"indent");if(r.length)for(let l=0;l<s;l++)i+=r}return i}block(e,t){let i=this.raw(e,"between","beforeOpen");this.builder(t+i+"{",e,"start");let n;e.nodes&&e.nodes.length?(this.body(e),n=this.raw(e,"after")):n=this.raw(e,"after","emptyBody"),n&&this.builder(n),this.builder("}",e,"end")}body(e){let t=e.nodes.length-1;for(;t>0&&e.nodes[t].type==="comment";)t-=1;let i=this.raw(e,"semicolon");for(let n=0;n<e.nodes.length;n++){let s=e.nodes[n],r=this.raw(s,"before");r&&this.builder(r),this.stringify(s,t!==n||i)}}comment(e){let t=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+i+"*/",e)}decl(e,t){let i=this.raw(e,"between","colon"),n=e.prop+i+this.rawValue(e,"value");e.important&&(n+=e.raws.important||" !important"),t&&(n+=";"),this.builder(n,e)}document(e){this.body(e)}raw(e,t,i){let n;if(i||(i=t),t&&(n=e.raws[t],typeof n<"u"))return n;let s=e.parent;if(i==="before"&&(!s||s.type==="root"&&s.first===e||s&&s.type==="document"))return"";if(!s)return ul[i];let r=e.root();if(r.rawCache||(r.rawCache={}),typeof r.rawCache[i]<"u")return r.rawCache[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let l="raw"+Dp(i);this[l]?n=this[l](r,e):r.walk(o=>{if(n=o.raws[t],typeof n<"u")return!1})}return typeof n>"u"&&(n=ul[i]),r.rawCache[i]=n,n}rawBeforeClose(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return t=i.raws.after,t.includes(`
|
|
301
301
|
`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let i;return e.walkComments(n=>{if(typeof n.raws.before<"u")return i=n.raws.before,i.includes(`
|
|
302
302
|
`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(t,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,t){let i;return e.walkDecls(n=>{if(typeof n.raws.before<"u")return i=n.raws.before,i.includes(`
|
|
303
303
|
`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(t,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(e){let t;return e.walk(i=>{if(i.type!=="decl"&&(t=i.raws.between,typeof t<"u"))return!1}),t}rawBeforeRule(e){let t;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return t=i.raws.before,t.includes(`
|
|
304
304
|
`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return t=i.raws.between.replace(/[^\s:]/g,""),!1}),t}rawEmptyBody(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(t=i.raws.after,typeof t<"u"))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(i=>{let n=i.parent;if(n&&n!==e&&n.parent&&n.parent===e&&typeof i.raws.before<"u"){let s=i.raws.before.split(`
|
|
305
|
-
`);return t=s[s.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(t=i.raws.semicolon,typeof t<"u"))return!1}),t}rawValue(e,t){let i=e[t],n=e.raws[t];return n&&n.value===i?n.raw:i}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};var
|
|
306
|
-
`?(i=1,n+=1):i+=1}return s}let ws=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[
|
|
307
|
-
`?(t=1,i+=1):t+=1;return{column:t,line:i,offset:r}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let t="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:ze(t,this.source.start)},n=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:ze(t,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=t.slice(ze(t,this.source.start),ze(t,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),n=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:ze(t,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?n={column:e.end.column,line:e.end.line,offset:ze(t,e.end)}:typeof e.endIndex=="number"?n=this.positionInside(e.endIndex):e.index&&(n=this.positionInside(e.index+1));return(n.line<i.line||n.line===i.line&&n.column<=i.column)&&(n={column:i.column+1,line:i.line,offset:i.offset+1}),{end:n,start:i}}raw(e,t){return new Qp().raw(this,e,t)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let t=this,i=!1;for(let n of e)n===this?i=!0:i?(this.parent.insertAfter(t,n),t=n):this.parent.insertBefore(t,n);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,t){let i={},n=t==null;t=t||new Map;let s=0;for(let r in this){if(!Object.prototype.hasOwnProperty.call(this,r)||r==="parent"||r==="proxyCache")continue;let l=this[r];if(Array.isArray(l))i[r]=l.map(o=>typeof o=="object"&&o.toJSON?o.toJSON(null,t):o);else if(typeof l=="object"&&l.toJSON)i[r]=l.toJSON(null,t);else if(r==="source"){if(l==null)continue;let o=t.get(l.input);o==null&&(o=s,t.set(l.input,s),s++),i[r]={end:l.end,inputId:o,start:l.start}}else i[r]=l}return n&&(i.inputs=[...t.keys()].map(r=>r.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=jp){e.stringify&&(e=e.stringify);let t="";return e(this,i=>{t+=i}),t}warn(e,t,i={}){let n={node:this};for(let s in i)n[s]=i[s];return e.warn(t,n)}};var _i=ws;ws.default=ws;let _p=_i,xs=class extends _p{constructor(e){super(e),this.type="comment"}};var $i=xs;xs.default=xs;let $p=_i,Ts=class extends $p{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e=he(Y({},e),{value:String(e.value)})),super(e),this.type="decl"}};var qi=Ts;Ts.default=Ts;let dl=$i,hl=qi,qp=_i,{isClean:pl,my:ml}=jt,Ls,fl,bl,Ns;function yl(e){return e.map(t=>(t.nodes&&(t.nodes=yl(t.nodes)),delete t.source,t))}function gl(e){if(e[pl]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)gl(t)}let He=class cu extends qp{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...t){for(let i of t){let n=this.normalize(i,this.last);for(let s of n)this.proxyOf.nodes.push(s)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let i of this.nodes)i.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let i=this.getIterator(),n,s;for(;this.indexes[i]<this.proxyOf.nodes.length&&(n=this.indexes[i],s=t(this.proxyOf.nodes[n],n),s!==!1);)this.indexes[i]+=1;return delete this.indexes[i],s}every(t){return this.nodes.every(t)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}getProxyProcessor(){return{get(t,i){return i==="proxyOf"?t:t[i]?i==="each"||typeof i=="string"&&i.startsWith("walk")?(...n)=>t[i](...n.map(s=>typeof s=="function"?(r,l)=>s(r.toProxy(),l):s)):i==="every"||i==="some"?n=>t[i]((s,...r)=>n(s.toProxy(),...r)):i==="root"?()=>t.root().toProxy():i==="nodes"?t.nodes.map(n=>n.toProxy()):i==="first"||i==="last"?t[i].toProxy():t[i]:t[i]},set(t,i,n){return t[i]===n||(t[i]=n,(i==="name"||i==="params"||i==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,i){let n=this.index(t),s=this.normalize(i,this.proxyOf.nodes[n]).reverse();n=this.index(t);for(let l of s)this.proxyOf.nodes.splice(n+1,0,l);let r;for(let l in this.indexes)r=this.indexes[l],n<r&&(this.indexes[l]=r+s.length);return this.markDirty(),this}insertBefore(t,i){let n=this.index(t),s=n===0?"prepend":!1,r=this.normalize(i,this.proxyOf.nodes[n],s).reverse();n=this.index(t);for(let o of r)this.proxyOf.nodes.splice(n,0,o);let l;for(let o in this.indexes)l=this.indexes[o],n<=l&&(this.indexes[o]=l+r.length);return this.markDirty(),this}normalize(t,i){if(typeof t=="string")t=yl(fl(t).nodes);else if(typeof t>"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let n of t)n.parent&&n.parent.removeChild(n,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let n of t)n.parent&&n.parent.removeChild(n,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new hl(t)]}else if(t.selector||t.selectors)t=[new Ns(t)];else if(t.name)t=[new Ls(t)];else if(t.text)t=[new dl(t)];else throw new Error("Unknown node type in node creation");return t.map(n=>(n[ml]||cu.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[pl]&&gl(n),n.raws||(n.raws={}),typeof n.raws.before>"u"&&i&&typeof i.raws.before<"u"&&(n.raws.before=i.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}prepend(...t){t=t.reverse();for(let i of t){let n=this.normalize(i,this.first,"prepend").reverse();for(let s of n)this.proxyOf.nodes.unshift(s);for(let s in this.indexes)this.indexes[s]=this.indexes[s]+n.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let i;for(let n in this.indexes)i=this.indexes[n],i>=t&&(this.indexes[n]=i-1);return this.markDirty(),this}replaceValues(t,i,n){return n||(n=i,i={}),this.walkDecls(s=>{i.props&&!i.props.includes(s.prop)||i.fast&&!s.value.includes(i.fast)||(s.value=s.value.replace(t,n))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((i,n)=>{let s;try{s=t(i,n)}catch(r){throw i.addToError(r)}return s!==!1&&i.walk&&(s=i.walk(t)),s})}walkAtRules(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="atrule"&&t.test(n.name))return i(n,s)}):this.walk((n,s)=>{if(n.type==="atrule"&&n.name===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="atrule")return i(n,s)}))}walkComments(t){return this.walk((i,n)=>{if(i.type==="comment")return t(i,n)})}walkDecls(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="decl"&&t.test(n.prop))return i(n,s)}):this.walk((n,s)=>{if(n.type==="decl"&&n.prop===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="decl")return i(n,s)}))}walkRules(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="rule"&&t.test(n.selector))return i(n,s)}):this.walk((n,s)=>{if(n.type==="rule"&&n.selector===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="rule")return i(n,s)}))}};He.registerParse=e=>{fl=e},He.registerRule=e=>{Ns=e},He.registerAtRule=e=>{Ls=e},He.registerRoot=e=>{bl=e};var rt=He;He.default=He,He.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,Ls.prototype):e.type==="rule"?Object.setPrototypeOf(e,Ns.prototype):e.type==="decl"?Object.setPrototypeOf(e,hl.prototype):e.type==="comment"?Object.setPrototypeOf(e,dl.prototype):e.type==="root"&&Object.setPrototypeOf(e,bl.prototype),e[ml]=!0,e.nodes&&e.nodes.forEach(t=>{He.rebuild(t)})};let Zl=rt,en=class extends Zl{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};var Js=en;en.default=en,Zl.registerAtRule(en);let em=rt,Il,Sl,_t=class extends em{constructor(e){super(Y({type:"document"},e)),this.nodes||(this.nodes=[])}toResult(e={}){return new Il(new Sl,this,e).stringify()}};_t.registerLazyResult=e=>{Il=e},_t.registerProcessor=e=>{Sl=e};var Ys=_t;_t.default=_t;let tm="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var im={nanoid:(e=21)=>{let t="",i=e|0;for(;i--;)t+=tm[Math.random()*64|0];return t}};let{existsSync:nm,readFileSync:sm}=xe,{dirname:Fs,join:rm}=xe,{SourceMapConsumer:Xl,SourceMapGenerator:Vl}=xe;function om(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}let Us=class{constructor(e,t){if(t.map===!1)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=t.map?t.map.prev:void 0,n=this.loadMap(t.from,i);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=Fs(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new Xl(this.text)),this.consumerCache}decodeInline(e){let t=/^data:application\/json;charset=utf-?8;base64,/,i=/^data:application\/json;base64,/,n=/^data:application\/json;charset=utf-?8,/,s=/^data:application\/json,/,r=e.match(n)||e.match(s);if(r)return decodeURIComponent(e.substr(r[0].length));let l=e.match(t)||e.match(i);if(l)return om(e.substr(l[0].length));let o=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+o)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/g);if(!t)return;let i=e.lastIndexOf(t.pop()),n=e.indexOf("*/",i);i>-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,n)))}loadFile(e){if(this.root=Fs(e),nm(e))return this.mapFile=e,sm(e,"utf-8").toString().trim()}loadMap(e,t){if(t===!1)return!1;if(t){if(typeof t=="string")return t;if(typeof t=="function"){let i=t(e);if(i){let n=this.loadFile(i);if(!n)throw new Error("Unable to load previous source map: "+i.toString());return n}}else{if(t instanceof Xl)return Vl.fromSourceMap(t).toString();if(t instanceof Vl)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;return e&&(i=rm(Fs(e),i)),this.loadFile(i)}}}startWith(e,t){return e?e.substr(0,t.length)===t:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var Gl=Us;Us.default=Us;let{nanoid:lm}=im,{isAbsolute:Ks,resolve:Ms}=xe,{SourceMapConsumer:am,SourceMapGenerator:cm}=xe,{fileURLToPath:Cl,pathToFileURL:tn}=xe,Rl=Rs,um=Gl,Os=xe,Es=Symbol("lineToIndexCache"),dm=!!(am&&cm),Wl=!!(Ms&&Ks);function vl(e){if(e[Es])return e[Es];let t=e.css.split(`
|
|
308
|
-
`),i=new Array(t.length),n=0;for(let s=0,r=t.length;s<r;s++)i[s]=n,n+=t[s].length+1;return e[Es]=i,i}let nn=class{get from(){return this.file||this.id}constructor(e,t={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]===""?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,t.document&&(this.document=t.document.toString()),t.from&&(!
|
|
309
|
-
`," "];return
|
|
305
|
+
`);return t=s[s.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(t=i.raws.semicolon,typeof t<"u"))return!1}),t}rawValue(e,t){let i=e[t],n=e.raws[t];return n&&n.value===i?n.raw:i}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};var dl=Ws;Ws.default=Ws;let Bp=dl;function vs(e,t){new Bp(t).stringify(e)}var Ai=vs;vs.default=vs;var Qt={};Qt.isClean=Symbol("isClean"),Qt.my=Symbol("my");let Qp=Rs,jp=dl,Ap=Ai,{isClean:jt,my:_p}=Qt;function ks(e,t){let i=new e.constructor;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n)||n==="proxyCache")continue;let s=e[n],r=typeof s;n==="parent"&&r==="object"?t&&(i[n]=t):n==="source"?i[n]=s:Array.isArray(s)?i[n]=s.map(l=>ks(l,i)):(r==="object"&&s!==null&&(s=ks(s)),i[n]=s)}return i}function ze(e,t){if(t&&typeof t.offset<"u")return t.offset;let i=1,n=1,s=0;for(let r=0;r<e.length;r++){if(n===t.line&&i===t.column){s=r;break}e[r]===`
|
|
306
|
+
`?(i=1,n+=1):i+=1}return s}let ws=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[jt]=!1,this[_p]=!0;for(let t in e)if(t==="nodes"){this.nodes=[];for(let i of e[t])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[t]=e[t]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let t in e)this[t]=e[t];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let t=ks(this);for(let i in e)t[i]=e[i];return t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}error(e,t={}){if(this.source){let{end:i,start:n}=this.rangeBy(t);return this.source.input.error(e,{column:n.column,line:n.line},{column:i.column,line:i.line},t)}return new Qp(e)}getProxyProcessor(){return{get(e,t){return t==="proxyOf"?e:t==="root"?()=>e.root().toProxy():e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="prop"||t==="value"||t==="name"||t==="params"||t==="important"||t==="text")&&e.markDirty()),!0}}}markClean(){this[jt]=!0}markDirty(){if(this[jt]){this[jt]=!1;let e=this;for(;e=e.parent;)e[jt]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let t=this.source.start;if(e.index)t=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,n=i.slice(ze(i,this.source.start),ze(i,this.source.end)).indexOf(e.word);n!==-1&&(t=this.positionInside(n))}return t}positionInside(e){let t=this.source.start.column,i=this.source.start.line,n="document"in this.source.input?this.source.input.document:this.source.input.css,s=ze(n,this.source.start),r=s+e;for(let l=s;l<r;l++)n[l]===`
|
|
307
|
+
`?(t=1,i+=1):t+=1;return{column:t,line:i,offset:r}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let t="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:ze(t,this.source.start)},n=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:ze(t,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=t.slice(ze(t,this.source.start),ze(t,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),n=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:ze(t,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?n={column:e.end.column,line:e.end.line,offset:ze(t,e.end)}:typeof e.endIndex=="number"?n=this.positionInside(e.endIndex):e.index&&(n=this.positionInside(e.index+1));return(n.line<i.line||n.line===i.line&&n.column<=i.column)&&(n={column:i.column+1,line:i.line,offset:i.offset+1}),{end:n,start:i}}raw(e,t){return new jp().raw(this,e,t)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let t=this,i=!1;for(let n of e)n===this?i=!0:i?(this.parent.insertAfter(t,n),t=n):this.parent.insertBefore(t,n);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,t){let i={},n=t==null;t=t||new Map;let s=0;for(let r in this){if(!Object.prototype.hasOwnProperty.call(this,r)||r==="parent"||r==="proxyCache")continue;let l=this[r];if(Array.isArray(l))i[r]=l.map(o=>typeof o=="object"&&o.toJSON?o.toJSON(null,t):o);else if(typeof l=="object"&&l.toJSON)i[r]=l.toJSON(null,t);else if(r==="source"){if(l==null)continue;let o=t.get(l.input);o==null&&(o=s,t.set(l.input,s),s++),i[r]={end:l.end,inputId:o,start:l.start}}else i[r]=l}return n&&(i.inputs=[...t.keys()].map(r=>r.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Ap){e.stringify&&(e=e.stringify);let t="";return e(this,i=>{t+=i}),t}warn(e,t,i={}){let n={node:this};for(let s in i)n[s]=i[s];return e.warn(t,n)}};var _i=ws;ws.default=ws;let $p=_i,xs=class extends $p{constructor(e){super(e),this.type="comment"}};var $i=xs;xs.default=xs;let qp=_i,Ts=class extends qp{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e=he(Y({},e),{value:String(e.value)})),super(e),this.type="decl"}};var qi=Ts;Ts.default=Ts;let hl=$i,pl=qi,em=_i,{isClean:ml,my:fl}=Qt,Ls,bl,yl,Ns;function gl(e){return e.map(t=>(t.nodes&&(t.nodes=gl(t.nodes)),delete t.source,t))}function Zl(e){if(e[ml]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)Zl(t)}let He=class uu extends em{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...t){for(let i of t){let n=this.normalize(i,this.last);for(let s of n)this.proxyOf.nodes.push(s)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let i of this.nodes)i.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let i=this.getIterator(),n,s;for(;this.indexes[i]<this.proxyOf.nodes.length&&(n=this.indexes[i],s=t(this.proxyOf.nodes[n],n),s!==!1);)this.indexes[i]+=1;return delete this.indexes[i],s}every(t){return this.nodes.every(t)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}getProxyProcessor(){return{get(t,i){return i==="proxyOf"?t:t[i]?i==="each"||typeof i=="string"&&i.startsWith("walk")?(...n)=>t[i](...n.map(s=>typeof s=="function"?(r,l)=>s(r.toProxy(),l):s)):i==="every"||i==="some"?n=>t[i]((s,...r)=>n(s.toProxy(),...r)):i==="root"?()=>t.root().toProxy():i==="nodes"?t.nodes.map(n=>n.toProxy()):i==="first"||i==="last"?t[i].toProxy():t[i]:t[i]},set(t,i,n){return t[i]===n||(t[i]=n,(i==="name"||i==="params"||i==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,i){let n=this.index(t),s=this.normalize(i,this.proxyOf.nodes[n]).reverse();n=this.index(t);for(let l of s)this.proxyOf.nodes.splice(n+1,0,l);let r;for(let l in this.indexes)r=this.indexes[l],n<r&&(this.indexes[l]=r+s.length);return this.markDirty(),this}insertBefore(t,i){let n=this.index(t),s=n===0?"prepend":!1,r=this.normalize(i,this.proxyOf.nodes[n],s).reverse();n=this.index(t);for(let o of r)this.proxyOf.nodes.splice(n,0,o);let l;for(let o in this.indexes)l=this.indexes[o],n<=l&&(this.indexes[o]=l+r.length);return this.markDirty(),this}normalize(t,i){if(typeof t=="string")t=gl(bl(t).nodes);else if(typeof t>"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let n of t)n.parent&&n.parent.removeChild(n,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let n of t)n.parent&&n.parent.removeChild(n,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new pl(t)]}else if(t.selector||t.selectors)t=[new Ns(t)];else if(t.name)t=[new Ls(t)];else if(t.text)t=[new hl(t)];else throw new Error("Unknown node type in node creation");return t.map(n=>(n[fl]||uu.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[ml]&&Zl(n),n.raws||(n.raws={}),typeof n.raws.before>"u"&&i&&typeof i.raws.before<"u"&&(n.raws.before=i.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}prepend(...t){t=t.reverse();for(let i of t){let n=this.normalize(i,this.first,"prepend").reverse();for(let s of n)this.proxyOf.nodes.unshift(s);for(let s in this.indexes)this.indexes[s]=this.indexes[s]+n.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let i;for(let n in this.indexes)i=this.indexes[n],i>=t&&(this.indexes[n]=i-1);return this.markDirty(),this}replaceValues(t,i,n){return n||(n=i,i={}),this.walkDecls(s=>{i.props&&!i.props.includes(s.prop)||i.fast&&!s.value.includes(i.fast)||(s.value=s.value.replace(t,n))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((i,n)=>{let s;try{s=t(i,n)}catch(r){throw i.addToError(r)}return s!==!1&&i.walk&&(s=i.walk(t)),s})}walkAtRules(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="atrule"&&t.test(n.name))return i(n,s)}):this.walk((n,s)=>{if(n.type==="atrule"&&n.name===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="atrule")return i(n,s)}))}walkComments(t){return this.walk((i,n)=>{if(i.type==="comment")return t(i,n)})}walkDecls(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="decl"&&t.test(n.prop))return i(n,s)}):this.walk((n,s)=>{if(n.type==="decl"&&n.prop===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="decl")return i(n,s)}))}walkRules(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="rule"&&t.test(n.selector))return i(n,s)}):this.walk((n,s)=>{if(n.type==="rule"&&n.selector===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="rule")return i(n,s)}))}};He.registerParse=e=>{bl=e},He.registerRule=e=>{Ns=e},He.registerAtRule=e=>{Ls=e},He.registerRoot=e=>{yl=e};var st=He;He.default=He,He.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,Ls.prototype):e.type==="rule"?Object.setPrototypeOf(e,Ns.prototype):e.type==="decl"?Object.setPrototypeOf(e,pl.prototype):e.type==="comment"?Object.setPrototypeOf(e,hl.prototype):e.type==="root"&&Object.setPrototypeOf(e,yl.prototype),e[fl]=!0,e.nodes&&e.nodes.forEach(t=>{He.rebuild(t)})};let Il=st,en=class extends Il{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};var Js=en;en.default=en,Il.registerAtRule(en);let tm=st,Sl,Xl,At=class extends tm{constructor(e){super(Y({type:"document"},e)),this.nodes||(this.nodes=[])}toResult(e={}){return new Sl(new Xl,this,e).stringify()}};At.registerLazyResult=e=>{Sl=e},At.registerProcessor=e=>{Xl=e};var Ys=At;At.default=At;let im="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var nm={nanoid:(e=21)=>{let t="",i=e|0;for(;i--;)t+=im[Math.random()*64|0];return t}};let{existsSync:sm,readFileSync:rm}=xe,{dirname:Fs,join:om}=xe,{SourceMapConsumer:Vl,SourceMapGenerator:Gl}=xe;function lm(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}let Us=class{constructor(e,t){if(t.map===!1)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=t.map?t.map.prev:void 0,n=this.loadMap(t.from,i);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=Fs(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new Vl(this.text)),this.consumerCache}decodeInline(e){let t=/^data:application\/json;charset=utf-?8;base64,/,i=/^data:application\/json;base64,/,n=/^data:application\/json;charset=utf-?8,/,s=/^data:application\/json,/,r=e.match(n)||e.match(s);if(r)return decodeURIComponent(e.substr(r[0].length));let l=e.match(t)||e.match(i);if(l)return lm(e.substr(l[0].length));let o=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+o)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/g);if(!t)return;let i=e.lastIndexOf(t.pop()),n=e.indexOf("*/",i);i>-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,n)))}loadFile(e){if(this.root=Fs(e),sm(e))return this.mapFile=e,rm(e,"utf-8").toString().trim()}loadMap(e,t){if(t===!1)return!1;if(t){if(typeof t=="string")return t;if(typeof t=="function"){let i=t(e);if(i){let n=this.loadFile(i);if(!n)throw new Error("Unable to load previous source map: "+i.toString());return n}}else{if(t instanceof Vl)return Gl.fromSourceMap(t).toString();if(t instanceof Gl)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;return e&&(i=om(Fs(e),i)),this.loadFile(i)}}}startWith(e,t){return e?e.substr(0,t.length)===t:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var Cl=Us;Us.default=Us;let{nanoid:am}=nm,{isAbsolute:Ks,resolve:Ms}=xe,{SourceMapConsumer:cm,SourceMapGenerator:um}=xe,{fileURLToPath:Rl,pathToFileURL:tn}=xe,Wl=Rs,dm=Cl,Os=xe,Es=Symbol("lineToIndexCache"),hm=!!(cm&&um),vl=!!(Ms&&Ks);function kl(e){if(e[Es])return e[Es];let t=e.css.split(`
|
|
308
|
+
`),i=new Array(t.length),n=0;for(let s=0,r=t.length;s<r;s++)i[s]=n,n+=t[s].length+1;return e[Es]=i,i}let nn=class{get from(){return this.file||this.id}constructor(e,t={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]===""?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,t.document&&(this.document=t.document.toString()),t.from&&(!vl||/^\w+:\/\//.test(t.from)||Ks(t.from)?this.file=t.from:this.file=Ms(t.from)),vl&&hm){let i=new dm(this.css,t);if(i.text){this.map=i;let n=i.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id="<input css "+am(6)+">"),this.map&&(this.map.file=this.from)}error(e,t,i,n={}){let s,r,l,o,a;if(t&&typeof t=="object"){let u=t,h=i;if(typeof u.offset=="number"){o=u.offset;let p=this.fromOffset(o);t=p.line,i=p.col}else t=u.line,i=u.column,o=this.fromLineAndColumn(t,i);if(typeof h.offset=="number"){l=h.offset;let p=this.fromOffset(l);r=p.line,s=p.col}else r=h.line,s=h.column,l=this.fromLineAndColumn(h.line,h.column)}else if(i)o=this.fromLineAndColumn(t,i);else{o=t;let u=this.fromOffset(o);t=u.line,i=u.col}let c=this.origin(t,i,r,s);return c?a=new Wl(e,c.endLine===void 0?c.line:{column:c.column,line:c.line},c.endLine===void 0?c.column:{column:c.endColumn,line:c.endLine},c.source,c.file,n.plugin):a=new Wl(e,r===void 0?t:{column:i,line:t},r===void 0?i:{column:s,line:r},this.css,this.file,n.plugin),a.input={column:i,endColumn:s,endLine:r,endOffset:l,line:t,offset:o,source:this.css},this.file&&(tn&&(a.input.url=tn(this.file).toString()),a.input.file=this.file),a}fromLineAndColumn(e,t){return kl(this)[e-1]+t-1}fromOffset(e){let t=kl(this),i=t[t.length-1],n=0;if(e>=i)n=t.length-1;else{let s=t.length-2,r;for(;n<s;)if(r=n+(s-n>>1),e<t[r])s=r-1;else if(e>=t[r+1])n=r+1;else{n=r;break}}return{col:e-t[n]+1,line:n+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:Ms(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,i,n){if(!this.map)return!1;let s=this.map.consumer(),r=s.originalPositionFor({column:t,line:e});if(!r.source)return!1;let l;typeof i=="number"&&(l=s.originalPositionFor({column:n,line:i}));let o;Ks(r.source)?o=tn(r.source):o=new URL(r.source,this.map.consumer().sourceRoot||tn(this.map.mapFile));let a={column:r.column,endColumn:l&&l.column,endLine:l&&l.line,line:r.line,url:o.toString()};if(o.protocol==="file:")if(Rl)a.file=Rl(o);else throw new Error("file: protocol is not available in this PostCSS build");let c=s.sourceContentFor(r.source);return c&&(a.source=c),a}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])this[t]!=null&&(e[t]=this[t]);return this.map&&(e.map=Y({},this.map),e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};var sn=nn;nn.default=nn,Os&&Os.registerInput&&Os.registerInput(nn);let wl=st,xl,Tl,Gt=class extends wl{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,i){let n=super.normalize(e);if(t){if(i==="prepend")this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let s of n)s.raws.before=t.raws.before}return n}removeChild(e,t){let i=this.index(e);return!t&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new xl(new Tl,this,e).stringify()}};Gt.registerLazyResult=e=>{xl=e},Gt.registerProcessor=e=>{Tl=e};var _t=Gt;Gt.default=Gt,wl.registerRoot(Gt);let $t={comma(e){return $t.split(e,[","],!0)},space(e){let t=[" ",`
|
|
309
|
+
`," "];return $t.split(e,t)},split(e,t,i){let n=[],s="",r=!1,l=0,o=!1,a="",c=!1;for(let u of e)c?c=!1:u==="\\"?c=!0:o?u===a&&(o=!1):u==='"'||u==="'"?(o=!0,a=u):u==="("?l+=1:u===")"?l>0&&(l-=1):l===0&&t.includes(u)&&(r=!0),r?(s!==""&&n.push(s.trim()),s="",r=!1):s+=u;return(i||s!=="")&&n.push(s.trim()),n}};var Ll=$t;$t.default=$t;let Nl=st,pm=Ll,rn=class extends Nl{get selectors(){return pm.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,i=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};var zs=rn;rn.default=rn,Nl.registerRule(rn);let mm=Js,fm=$i,bm=qi,ym=sn,gm=Cl,Zm=_t,Im=zs;function qt(e,t){if(Array.isArray(e))return e.map(r=>qt(r));let i=e,{inputs:n}=i,s=It(i,["inputs"]);if(n){t=[];for(let r of n){let l=he(Y({},r),{__proto__:ym.prototype});l.map&&(l.map=he(Y({},l.map),{__proto__:gm.prototype})),t.push(l)}}if(s.nodes&&(s.nodes=e.nodes.map(r=>qt(r,t))),s.source){let r=s.source,{inputId:l}=r,o=It(r,["inputId"]);s.source=o,l!=null&&(s.source.input=t[l])}if(s.type==="root")return new Zm(s);if(s.type==="decl")return new bm(s);if(s.type==="rule")return new Im(s);if(s.type==="comment")return new fm(s);if(s.type==="atrule")return new mm(s);throw new Error("Unknown node type: "+e.type)}var Sm=qt;qt.default=qt;let{dirname:on,relative:Jl,resolve:Yl,sep:Fl}=xe,{SourceMapConsumer:Ul,SourceMapGenerator:ln}=xe,{pathToFileURL:Kl}=xe,Xm=sn,Vm=!!(Ul&&ln),Gm=!!(on&&Yl&&Jl&&Fl);var Ml=class{constructor(e,t,i,n){this.stringify=e,this.mapOpts=i.map||{},this.root=t,this.opts=i,this.css=n,this.originalCSS=n,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let t=`
|
|
310
310
|
`;this.css.includes(`\r
|
|
311
311
|
`)&&(t=`\r
|
|
312
|
-
`),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t=this.toUrl(this.path(e.file)),i=e.root||on(e.file),n;this.mapOpts.sourcesContent===!1?(n=new
|
|
313
|
-
`),t=l.length-s):t+=l.length,o&&a!=="start"){let c=o.parent||{raws:{}};(!(o.type==="decl"||o.type==="atrule"&&!o.nodes)||o!==c.last||c.raws.semicolon)&&(o.source&&o.source.end?(n.source=this.sourcePath(o),n.original.line=o.source.end.line,n.original.column=o.source.end.column-1,n.generated.line=e,n.generated.column=t-2,this.map.addMapping(n)):(n.source=i,n.original.line=1,n.original.column=0,n.generated.line=e,n.generated.column=t-1,this.map.addMapping(n)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(t=>t.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let i=this.opts.to?on(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=on(Jl(i,this.mapOpts.annotation)));let n=Nl(i,e);return this.memoizedPaths.set(e,n),n}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}});else{let e=new Sm(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(t=>{if(t.source){let i=t.source.input.from;if(i&&!e[i]){e[i]=!0;let n=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(n,t.source.input.css)}}});else if(this.css){let t=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(t,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(Ul){let i=Ul(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;Yl==="\\"&&(e=e.replace(/\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};const Hs=39,Ml=34,an=92,Ol=47,cn=10,ti=32,un=12,dn=9,hn=13,Gm=91,Cm=93,Rm=40,Wm=41,vm=123,km=125,wm=59,xm=42,Tm=58,Lm=64,pn=/[\t\n\f\r "#'()/;[\\\]{}]/g,mn=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,Nm=/.[\r\n"'(/\\]/,El=/[\da-f]/i;var Jm=function(e,t={}){let i=e.css.valueOf(),n=t.ignoreErrors,s,r,l,o,a,c,u,h,p,m,f=i.length,d=0,S=[],I=[];function V(){return d}function R(k){throw e.error("Unclosed "+k,d)}function G(){return I.length===0&&d>=f}function X(k){if(I.length)return I.pop();if(d>=f)return;let w=k?k.ignoreUnclosed:!1;switch(s=i.charCodeAt(d),s){case cn:case ti:case dn:case hn:case un:{o=d;do o+=1,s=i.charCodeAt(o);while(s===ti||s===cn||s===dn||s===hn||s===un);c=["space",i.slice(d,o)],d=o-1;break}case Gm:case Cm:case vm:case km:case Tm:case wm:case Wm:{let g=String.fromCharCode(s);c=[g,g,d];break}case Rm:{if(m=S.length?S.pop()[1]:"",p=i.charCodeAt(d+1),m==="url"&&p!==Hs&&p!==Ml&&p!==ti&&p!==cn&&p!==dn&&p!==un&&p!==hn){o=d;do{if(u=!1,o=i.indexOf(")",o+1),o===-1)if(n||w){o=d;break}else R("bracket");for(h=o;i.charCodeAt(h-1)===an;)h-=1,u=!u}while(u);c=["brackets",i.slice(d,o+1),d,o],d=o}else o=i.indexOf(")",d+1),r=i.slice(d,o+1),o===-1||Nm.test(r)?c=["(","(",d]:(c=["brackets",r,d,o],d=o);break}case Hs:case Ml:{a=s===Hs?"'":'"',o=d;do{if(u=!1,o=i.indexOf(a,o+1),o===-1)if(n||w){o=d+1;break}else R("string");for(h=o;i.charCodeAt(h-1)===an;)h-=1,u=!u}while(u);c=["string",i.slice(d,o+1),d,o],d=o;break}case Lm:{pn.lastIndex=d+1,pn.test(i),pn.lastIndex===0?o=i.length-1:o=pn.lastIndex-2,c=["at-word",i.slice(d,o+1),d,o],d=o;break}case an:{for(o=d,l=!0;i.charCodeAt(o+1)===an;)o+=1,l=!l;if(s=i.charCodeAt(o+1),l&&s!==Ol&&s!==ti&&s!==cn&&s!==dn&&s!==hn&&s!==un&&(o+=1,El.test(i.charAt(o)))){for(;El.test(i.charAt(o+1));)o+=1;i.charCodeAt(o+1)===ti&&(o+=1)}c=["word",i.slice(d,o+1),d,o],d=o;break}default:{s===Ol&&i.charCodeAt(d+1)===xm?(o=i.indexOf("*/",d+2)+1,o===0&&(n||w?o=i.length:R("comment")),c=["comment",i.slice(d,o+1),d,o],d=o):(mn.lastIndex=d+1,mn.test(i),mn.lastIndex===0?o=i.length-1:o=mn.lastIndex-2,c=["word",i.slice(d,o+1),d,o],S.push(c),d=o);break}}return d++,c}function v(k){I.push(k)}return{back:v,endOfFile:G,nextToken:X,position:V}};let Ym=Js,Fm=$i,Um=qi,Km=$t,zl=zs,Mm=Jm;const Hl={empty:!0,space:!0};function Om(e){for(let t=e.length-1;t>=0;t--){let i=e[t],n=i[3]||i[2];if(n)return n}}var Em=class{constructor(e){this.input=e,this.root=new Km,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new Ym;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,n,s,r=!1,l=!1,o=[],a=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?a.push(i==="("?")":"]"):i==="{"&&a.length>0?a.push("}"):i===a[a.length-1]&&a.pop(),a.length===0)if(i===";"){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){l=!0;break}else if(i==="}"){if(o.length>0){for(s=o.length-1,n=o[s];n&&n[0]==="space";)n=o[--s];n&&(t.source.end=this.getPosition(n[3]||n[2]),t.source.end.offset++)}this.end(e);break}else o.push(e);else o.push(e);if(this.tokenizer.endOfFile()){r=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(o),o.length?(t.raws.afterName=this.spacesAndCommentsFromStart(o),this.raw(t,"params",o),r&&(e=o[o.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),l&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(t===!1)return;let i=0,n;for(let s=t-1;s>=0&&(n=e[s],!(n[0]!=="space"&&(i+=1,i===2)));s--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}colon(e){let t=0,i,n,s;for(let[r,l]of e.entries()){if(n=l,s=n[0],s==="("&&(t+=1),s===")"&&(t-=1),t===0&&s===":")if(!i)this.doubleColon(n);else{if(i[0]==="word"&&i[1]==="progid")continue;return r}i=n}return!1}comment(e){let t=new Fm;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let n=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}createTokenizer(){this.tokenizer=Mm(this.input)}decl(e,t){let i=new Um;this.init(i,e[0][2]);let n=e[e.length-1];for(n[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||Om(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let o=e[0][0];if(o===":"||o==="space"||o==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let s;for(;e.length;)if(s=e.shift(),s[0]===":"){i.raws.between+=s[1];break}else s[0]==="word"&&/\w/.test(s[1])&&this.unknownWord([s]),i.raws.between+=s[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let r=[],l;for(;e.length&&(l=e[0][0],!(l!=="space"&&l!=="comment"));)r.push(e.shift());this.precheckMissedSemicolon(e);for(let o=e.length-1;o>=0;o--){if(s=e[o],s[1].toLowerCase()==="!important"){i.important=!0;let a=this.stringFrom(e,o);a=this.spacesFromEnd(e)+a,a!==" !important"&&(i.raws.important=a);break}else if(s[1].toLowerCase()==="important"){let a=e.slice(0),c="";for(let u=o;u>0;u--){let h=a[u][0];if(c.trim().startsWith("!")&&h!=="space")break;c=a.pop()[1]+c}c.trim().startsWith("!")&&(i.important=!0,i.raws.important=c,e=a)}if(s[0]!=="space"&&s[0]!=="comment")break}e.some(o=>o[0]!=="space"&&o[0]!=="comment")&&(i.raws.between+=r.map(o=>o[1]).join(""),r=[]),this.raw(i,"value",r.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new zl;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="",t.source.end=this.getPosition(e[2]),t.source.end.offset+=t.raws.ownSemicolon.length)}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let t=!1,i=null,n=!1,s=null,r=[],l=e[1].startsWith("--"),o=[],a=e;for(;a;){if(i=a[0],o.push(a),i==="("||i==="[")s||(s=a),r.push(i==="("?")":"]");else if(l&&n&&i==="{")s||(s=a),r.push("}");else if(r.length===0)if(i===";")if(n){this.decl(o,l);return}else break;else if(i==="{"){this.rule(o);return}else if(i==="}"){this.tokenizer.back(o.pop()),t=!0;break}else i===":"&&(n=!0);else i===r[r.length-1]&&(r.pop(),r.length===0&&(s=null));a=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),r.length>0&&this.unclosedBracket(s),t&&n){if(!l)for(;o.length&&(a=o[o.length-1][0],!(a!=="space"&&a!=="comment"));)this.tokenizer.back(o.pop());this.decl(o,l)}else this.unknownWord(o)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,t,i,n){let s,r,l=i.length,o="",a=!0,c,u;for(let h=0;h<l;h+=1)s=i[h],r=s[0],r==="space"&&h===l-1&&!n?a=!1:r==="comment"?(u=i[h-1]?i[h-1][0]:"empty",c=i[h+1]?i[h+1][0]:"empty",!Hl[u]&&!Hl[c]?o.slice(-1)===","?a=!1:o+=s[1]:a=!1):o+=s[1];if(!a){let h=i.reduce((p,m)=>p+m[1],"");e.raws[t]={raw:h,value:o}}e[t]=o}rule(e){e.pop();let t=new zl;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],t==="space");)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let n=t;n<e.length;n++)i+=e[n][1];return e.splice(t,e.length-t),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,t){throw this.input.error("At-rule without name",{offset:t[2]},{offset:t[2]+t[1].length})}};let zm=rt,Hm=sn,Pm=Em;function fn(e,t){let i=new Hm(e,t),n=new Pm(i);try{n.parse()}catch(s){throw process.env.NODE_ENV!=="production"&&s.name==="CssSyntaxError"&&t&&t.from&&(/\.scss$/i.test(t.from)?s.message+=`
|
|
312
|
+
`),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t=this.toUrl(this.path(e.file)),i=e.root||on(e.file),n;this.mapOpts.sourcesContent===!1?(n=new Ul(e.text),n.sourcesContent&&(n.sourcesContent=null)):n=e.consumer(),this.map.applySourceMap(n,t,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),Gm&&Vm&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,t=>{e+=t}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=ln.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new ln({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new ln({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,t=1,i="<no source>",n={generated:{column:0,line:0},original:{column:0,line:0},source:""},s,r;this.stringify(this.root,(l,o,a)=>{if(this.css+=l,o&&a!=="end"&&(n.generated.line=e,n.generated.column=t-1,o.source&&o.source.start?(n.source=this.sourcePath(o),n.original.line=o.source.start.line,n.original.column=o.source.start.column-1,this.map.addMapping(n)):(n.source=i,n.original.line=1,n.original.column=0,this.map.addMapping(n))),r=l.match(/\n/g),r?(e+=r.length,s=l.lastIndexOf(`
|
|
313
|
+
`),t=l.length-s):t+=l.length,o&&a!=="start"){let c=o.parent||{raws:{}};(!(o.type==="decl"||o.type==="atrule"&&!o.nodes)||o!==c.last||c.raws.semicolon)&&(o.source&&o.source.end?(n.source=this.sourcePath(o),n.original.line=o.source.end.line,n.original.column=o.source.end.column-1,n.generated.line=e,n.generated.column=t-2,this.map.addMapping(n)):(n.source=i,n.original.line=1,n.original.column=0,n.generated.line=e,n.generated.column=t-1,this.map.addMapping(n)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(t=>t.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let i=this.opts.to?on(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=on(Yl(i,this.mapOpts.annotation)));let n=Jl(i,e);return this.memoizedPaths.set(e,n),n}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}});else{let e=new Xm(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(t=>{if(t.source){let i=t.source.input.from;if(i&&!e[i]){e[i]=!0;let n=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(n,t.source.input.css)}}});else if(this.css){let t=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(t,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(Kl){let i=Kl(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;Fl==="\\"&&(e=e.replace(/\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};const Hs=39,Ol=34,an=92,El=47,cn=10,ei=32,un=12,dn=9,hn=13,Cm=91,Rm=93,Wm=40,vm=41,km=123,wm=125,xm=59,Tm=42,Lm=58,Nm=64,pn=/[\t\n\f\r "#'()/;[\\\]{}]/g,mn=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,Jm=/.[\r\n"'(/\\]/,zl=/[\da-f]/i;var Ym=function(e,t={}){let i=e.css.valueOf(),n=t.ignoreErrors,s,r,l,o,a,c,u,h,p,m,f=i.length,d=0,S=[],I=[];function V(){return d}function R(k){throw e.error("Unclosed "+k,d)}function G(){return I.length===0&&d>=f}function X(k){if(I.length)return I.pop();if(d>=f)return;let w=k?k.ignoreUnclosed:!1;switch(s=i.charCodeAt(d),s){case cn:case ei:case dn:case hn:case un:{o=d;do o+=1,s=i.charCodeAt(o);while(s===ei||s===cn||s===dn||s===hn||s===un);c=["space",i.slice(d,o)],d=o-1;break}case Cm:case Rm:case km:case wm:case Lm:case xm:case vm:{let g=String.fromCharCode(s);c=[g,g,d];break}case Wm:{if(m=S.length?S.pop()[1]:"",p=i.charCodeAt(d+1),m==="url"&&p!==Hs&&p!==Ol&&p!==ei&&p!==cn&&p!==dn&&p!==un&&p!==hn){o=d;do{if(u=!1,o=i.indexOf(")",o+1),o===-1)if(n||w){o=d;break}else R("bracket");for(h=o;i.charCodeAt(h-1)===an;)h-=1,u=!u}while(u);c=["brackets",i.slice(d,o+1),d,o],d=o}else o=i.indexOf(")",d+1),r=i.slice(d,o+1),o===-1||Jm.test(r)?c=["(","(",d]:(c=["brackets",r,d,o],d=o);break}case Hs:case Ol:{a=s===Hs?"'":'"',o=d;do{if(u=!1,o=i.indexOf(a,o+1),o===-1)if(n||w){o=d+1;break}else R("string");for(h=o;i.charCodeAt(h-1)===an;)h-=1,u=!u}while(u);c=["string",i.slice(d,o+1),d,o],d=o;break}case Nm:{pn.lastIndex=d+1,pn.test(i),pn.lastIndex===0?o=i.length-1:o=pn.lastIndex-2,c=["at-word",i.slice(d,o+1),d,o],d=o;break}case an:{for(o=d,l=!0;i.charCodeAt(o+1)===an;)o+=1,l=!l;if(s=i.charCodeAt(o+1),l&&s!==El&&s!==ei&&s!==cn&&s!==dn&&s!==hn&&s!==un&&(o+=1,zl.test(i.charAt(o)))){for(;zl.test(i.charAt(o+1));)o+=1;i.charCodeAt(o+1)===ei&&(o+=1)}c=["word",i.slice(d,o+1),d,o],d=o;break}default:{s===El&&i.charCodeAt(d+1)===Tm?(o=i.indexOf("*/",d+2)+1,o===0&&(n||w?o=i.length:R("comment")),c=["comment",i.slice(d,o+1),d,o],d=o):(mn.lastIndex=d+1,mn.test(i),mn.lastIndex===0?o=i.length-1:o=mn.lastIndex-2,c=["word",i.slice(d,o+1),d,o],S.push(c),d=o);break}}return d++,c}function v(k){I.push(k)}return{back:v,endOfFile:G,nextToken:X,position:V}};let Fm=Js,Um=$i,Km=qi,Mm=_t,Hl=zs,Om=Ym;const Pl={empty:!0,space:!0};function Em(e){for(let t=e.length-1;t>=0;t--){let i=e[t],n=i[3]||i[2];if(n)return n}}var zm=class{constructor(e){this.input=e,this.root=new Mm,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new Fm;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,n,s,r=!1,l=!1,o=[],a=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?a.push(i==="("?")":"]"):i==="{"&&a.length>0?a.push("}"):i===a[a.length-1]&&a.pop(),a.length===0)if(i===";"){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){l=!0;break}else if(i==="}"){if(o.length>0){for(s=o.length-1,n=o[s];n&&n[0]==="space";)n=o[--s];n&&(t.source.end=this.getPosition(n[3]||n[2]),t.source.end.offset++)}this.end(e);break}else o.push(e);else o.push(e);if(this.tokenizer.endOfFile()){r=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(o),o.length?(t.raws.afterName=this.spacesAndCommentsFromStart(o),this.raw(t,"params",o),r&&(e=o[o.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),l&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(t===!1)return;let i=0,n;for(let s=t-1;s>=0&&(n=e[s],!(n[0]!=="space"&&(i+=1,i===2)));s--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}colon(e){let t=0,i,n,s;for(let[r,l]of e.entries()){if(n=l,s=n[0],s==="("&&(t+=1),s===")"&&(t-=1),t===0&&s===":")if(!i)this.doubleColon(n);else{if(i[0]==="word"&&i[1]==="progid")continue;return r}i=n}return!1}comment(e){let t=new Um;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let n=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}createTokenizer(){this.tokenizer=Om(this.input)}decl(e,t){let i=new Km;this.init(i,e[0][2]);let n=e[e.length-1];for(n[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||Em(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let o=e[0][0];if(o===":"||o==="space"||o==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let s;for(;e.length;)if(s=e.shift(),s[0]===":"){i.raws.between+=s[1];break}else s[0]==="word"&&/\w/.test(s[1])&&this.unknownWord([s]),i.raws.between+=s[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let r=[],l;for(;e.length&&(l=e[0][0],!(l!=="space"&&l!=="comment"));)r.push(e.shift());this.precheckMissedSemicolon(e);for(let o=e.length-1;o>=0;o--){if(s=e[o],s[1].toLowerCase()==="!important"){i.important=!0;let a=this.stringFrom(e,o);a=this.spacesFromEnd(e)+a,a!==" !important"&&(i.raws.important=a);break}else if(s[1].toLowerCase()==="important"){let a=e.slice(0),c="";for(let u=o;u>0;u--){let h=a[u][0];if(c.trim().startsWith("!")&&h!=="space")break;c=a.pop()[1]+c}c.trim().startsWith("!")&&(i.important=!0,i.raws.important=c,e=a)}if(s[0]!=="space"&&s[0]!=="comment")break}e.some(o=>o[0]!=="space"&&o[0]!=="comment")&&(i.raws.between+=r.map(o=>o[1]).join(""),r=[]),this.raw(i,"value",r.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new Hl;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="",t.source.end=this.getPosition(e[2]),t.source.end.offset+=t.raws.ownSemicolon.length)}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let t=!1,i=null,n=!1,s=null,r=[],l=e[1].startsWith("--"),o=[],a=e;for(;a;){if(i=a[0],o.push(a),i==="("||i==="[")s||(s=a),r.push(i==="("?")":"]");else if(l&&n&&i==="{")s||(s=a),r.push("}");else if(r.length===0)if(i===";")if(n){this.decl(o,l);return}else break;else if(i==="{"){this.rule(o);return}else if(i==="}"){this.tokenizer.back(o.pop()),t=!0;break}else i===":"&&(n=!0);else i===r[r.length-1]&&(r.pop(),r.length===0&&(s=null));a=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),r.length>0&&this.unclosedBracket(s),t&&n){if(!l)for(;o.length&&(a=o[o.length-1][0],!(a!=="space"&&a!=="comment"));)this.tokenizer.back(o.pop());this.decl(o,l)}else this.unknownWord(o)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,t,i,n){let s,r,l=i.length,o="",a=!0,c,u;for(let h=0;h<l;h+=1)s=i[h],r=s[0],r==="space"&&h===l-1&&!n?a=!1:r==="comment"?(u=i[h-1]?i[h-1][0]:"empty",c=i[h+1]?i[h+1][0]:"empty",!Pl[u]&&!Pl[c]?o.slice(-1)===","?a=!1:o+=s[1]:a=!1):o+=s[1];if(!a){let h=i.reduce((p,m)=>p+m[1],"");e.raws[t]={raw:h,value:o}}e[t]=o}rule(e){e.pop();let t=new Hl;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],t==="space");)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let n=t;n<e.length;n++)i+=e[n][1];return e.splice(t,e.length-t),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,t){throw this.input.error("At-rule without name",{offset:t[2]},{offset:t[2]+t[1].length})}};let Hm=st,Pm=sn,Dm=zm;function fn(e,t){let i=new Pm(e,t),n=new Dm(i);try{n.parse()}catch(s){throw process.env.NODE_ENV!=="production"&&s.name==="CssSyntaxError"&&t&&t.from&&(/\.scss$/i.test(t.from)?s.message+=`
|
|
314
314
|
You tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser`:/\.sass/i.test(t.from)?s.message+=`
|
|
315
315
|
You tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser`:/\.less$/i.test(t.from)&&(s.message+=`
|
|
316
|
-
You tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)),s}return n.root}var Ps=fn;fn.default=fn,zm.registerParse(fn);let Ds=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let i=t.node.rangeBy(t);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in t)this[i]=t[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var Pl=Ds;Ds.default=Ds;let Dm=Pl,Bs=class{get content(){return this.css}constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new Dm(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};var Qs=Bs;Bs.default=Bs;let Dl={};var Bl=function(e){Dl[e]||(Dl[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))};let Bm=rt,Qm=Ys,jm=Kl,Am=Ps,Ql=Qs,_m=$t,$m=Ai,{isClean:Ye,my:qm}=jt,ef=Bl;const tf={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},nf={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},sf={Once:!0,postcssPlugin:!0,prepare:!0},Ct=0;function ii(e){return typeof e=="object"&&typeof e.then=="function"}function jl(e){let t=!1,i=tf[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[i,i+"-"+t,Ct,i+"Exit",i+"Exit-"+t]:t?[i,i+"-"+t,i+"Exit",i+"Exit-"+t]:e.append?[i,Ct,i+"Exit"]:[i,i+"Exit"]}function Al(e){let t;return e.type==="document"?t=["Document",Ct,"DocumentExit"]:e.type==="root"?t=["Root",Ct,"RootExit"]:t=jl(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function js(e){return e[Ye]=!1,e.nodes&&e.nodes.forEach(t=>js(t)),e}let As={},Rt=class uu{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(t,i,n){this.stringified=!1,this.processed=!1;let s;if(typeof i=="object"&&i!==null&&(i.type==="root"||i.type==="document"))s=js(i);else if(i instanceof uu||i instanceof Ql)s=js(i.root),i.map&&(typeof n.map>"u"&&(n.map={}),n.map.inline||(n.map.inline=!1),n.map.prev=i.map);else{let r=Am;n.syntax&&(r=n.syntax.parse),n.parser&&(r=n.parser),r.parse&&(r=r.parse);try{s=r(i,n)}catch(l){this.processed=!0,this.error=l}s&&!s[qm]&&Bm.rebuild(s)}this.result=new Ql(t,s,n),this.helpers=he(Y({},As),{postcss:As,result:this.result}),this.plugins=this.processor.plugins.map(r=>typeof r=="object"&&r.prepare?Y(Y({},r),r.prepare(this.result)):r)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,i){let n=this.result.lastPlugin;try{if(i&&i.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin)t.plugin=n.postcssPlugin,t.setMessage();else if(n.postcssVersion&&process.env.NODE_ENV!=="production"){let s=n.postcssPlugin,r=n.postcssVersion,l=this.result.processor.version,o=r.split("."),a=l.split(".");(o[0]!==a[0]||parseInt(o[1])>parseInt(a[1]))&&console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+l+", but "+s+" uses "+r+". Perhaps this is the source of the error below.")}}catch(s){console&&console.error&&console.error(s)}return t}prepareVisitors(){this.listeners={};let t=(i,n,s)=>{this.listeners[n]||(this.listeners[n]=[]),this.listeners[n].push([i,s])};for(let i of this.plugins)if(typeof i=="object")for(let n in i){if(!nf[n]&&/^[A-Z]/.test(n))throw new Error(`Unknown event ${n} in ${i.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!sf[n])if(typeof i[n]=="object")for(let s in i[n])s==="*"?t(i,n,i[n][s]):t(i,n+"-"+s.toLowerCase(),i[n][s]);else typeof i[n]=="function"&&t(i,n,i[n])}this.hasListener=Object.keys(this.listeners).length>0}runAsync(){return ye(this,null,function*(){this.plugin=0;for(let t=0;t<this.plugins.length;t++){let i=this.plugins[t],n=this.runOnRoot(i);if(ii(n))try{yield n}catch(s){throw this.handleError(s)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];){t[Ye]=!0;let i=[Al(t)];for(;i.length>0;){let n=this.visitTick(i);if(ii(n))try{yield n}catch(s){let r=i[i.length-1].node;throw this.handleError(s,r)}}}if(this.listeners.OnceExit)for(let[i,n]of this.listeners.OnceExit){this.result.lastPlugin=i;try{if(t.type==="document"){let s=t.nodes.map(r=>n(r,this.helpers));yield Promise.all(s)}else yield n(t,this.helpers)}catch(s){throw this.handleError(s)}}}return this.processed=!0,this.stringify()})}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let i=this.result.root.nodes.map(n=>t.Once(n,this.helpers));return ii(i[0])?Promise.all(i):i}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(this.result.root,this.result)}catch(i){throw this.handleError(i)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,i=$m;t.syntax&&(i=t.syntax.stringify),t.stringifier&&(i=t.stringifier),i.stringify&&(i=i.stringify);let n=new jm(i,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let t of this.plugins){let i=this.runOnRoot(t);if(ii(i))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];)t[Ye]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let i of t.nodes)this.visitSync(this.listeners.OnceExit,i);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,i){return process.env.NODE_ENV!=="production"&&("from"in this.opts||ef("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(t,i)}toString(){return this.css}visitSync(t,i){for(let[n,s]of t){this.result.lastPlugin=n;let r;try{r=s(i,this.helpers)}catch(l){throw this.handleError(l,i.proxyOf)}if(i.type!=="root"&&i.type!=="document"&&!i.parent)return!0;if(ii(r))throw this.getAsyncError()}}visitTick(t){let i=t[t.length-1],{node:n,visitors:s}=i;if(n.type!=="root"&&n.type!=="document"&&!n.parent){t.pop();return}if(s.length>0&&i.visitorIndex<s.length){let[l,o]=s[i.visitorIndex];i.visitorIndex+=1,i.visitorIndex===s.length&&(i.visitors=[],i.visitorIndex=0),this.result.lastPlugin=l;try{return o(n.toProxy(),this.helpers)}catch(a){throw this.handleError(a,n)}}if(i.iterator!==0){let l=i.iterator,o;for(;o=n.nodes[n.indexes[l]];)if(n.indexes[l]+=1,!o[Ye]){o[Ye]=!0,t.push(Al(o));return}i.iterator=0,delete n.indexes[l]}let r=i.events;for(;i.eventIndex<r.length;){let l=r[i.eventIndex];if(i.eventIndex+=1,l===Ct){n.nodes&&n.nodes.length&&(n[Ye]=!0,i.iterator=n.getIterator());return}else if(this.listeners[l]){i.visitors=this.listeners[l];return}}t.pop()}walkSync(t){t[Ye]=!0;let i=jl(t);for(let n of i)if(n===Ct)t.nodes&&t.each(s=>{s[Ye]||this.walkSync(s)});else{let s=this.listeners[n];if(s&&this.visitSync(s,t.toProxy()))return}}warnings(){return this.sync().warnings()}};Rt.registerPostcss=e=>{As=e};var _l=Rt;Rt.default=Rt,_m.registerLazyResult(Rt),Qm.registerLazyResult(Rt);let rf=Kl,of=Ps;const lf=Qs;let af=Ai,cf=Bl,_s=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=of;try{e=t(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let n,s=af;this.result=new lf(this._processor,n,this._opts),this.result.css=t;let r=this;Object.defineProperty(this.result,"root",{get(){return r.root}});let l=new rf(s,n,this._opts,t);if(l.isMap()){let[o,a]=l.generate();o&&(this.result.css=o),a&&(this.result.map=a)}else l.clearAnnotation(),this.result.css=l.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return process.env.NODE_ENV!=="production"&&("from"in this._opts||cf("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(e,t)}toString(){return this._css}warnings(){return[]}};var uf=_s;_s.default=_s;let df=Ys,hf=_l,pf=uf,mf=$t,ni=class{constructor(e=[]){this.version="8.5.6",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)t.push(i);else if(typeof i=="function")t.push(i);else if(typeof i=="object"&&(i.parse||i.stringify)){if(process.env.NODE_ENV!=="production")throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.")}else throw new Error(i+" is not a PostCSS plugin");return t}process(e,t={}){return!this.plugins.length&&!t.parser&&!t.stringifier&&!t.syntax?new pf(this,e,t):new hf(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};var ff=ni;ni.default=ni,mf.registerProcessor(ni),df.registerProcessor(ni);let $l=Js,ql=$i,bf=rt,yf=Rs,ea=qi,ta=Ys,gf=Im,Zf=sn,If=_l,Sf=Tl,Xf=_i,Vf=Ps,$s=ff,Gf=Qs,ia=$t,na=zs,Cf=Ai,Rf=Pl;function q(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new $s(e)}q.plugin=function(e,t){let i=!1;function n(...r){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:
|
|
316
|
+
You tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)),s}return n.root}var Ps=fn;fn.default=fn,Hm.registerParse(fn);let Ds=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let i=t.node.rangeBy(t);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in t)this[i]=t[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var Dl=Ds;Ds.default=Ds;let Bm=Dl,Bs=class{get content(){return this.css}constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new Bm(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};var Qs=Bs;Bs.default=Bs;let Bl={};var Ql=function(e){Bl[e]||(Bl[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))};let Qm=st,jm=Ys,Am=Ml,_m=Ps,jl=Qs,$m=_t,qm=Ai,{isClean:Ye,my:ef}=Qt,tf=Ql;const nf={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},sf={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},rf={Once:!0,postcssPlugin:!0,prepare:!0},Ct=0;function ti(e){return typeof e=="object"&&typeof e.then=="function"}function Al(e){let t=!1,i=nf[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[i,i+"-"+t,Ct,i+"Exit",i+"Exit-"+t]:t?[i,i+"-"+t,i+"Exit",i+"Exit-"+t]:e.append?[i,Ct,i+"Exit"]:[i,i+"Exit"]}function _l(e){let t;return e.type==="document"?t=["Document",Ct,"DocumentExit"]:e.type==="root"?t=["Root",Ct,"RootExit"]:t=Al(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function js(e){return e[Ye]=!1,e.nodes&&e.nodes.forEach(t=>js(t)),e}let As={},Rt=class du{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(t,i,n){this.stringified=!1,this.processed=!1;let s;if(typeof i=="object"&&i!==null&&(i.type==="root"||i.type==="document"))s=js(i);else if(i instanceof du||i instanceof jl)s=js(i.root),i.map&&(typeof n.map>"u"&&(n.map={}),n.map.inline||(n.map.inline=!1),n.map.prev=i.map);else{let r=_m;n.syntax&&(r=n.syntax.parse),n.parser&&(r=n.parser),r.parse&&(r=r.parse);try{s=r(i,n)}catch(l){this.processed=!0,this.error=l}s&&!s[ef]&&Qm.rebuild(s)}this.result=new jl(t,s,n),this.helpers=he(Y({},As),{postcss:As,result:this.result}),this.plugins=this.processor.plugins.map(r=>typeof r=="object"&&r.prepare?Y(Y({},r),r.prepare(this.result)):r)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,i){let n=this.result.lastPlugin;try{if(i&&i.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin)t.plugin=n.postcssPlugin,t.setMessage();else if(n.postcssVersion&&process.env.NODE_ENV!=="production"){let s=n.postcssPlugin,r=n.postcssVersion,l=this.result.processor.version,o=r.split("."),a=l.split(".");(o[0]!==a[0]||parseInt(o[1])>parseInt(a[1]))&&console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+l+", but "+s+" uses "+r+". Perhaps this is the source of the error below.")}}catch(s){console&&console.error&&console.error(s)}return t}prepareVisitors(){this.listeners={};let t=(i,n,s)=>{this.listeners[n]||(this.listeners[n]=[]),this.listeners[n].push([i,s])};for(let i of this.plugins)if(typeof i=="object")for(let n in i){if(!sf[n]&&/^[A-Z]/.test(n))throw new Error(`Unknown event ${n} in ${i.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!rf[n])if(typeof i[n]=="object")for(let s in i[n])s==="*"?t(i,n,i[n][s]):t(i,n+"-"+s.toLowerCase(),i[n][s]);else typeof i[n]=="function"&&t(i,n,i[n])}this.hasListener=Object.keys(this.listeners).length>0}runAsync(){return ye(this,null,function*(){this.plugin=0;for(let t=0;t<this.plugins.length;t++){let i=this.plugins[t],n=this.runOnRoot(i);if(ti(n))try{yield n}catch(s){throw this.handleError(s)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];){t[Ye]=!0;let i=[_l(t)];for(;i.length>0;){let n=this.visitTick(i);if(ti(n))try{yield n}catch(s){let r=i[i.length-1].node;throw this.handleError(s,r)}}}if(this.listeners.OnceExit)for(let[i,n]of this.listeners.OnceExit){this.result.lastPlugin=i;try{if(t.type==="document"){let s=t.nodes.map(r=>n(r,this.helpers));yield Promise.all(s)}else yield n(t,this.helpers)}catch(s){throw this.handleError(s)}}}return this.processed=!0,this.stringify()})}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let i=this.result.root.nodes.map(n=>t.Once(n,this.helpers));return ti(i[0])?Promise.all(i):i}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(this.result.root,this.result)}catch(i){throw this.handleError(i)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,i=qm;t.syntax&&(i=t.syntax.stringify),t.stringifier&&(i=t.stringifier),i.stringify&&(i=i.stringify);let n=new Am(i,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let t of this.plugins){let i=this.runOnRoot(t);if(ti(i))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];)t[Ye]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let i of t.nodes)this.visitSync(this.listeners.OnceExit,i);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,i){return process.env.NODE_ENV!=="production"&&("from"in this.opts||tf("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(t,i)}toString(){return this.css}visitSync(t,i){for(let[n,s]of t){this.result.lastPlugin=n;let r;try{r=s(i,this.helpers)}catch(l){throw this.handleError(l,i.proxyOf)}if(i.type!=="root"&&i.type!=="document"&&!i.parent)return!0;if(ti(r))throw this.getAsyncError()}}visitTick(t){let i=t[t.length-1],{node:n,visitors:s}=i;if(n.type!=="root"&&n.type!=="document"&&!n.parent){t.pop();return}if(s.length>0&&i.visitorIndex<s.length){let[l,o]=s[i.visitorIndex];i.visitorIndex+=1,i.visitorIndex===s.length&&(i.visitors=[],i.visitorIndex=0),this.result.lastPlugin=l;try{return o(n.toProxy(),this.helpers)}catch(a){throw this.handleError(a,n)}}if(i.iterator!==0){let l=i.iterator,o;for(;o=n.nodes[n.indexes[l]];)if(n.indexes[l]+=1,!o[Ye]){o[Ye]=!0,t.push(_l(o));return}i.iterator=0,delete n.indexes[l]}let r=i.events;for(;i.eventIndex<r.length;){let l=r[i.eventIndex];if(i.eventIndex+=1,l===Ct){n.nodes&&n.nodes.length&&(n[Ye]=!0,i.iterator=n.getIterator());return}else if(this.listeners[l]){i.visitors=this.listeners[l];return}}t.pop()}walkSync(t){t[Ye]=!0;let i=Al(t);for(let n of i)if(n===Ct)t.nodes&&t.each(s=>{s[Ye]||this.walkSync(s)});else{let s=this.listeners[n];if(s&&this.visitSync(s,t.toProxy()))return}}warnings(){return this.sync().warnings()}};Rt.registerPostcss=e=>{As=e};var $l=Rt;Rt.default=Rt,$m.registerLazyResult(Rt),jm.registerLazyResult(Rt);let of=Ml,lf=Ps;const af=Qs;let cf=Ai,uf=Ql,_s=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=lf;try{e=t(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let n,s=cf;this.result=new af(this._processor,n,this._opts),this.result.css=t;let r=this;Object.defineProperty(this.result,"root",{get(){return r.root}});let l=new of(s,n,this._opts,t);if(l.isMap()){let[o,a]=l.generate();o&&(this.result.css=o),a&&(this.result.map=a)}else l.clearAnnotation(),this.result.css=l.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return process.env.NODE_ENV!=="production"&&("from"in this._opts||uf("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(e,t)}toString(){return this._css}warnings(){return[]}};var df=_s;_s.default=_s;let hf=Ys,pf=$l,mf=df,ff=_t,ii=class{constructor(e=[]){this.version="8.5.6",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)t.push(i);else if(typeof i=="function")t.push(i);else if(typeof i=="object"&&(i.parse||i.stringify)){if(process.env.NODE_ENV!=="production")throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.")}else throw new Error(i+" is not a PostCSS plugin");return t}process(e,t={}){return!this.plugins.length&&!t.parser&&!t.stringifier&&!t.syntax?new mf(this,e,t):new pf(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};var bf=ii;ii.default=ii,ff.registerProcessor(ii),hf.registerProcessor(ii);let ql=Js,ea=$i,yf=st,gf=Rs,ta=qi,ia=Ys,Zf=Sm,If=sn,Sf=$l,Xf=Ll,Vf=_i,Gf=Ps,$s=bf,Cf=Qs,na=_t,sa=zs,Rf=Ai,Wf=Dl;function q(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new $s(e)}q.plugin=function(e,t){let i=!1;function n(...r){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:
|
|
317
317
|
https://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: 里面 postcss.plugin 被弃用. 迁移指南:
|
|
318
|
-
https://www.w3ctech.com/topic/2226`));let l=t(...r);return l.postcssPlugin=e,l.postcssVersion=new $s().version,l}let s;return Object.defineProperty(n,"postcss",{get(){return s||(s=n()),s}}),n.process=function(r,l,o){return q([n(o)]).process(r,l)},n},q.stringify=
|
|
318
|
+
https://www.w3ctech.com/topic/2226`));let l=t(...r);return l.postcssPlugin=e,l.postcssVersion=new $s().version,l}let s;return Object.defineProperty(n,"postcss",{get(){return s||(s=n()),s}}),n.process=function(r,l,o){return q([n(o)]).process(r,l)},n},q.stringify=Rf,q.parse=Gf,q.fromJSON=Zf,q.list=Xf,q.comment=e=>new ea(e),q.atRule=e=>new ql(e),q.decl=e=>new ta(e),q.rule=e=>new sa(e),q.root=e=>new na(e),q.document=e=>new ia(e),q.CssSyntaxError=gf,q.Declaration=ta,q.Container=yf,q.Processor=$s,q.Document=ia,q.Comment=ea,q.Warning=Wf,q.AtRule=ql,q.Result=Cf,q.Input=If,q.Rule=sa,q.Root=na,q.Node=Vf,Sf.registerPostcss(q),q.default=q;var vf=Object.defineProperty,kf=(e,t,i)=>t in e?vf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,We=(e,t,i)=>kf(e,typeof t!="symbol"?t+"":t,i);function wf(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var i=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};i.prototype=t.prototype}else i={};return Object.defineProperty(i,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(i,n,s.get?s:{enumerable:!0,get:function(){return e[n]}})}),i}var qs={exports:{}},O=String,ra=function(){return{isColorSupported:!1,reset:O,bold:O,dim:O,italic:O,underline:O,inverse:O,hidden:O,strikethrough:O,black:O,red:O,green:O,yellow:O,blue:O,magenta:O,cyan:O,white:O,gray:O,bgBlack:O,bgRed:O,bgGreen:O,bgYellow:O,bgBlue:O,bgMagenta:O,bgCyan:O,bgWhite:O,blackBright:O,redBright:O,greenBright:O,yellowBright:O,blueBright:O,magentaBright:O,cyanBright:O,whiteBright:O,bgBlackBright:O,bgRedBright:O,bgGreenBright:O,bgYellowBright:O,bgBlueBright:O,bgMagentaBright:O,bgCyanBright:O,bgWhiteBright:O}};qs.exports=ra(),qs.exports.createColors=ra;var xf=qs.exports;const Tf={},Lf=Object.freeze(Object.defineProperty({__proto__:null,default:Tf},Symbol.toStringTag,{value:"Module"})),Te=wf(Lf);let oa=xf,la=Te,er=class hu extends Error{constructor(t,i,n,s,r,l){super(t),this.name="CssSyntaxError",this.reason=t,r&&(this.file=r),s&&(this.source=s),l&&(this.plugin=l),typeof i<"u"&&typeof n<"u"&&(typeof i=="number"?(this.line=i,this.column=n):(this.line=i.line,this.column=i.column,this.endLine=n.line,this.endColumn=n.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,hu)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(t){if(!this.source)return"";let i=this.source;t==null&&(t=oa.isColorSupported);let n=u=>u,s=u=>u,r=u=>u;if(t){let{bold:u,gray:h,red:p}=oa.createColors(!0);s=m=>u(p(m)),n=m=>h(m),la&&(r=m=>la(m))}let l=i.split(/\r?\n/),o=Math.max(this.line-3,0),a=Math.min(this.line+2,l.length),c=String(a).length;return l.slice(o,a).map((u,h)=>{let p=o+1+h,m=" "+(" "+p).slice(-c)+" | ";if(p===this.line){if(u.length>160){let d=20,S=Math.max(0,this.column-d),I=Math.max(this.column+d,this.endColumn+d),V=u.slice(S,I),R=n(m.replace(/\d/g," "))+u.slice(0,Math.min(this.column-1,d-1)).replace(/[^\t]/g," ");return s(">")+n(m)+r(V)+`
|
|
319
319
|
`+R+s("^")}let f=n(m.replace(/\d/g," "))+u.slice(0,this.column-1).replace(/[^\t]/g," ");return s(">")+n(m)+r(u)+`
|
|
320
320
|
`+f+s("^")}return" "+n(m)+r(u)}).join(`
|
|
321
321
|
`)}toString(){let t=this.showSourceCode();return t&&(t=`
|
|
322
322
|
|
|
323
323
|
`+t+`
|
|
324
|
-
`),this.name+": "+this.message+t}};var tr=er;er.default=er;const
|
|
324
|
+
`),this.name+": "+this.message+t}};var tr=er;er.default=er;const aa={after:`
|
|
325
325
|
`,beforeClose:`
|
|
326
326
|
`,beforeComment:`
|
|
327
327
|
`,beforeDecl:`
|
|
328
328
|
`,beforeOpen:" ",beforeRule:`
|
|
329
|
-
`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function
|
|
330
|
-
`)){let r=this.raw(e,null,"indent");if(r.length)for(let l=0;l<s;l++)i+=r}return i}block(e,t){let i=this.raw(e,"between","beforeOpen");this.builder(t+i+"{",e,"start");let n;e.nodes&&e.nodes.length?(this.body(e),n=this.raw(e,"after")):n=this.raw(e,"after","emptyBody"),n&&this.builder(n),this.builder("}",e,"end")}body(e){let t=e.nodes.length-1;for(;t>0&&e.nodes[t].type==="comment";)t-=1;let i=this.raw(e,"semicolon");for(let n=0;n<e.nodes.length;n++){let s=e.nodes[n],r=this.raw(s,"before");r&&this.builder(r),this.stringify(s,t!==n||i)}}comment(e){let t=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+i+"*/",e)}decl(e,t){let i=this.raw(e,"between","colon"),n=e.prop+i+this.rawValue(e,"value");e.important&&(n+=e.raws.important||" !important"),t&&(n+=";"),this.builder(n,e)}document(e){this.body(e)}raw(e,t,i){let n;if(i||(i=t),t&&(n=e.raws[t],typeof n<"u"))return n;let s=e.parent;if(i==="before"&&(!s||s.type==="root"&&s.first===e||s&&s.type==="document"))return"";if(!s)return
|
|
329
|
+
`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function Nf(e){return e[0].toUpperCase()+e.slice(1)}let ir=class{constructor(e){this.builder=e}atrule(e,t){let i="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName<"u"?i+=e.raws.afterName:n&&(i+=" "),e.nodes)this.block(e,i+n);else{let s=(e.raws.between||"")+(t?";":"");this.builder(i+n+s,e)}}beforeAfter(e,t){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):t==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let n=e.parent,s=0;for(;n&&n.type!=="root";)s+=1,n=n.parent;if(i.includes(`
|
|
330
|
+
`)){let r=this.raw(e,null,"indent");if(r.length)for(let l=0;l<s;l++)i+=r}return i}block(e,t){let i=this.raw(e,"between","beforeOpen");this.builder(t+i+"{",e,"start");let n;e.nodes&&e.nodes.length?(this.body(e),n=this.raw(e,"after")):n=this.raw(e,"after","emptyBody"),n&&this.builder(n),this.builder("}",e,"end")}body(e){let t=e.nodes.length-1;for(;t>0&&e.nodes[t].type==="comment";)t-=1;let i=this.raw(e,"semicolon");for(let n=0;n<e.nodes.length;n++){let s=e.nodes[n],r=this.raw(s,"before");r&&this.builder(r),this.stringify(s,t!==n||i)}}comment(e){let t=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+i+"*/",e)}decl(e,t){let i=this.raw(e,"between","colon"),n=e.prop+i+this.rawValue(e,"value");e.important&&(n+=e.raws.important||" !important"),t&&(n+=";"),this.builder(n,e)}document(e){this.body(e)}raw(e,t,i){let n;if(i||(i=t),t&&(n=e.raws[t],typeof n<"u"))return n;let s=e.parent;if(i==="before"&&(!s||s.type==="root"&&s.first===e||s&&s.type==="document"))return"";if(!s)return aa[i];let r=e.root();if(r.rawCache||(r.rawCache={}),typeof r.rawCache[i]<"u")return r.rawCache[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let l="raw"+Nf(i);this[l]?n=this[l](r,e):r.walk(o=>{if(n=o.raws[t],typeof n<"u")return!1})}return typeof n>"u"&&(n=aa[i]),r.rawCache[i]=n,n}rawBeforeClose(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return t=i.raws.after,t.includes(`
|
|
331
331
|
`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let i;return e.walkComments(n=>{if(typeof n.raws.before<"u")return i=n.raws.before,i.includes(`
|
|
332
332
|
`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(t,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,t){let i;return e.walkDecls(n=>{if(typeof n.raws.before<"u")return i=n.raws.before,i.includes(`
|
|
333
333
|
`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(t,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(e){let t;return e.walk(i=>{if(i.type!=="decl"&&(t=i.raws.between,typeof t<"u"))return!1}),t}rawBeforeRule(e){let t;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return t=i.raws.before,t.includes(`
|
|
334
334
|
`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return t=i.raws.between.replace(/[^\s:]/g,""),!1}),t}rawEmptyBody(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(t=i.raws.after,typeof t<"u"))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(i=>{let n=i.parent;if(n&&n!==e&&n.parent&&n.parent===e&&typeof i.raws.before<"u"){let s=i.raws.before.split(`
|
|
335
|
-
`);return t=s[s.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(t=i.raws.semicolon,typeof t<"u"))return!1}),t}rawValue(e,t){let i=e[t],n=e.raws[t];return n&&n.value===i?n.raw:i}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};var
|
|
336
|
-
`?(i=1,n+=1):i+=1}return s}let rr=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[
|
|
337
|
-
`?(t=1,i+=1):t+=1;return{column:t,line:i,offset:r}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let t="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:Pe(t,this.source.start)},n=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:Pe(t,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=t.slice(Pe(t,this.source.start),Pe(t,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),n=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Pe(t,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?n={column:e.end.column,line:e.end.line,offset:Pe(t,e.end)}:typeof e.endIndex=="number"?n=this.positionInside(e.endIndex):e.index&&(n=this.positionInside(e.index+1));return(n.line<i.line||n.line===i.line&&n.column<=i.column)&&(n={column:i.column+1,line:i.line,offset:i.offset+1}),{end:n,start:i}}raw(e,t){return new Yf().raw(this,e,t)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let t=this,i=!1;for(let n of e)n===this?i=!0:i?(this.parent.insertAfter(t,n),t=n):this.parent.insertBefore(t,n);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,t){let i={},n=t==null;t=t||new Map;let s=0;for(let r in this){if(!Object.prototype.hasOwnProperty.call(this,r)||r==="parent"||r==="proxyCache")continue;let l=this[r];if(Array.isArray(l))i[r]=l.map(o=>typeof o=="object"&&o.toJSON?o.toJSON(null,t):o);else if(typeof l=="object"&&l.toJSON)i[r]=l.toJSON(null,t);else if(r==="source"){if(l==null)continue;let o=t.get(l.input);o==null&&(o=s,t.set(l.input,s),s++),i[r]={end:l.end,inputId:o,start:l.start}}else i[r]=l}return n&&(i.inputs=[...t.keys()].map(r=>r.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Ff){e.stringify&&(e=e.stringify);let t="";return e(this,i=>{t+=i}),t}warn(e,t,i={}){let n={node:this};for(let s in i)n[s]=i[s];return e.warn(t,n)}};var yn=rr;rr.default=rr;let Kf=yn,or=class extends Kf{constructor(e){super(e),this.type="comment"}};var gn=or;or.default=or;let Mf=yn,lr=class extends Mf{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e=he(Y({},e),{value:String(e.value)})),super(e),this.type="decl"}};var Zn=lr;lr.default=lr;let ca=gn,ua=Zn,Of=yn,{isClean:da,my:ha}=si,ar,pa,ma,cr;function fa(e){return e.map(t=>(t.nodes&&(t.nodes=fa(t.nodes)),delete t.source,t))}function ba(e){if(e[da]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)ba(t)}let De=class hu extends Of{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...t){for(let i of t){let n=this.normalize(i,this.last);for(let s of n)this.proxyOf.nodes.push(s)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let i of this.nodes)i.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let i=this.getIterator(),n,s;for(;this.indexes[i]<this.proxyOf.nodes.length&&(n=this.indexes[i],s=t(this.proxyOf.nodes[n],n),s!==!1);)this.indexes[i]+=1;return delete this.indexes[i],s}every(t){return this.nodes.every(t)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}getProxyProcessor(){return{get(t,i){return i==="proxyOf"?t:t[i]?i==="each"||typeof i=="string"&&i.startsWith("walk")?(...n)=>t[i](...n.map(s=>typeof s=="function"?(r,l)=>s(r.toProxy(),l):s)):i==="every"||i==="some"?n=>t[i]((s,...r)=>n(s.toProxy(),...r)):i==="root"?()=>t.root().toProxy():i==="nodes"?t.nodes.map(n=>n.toProxy()):i==="first"||i==="last"?t[i].toProxy():t[i]:t[i]},set(t,i,n){return t[i]===n||(t[i]=n,(i==="name"||i==="params"||i==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,i){let n=this.index(t),s=this.normalize(i,this.proxyOf.nodes[n]).reverse();n=this.index(t);for(let l of s)this.proxyOf.nodes.splice(n+1,0,l);let r;for(let l in this.indexes)r=this.indexes[l],n<r&&(this.indexes[l]=r+s.length);return this.markDirty(),this}insertBefore(t,i){let n=this.index(t),s=n===0?"prepend":!1,r=this.normalize(i,this.proxyOf.nodes[n],s).reverse();n=this.index(t);for(let o of r)this.proxyOf.nodes.splice(n,0,o);let l;for(let o in this.indexes)l=this.indexes[o],n<=l&&(this.indexes[o]=l+r.length);return this.markDirty(),this}normalize(t,i){if(typeof t=="string")t=fa(pa(t).nodes);else if(typeof t>"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let n of t)n.parent&&n.parent.removeChild(n,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let n of t)n.parent&&n.parent.removeChild(n,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new ua(t)]}else if(t.selector||t.selectors)t=[new cr(t)];else if(t.name)t=[new ar(t)];else if(t.text)t=[new ca(t)];else throw new Error("Unknown node type in node creation");return t.map(n=>(n[ha]||hu.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[da]&&ba(n),n.raws||(n.raws={}),typeof n.raws.before>"u"&&i&&typeof i.raws.before<"u"&&(n.raws.before=i.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}prepend(...t){t=t.reverse();for(let i of t){let n=this.normalize(i,this.first,"prepend").reverse();for(let s of n)this.proxyOf.nodes.unshift(s);for(let s in this.indexes)this.indexes[s]=this.indexes[s]+n.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let i;for(let n in this.indexes)i=this.indexes[n],i>=t&&(this.indexes[n]=i-1);return this.markDirty(),this}replaceValues(t,i,n){return n||(n=i,i={}),this.walkDecls(s=>{i.props&&!i.props.includes(s.prop)||i.fast&&!s.value.includes(i.fast)||(s.value=s.value.replace(t,n))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((i,n)=>{let s;try{s=t(i,n)}catch(r){throw i.addToError(r)}return s!==!1&&i.walk&&(s=i.walk(t)),s})}walkAtRules(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="atrule"&&t.test(n.name))return i(n,s)}):this.walk((n,s)=>{if(n.type==="atrule"&&n.name===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="atrule")return i(n,s)}))}walkComments(t){return this.walk((i,n)=>{if(i.type==="comment")return t(i,n)})}walkDecls(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="decl"&&t.test(n.prop))return i(n,s)}):this.walk((n,s)=>{if(n.type==="decl"&&n.prop===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="decl")return i(n,s)}))}walkRules(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="rule"&&t.test(n.selector))return i(n,s)}):this.walk((n,s)=>{if(n.type==="rule"&&n.selector===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="rule")return i(n,s)}))}};De.registerParse=e=>{pa=e},De.registerRule=e=>{cr=e},De.registerAtRule=e=>{ar=e},De.registerRoot=e=>{ma=e};var ot=De;De.default=De,De.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,ar.prototype):e.type==="rule"?Object.setPrototypeOf(e,cr.prototype):e.type==="decl"?Object.setPrototypeOf(e,ua.prototype):e.type==="comment"?Object.setPrototypeOf(e,ca.prototype):e.type==="root"&&Object.setPrototypeOf(e,ma.prototype),e[ha]=!0,e.nodes&&e.nodes.forEach(t=>{De.rebuild(t)})};let ya=ot,In=class extends ya{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};var ur=In;In.default=In,ya.registerAtRule(In);let Ef=ot,ga,Za,oi=class extends Ef{constructor(e){super(Y({type:"document"},e)),this.nodes||(this.nodes=[])}toResult(e={}){return new ga(new Za,this,e).stringify()}};oi.registerLazyResult=e=>{ga=e},oi.registerProcessor=e=>{Za=e};var dr=oi;oi.default=oi;let zf="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Hf={nanoid:(e=21)=>{let t="",i=e|0;for(;i--;)t+=zf[Math.random()*64|0];return t}};let{existsSync:Pf,readFileSync:Df}=Te,{dirname:hr,join:Bf}=Te,{SourceMapConsumer:Ia,SourceMapGenerator:Sa}=Te;function Qf(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}let pr=class{constructor(e,t){if(t.map===!1)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=t.map?t.map.prev:void 0,n=this.loadMap(t.from,i);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=hr(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new Ia(this.text)),this.consumerCache}decodeInline(e){let t=/^data:application\/json;charset=utf-?8;base64,/,i=/^data:application\/json;base64,/,n=/^data:application\/json;charset=utf-?8,/,s=/^data:application\/json,/,r=e.match(n)||e.match(s);if(r)return decodeURIComponent(e.substr(r[0].length));let l=e.match(t)||e.match(i);if(l)return Qf(e.substr(l[0].length));let o=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+o)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/g);if(!t)return;let i=e.lastIndexOf(t.pop()),n=e.indexOf("*/",i);i>-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,n)))}loadFile(e){if(this.root=hr(e),Pf(e))return this.mapFile=e,Df(e,"utf-8").toString().trim()}loadMap(e,t){if(t===!1)return!1;if(t){if(typeof t=="string")return t;if(typeof t=="function"){let i=t(e);if(i){let n=this.loadFile(i);if(!n)throw new Error("Unable to load previous source map: "+i.toString());return n}}else{if(t instanceof Ia)return Sa.fromSourceMap(t).toString();if(t instanceof Sa)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;return e&&(i=Bf(hr(e),i)),this.loadFile(i)}}}startWith(e,t){return e?e.substr(0,t.length)===t:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var Xa=pr;pr.default=pr;let{nanoid:jf}=Hf,{isAbsolute:mr,resolve:fr}=Te,{SourceMapConsumer:Af,SourceMapGenerator:_f}=Te,{fileURLToPath:Va,pathToFileURL:Sn}=Te,Ga=tr,$f=Xa,br=Te,yr=Symbol("lineToIndexCache"),qf=!!(Af&&_f),Ca=!!(fr&&mr);function Ra(e){if(e[yr])return e[yr];let t=e.css.split(`
|
|
338
|
-
`),i=new Array(t.length),n=0;for(let s=0,r=t.length;s<r;s++)i[s]=n,n+=t[s].length+1;return e[yr]=i,i}let Xn=class{get from(){return this.file||this.id}constructor(e,t={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]===""?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,t.document&&(this.document=t.document.toString()),t.from&&(!
|
|
339
|
-
`," "];return
|
|
335
|
+
`);return t=s[s.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(t=i.raws.semicolon,typeof t<"u"))return!1}),t}rawValue(e,t){let i=e[t],n=e.raws[t];return n&&n.value===i?n.raw:i}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};var ca=ir;ir.default=ir;let Jf=ca;function nr(e,t){new Jf(t).stringify(e)}var bn=nr;nr.default=nr;var ni={};ni.isClean=Symbol("isClean"),ni.my=Symbol("my");let Yf=tr,Ff=ca,Uf=bn,{isClean:si,my:Kf}=ni;function sr(e,t){let i=new e.constructor;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n)||n==="proxyCache")continue;let s=e[n],r=typeof s;n==="parent"&&r==="object"?t&&(i[n]=t):n==="source"?i[n]=s:Array.isArray(s)?i[n]=s.map(l=>sr(l,i)):(r==="object"&&s!==null&&(s=sr(s)),i[n]=s)}return i}function Pe(e,t){if(t&&typeof t.offset<"u")return t.offset;let i=1,n=1,s=0;for(let r=0;r<e.length;r++){if(n===t.line&&i===t.column){s=r;break}e[r]===`
|
|
336
|
+
`?(i=1,n+=1):i+=1}return s}let rr=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[si]=!1,this[Kf]=!0;for(let t in e)if(t==="nodes"){this.nodes=[];for(let i of e[t])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[t]=e[t]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let t in e)this[t]=e[t];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let t=sr(this);for(let i in e)t[i]=e[i];return t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}error(e,t={}){if(this.source){let{end:i,start:n}=this.rangeBy(t);return this.source.input.error(e,{column:n.column,line:n.line},{column:i.column,line:i.line},t)}return new Yf(e)}getProxyProcessor(){return{get(e,t){return t==="proxyOf"?e:t==="root"?()=>e.root().toProxy():e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="prop"||t==="value"||t==="name"||t==="params"||t==="important"||t==="text")&&e.markDirty()),!0}}}markClean(){this[si]=!0}markDirty(){if(this[si]){this[si]=!1;let e=this;for(;e=e.parent;)e[si]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let t=this.source.start;if(e.index)t=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,n=i.slice(Pe(i,this.source.start),Pe(i,this.source.end)).indexOf(e.word);n!==-1&&(t=this.positionInside(n))}return t}positionInside(e){let t=this.source.start.column,i=this.source.start.line,n="document"in this.source.input?this.source.input.document:this.source.input.css,s=Pe(n,this.source.start),r=s+e;for(let l=s;l<r;l++)n[l]===`
|
|
337
|
+
`?(t=1,i+=1):t+=1;return{column:t,line:i,offset:r}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let t="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:Pe(t,this.source.start)},n=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:Pe(t,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=t.slice(Pe(t,this.source.start),Pe(t,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),n=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Pe(t,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?n={column:e.end.column,line:e.end.line,offset:Pe(t,e.end)}:typeof e.endIndex=="number"?n=this.positionInside(e.endIndex):e.index&&(n=this.positionInside(e.index+1));return(n.line<i.line||n.line===i.line&&n.column<=i.column)&&(n={column:i.column+1,line:i.line,offset:i.offset+1}),{end:n,start:i}}raw(e,t){return new Ff().raw(this,e,t)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let t=this,i=!1;for(let n of e)n===this?i=!0:i?(this.parent.insertAfter(t,n),t=n):this.parent.insertBefore(t,n);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,t){let i={},n=t==null;t=t||new Map;let s=0;for(let r in this){if(!Object.prototype.hasOwnProperty.call(this,r)||r==="parent"||r==="proxyCache")continue;let l=this[r];if(Array.isArray(l))i[r]=l.map(o=>typeof o=="object"&&o.toJSON?o.toJSON(null,t):o);else if(typeof l=="object"&&l.toJSON)i[r]=l.toJSON(null,t);else if(r==="source"){if(l==null)continue;let o=t.get(l.input);o==null&&(o=s,t.set(l.input,s),s++),i[r]={end:l.end,inputId:o,start:l.start}}else i[r]=l}return n&&(i.inputs=[...t.keys()].map(r=>r.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Uf){e.stringify&&(e=e.stringify);let t="";return e(this,i=>{t+=i}),t}warn(e,t,i={}){let n={node:this};for(let s in i)n[s]=i[s];return e.warn(t,n)}};var yn=rr;rr.default=rr;let Mf=yn,or=class extends Mf{constructor(e){super(e),this.type="comment"}};var gn=or;or.default=or;let Of=yn,lr=class extends Of{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e=he(Y({},e),{value:String(e.value)})),super(e),this.type="decl"}};var Zn=lr;lr.default=lr;let ua=gn,da=Zn,Ef=yn,{isClean:ha,my:pa}=ni,ar,ma,fa,cr;function ba(e){return e.map(t=>(t.nodes&&(t.nodes=ba(t.nodes)),delete t.source,t))}function ya(e){if(e[ha]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)ya(t)}let De=class pu extends Ef{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...t){for(let i of t){let n=this.normalize(i,this.last);for(let s of n)this.proxyOf.nodes.push(s)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let i of this.nodes)i.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let i=this.getIterator(),n,s;for(;this.indexes[i]<this.proxyOf.nodes.length&&(n=this.indexes[i],s=t(this.proxyOf.nodes[n],n),s!==!1);)this.indexes[i]+=1;return delete this.indexes[i],s}every(t){return this.nodes.every(t)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}getProxyProcessor(){return{get(t,i){return i==="proxyOf"?t:t[i]?i==="each"||typeof i=="string"&&i.startsWith("walk")?(...n)=>t[i](...n.map(s=>typeof s=="function"?(r,l)=>s(r.toProxy(),l):s)):i==="every"||i==="some"?n=>t[i]((s,...r)=>n(s.toProxy(),...r)):i==="root"?()=>t.root().toProxy():i==="nodes"?t.nodes.map(n=>n.toProxy()):i==="first"||i==="last"?t[i].toProxy():t[i]:t[i]},set(t,i,n){return t[i]===n||(t[i]=n,(i==="name"||i==="params"||i==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,i){let n=this.index(t),s=this.normalize(i,this.proxyOf.nodes[n]).reverse();n=this.index(t);for(let l of s)this.proxyOf.nodes.splice(n+1,0,l);let r;for(let l in this.indexes)r=this.indexes[l],n<r&&(this.indexes[l]=r+s.length);return this.markDirty(),this}insertBefore(t,i){let n=this.index(t),s=n===0?"prepend":!1,r=this.normalize(i,this.proxyOf.nodes[n],s).reverse();n=this.index(t);for(let o of r)this.proxyOf.nodes.splice(n,0,o);let l;for(let o in this.indexes)l=this.indexes[o],n<=l&&(this.indexes[o]=l+r.length);return this.markDirty(),this}normalize(t,i){if(typeof t=="string")t=ba(ma(t).nodes);else if(typeof t>"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let n of t)n.parent&&n.parent.removeChild(n,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let n of t)n.parent&&n.parent.removeChild(n,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new da(t)]}else if(t.selector||t.selectors)t=[new cr(t)];else if(t.name)t=[new ar(t)];else if(t.text)t=[new ua(t)];else throw new Error("Unknown node type in node creation");return t.map(n=>(n[pa]||pu.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[ha]&&ya(n),n.raws||(n.raws={}),typeof n.raws.before>"u"&&i&&typeof i.raws.before<"u"&&(n.raws.before=i.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}prepend(...t){t=t.reverse();for(let i of t){let n=this.normalize(i,this.first,"prepend").reverse();for(let s of n)this.proxyOf.nodes.unshift(s);for(let s in this.indexes)this.indexes[s]=this.indexes[s]+n.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let i;for(let n in this.indexes)i=this.indexes[n],i>=t&&(this.indexes[n]=i-1);return this.markDirty(),this}replaceValues(t,i,n){return n||(n=i,i={}),this.walkDecls(s=>{i.props&&!i.props.includes(s.prop)||i.fast&&!s.value.includes(i.fast)||(s.value=s.value.replace(t,n))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((i,n)=>{let s;try{s=t(i,n)}catch(r){throw i.addToError(r)}return s!==!1&&i.walk&&(s=i.walk(t)),s})}walkAtRules(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="atrule"&&t.test(n.name))return i(n,s)}):this.walk((n,s)=>{if(n.type==="atrule"&&n.name===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="atrule")return i(n,s)}))}walkComments(t){return this.walk((i,n)=>{if(i.type==="comment")return t(i,n)})}walkDecls(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="decl"&&t.test(n.prop))return i(n,s)}):this.walk((n,s)=>{if(n.type==="decl"&&n.prop===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="decl")return i(n,s)}))}walkRules(t,i){return i?t instanceof RegExp?this.walk((n,s)=>{if(n.type==="rule"&&t.test(n.selector))return i(n,s)}):this.walk((n,s)=>{if(n.type==="rule"&&n.selector===t)return i(n,s)}):(i=t,this.walk((n,s)=>{if(n.type==="rule")return i(n,s)}))}};De.registerParse=e=>{ma=e},De.registerRule=e=>{cr=e},De.registerAtRule=e=>{ar=e},De.registerRoot=e=>{fa=e};var rt=De;De.default=De,De.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,ar.prototype):e.type==="rule"?Object.setPrototypeOf(e,cr.prototype):e.type==="decl"?Object.setPrototypeOf(e,da.prototype):e.type==="comment"?Object.setPrototypeOf(e,ua.prototype):e.type==="root"&&Object.setPrototypeOf(e,fa.prototype),e[pa]=!0,e.nodes&&e.nodes.forEach(t=>{De.rebuild(t)})};let ga=rt,In=class extends ga{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};var ur=In;In.default=In,ga.registerAtRule(In);let zf=rt,Za,Ia,ri=class extends zf{constructor(e){super(Y({type:"document"},e)),this.nodes||(this.nodes=[])}toResult(e={}){return new Za(new Ia,this,e).stringify()}};ri.registerLazyResult=e=>{Za=e},ri.registerProcessor=e=>{Ia=e};var dr=ri;ri.default=ri;let Hf="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Pf={nanoid:(e=21)=>{let t="",i=e|0;for(;i--;)t+=Hf[Math.random()*64|0];return t}};let{existsSync:Df,readFileSync:Bf}=Te,{dirname:hr,join:Qf}=Te,{SourceMapConsumer:Sa,SourceMapGenerator:Xa}=Te;function jf(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}let pr=class{constructor(e,t){if(t.map===!1)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=t.map?t.map.prev:void 0,n=this.loadMap(t.from,i);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=hr(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new Sa(this.text)),this.consumerCache}decodeInline(e){let t=/^data:application\/json;charset=utf-?8;base64,/,i=/^data:application\/json;base64,/,n=/^data:application\/json;charset=utf-?8,/,s=/^data:application\/json,/,r=e.match(n)||e.match(s);if(r)return decodeURIComponent(e.substr(r[0].length));let l=e.match(t)||e.match(i);if(l)return jf(e.substr(l[0].length));let o=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+o)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/g);if(!t)return;let i=e.lastIndexOf(t.pop()),n=e.indexOf("*/",i);i>-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,n)))}loadFile(e){if(this.root=hr(e),Df(e))return this.mapFile=e,Bf(e,"utf-8").toString().trim()}loadMap(e,t){if(t===!1)return!1;if(t){if(typeof t=="string")return t;if(typeof t=="function"){let i=t(e);if(i){let n=this.loadFile(i);if(!n)throw new Error("Unable to load previous source map: "+i.toString());return n}}else{if(t instanceof Sa)return Xa.fromSourceMap(t).toString();if(t instanceof Xa)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;return e&&(i=Qf(hr(e),i)),this.loadFile(i)}}}startWith(e,t){return e?e.substr(0,t.length)===t:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var Va=pr;pr.default=pr;let{nanoid:Af}=Pf,{isAbsolute:mr,resolve:fr}=Te,{SourceMapConsumer:_f,SourceMapGenerator:$f}=Te,{fileURLToPath:Ga,pathToFileURL:Sn}=Te,Ca=tr,qf=Va,br=Te,yr=Symbol("lineToIndexCache"),eb=!!(_f&&$f),Ra=!!(fr&&mr);function Wa(e){if(e[yr])return e[yr];let t=e.css.split(`
|
|
338
|
+
`),i=new Array(t.length),n=0;for(let s=0,r=t.length;s<r;s++)i[s]=n,n+=t[s].length+1;return e[yr]=i,i}let Xn=class{get from(){return this.file||this.id}constructor(e,t={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]===""?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,t.document&&(this.document=t.document.toString()),t.from&&(!Ra||/^\w+:\/\//.test(t.from)||mr(t.from)?this.file=t.from:this.file=fr(t.from)),Ra&&eb){let i=new qf(this.css,t);if(i.text){this.map=i;let n=i.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id="<input css "+Af(6)+">"),this.map&&(this.map.file=this.from)}error(e,t,i,n={}){let s,r,l,o,a;if(t&&typeof t=="object"){let u=t,h=i;if(typeof u.offset=="number"){o=u.offset;let p=this.fromOffset(o);t=p.line,i=p.col}else t=u.line,i=u.column,o=this.fromLineAndColumn(t,i);if(typeof h.offset=="number"){l=h.offset;let p=this.fromOffset(l);r=p.line,s=p.col}else r=h.line,s=h.column,l=this.fromLineAndColumn(h.line,h.column)}else if(i)o=this.fromLineAndColumn(t,i);else{o=t;let u=this.fromOffset(o);t=u.line,i=u.col}let c=this.origin(t,i,r,s);return c?a=new Ca(e,c.endLine===void 0?c.line:{column:c.column,line:c.line},c.endLine===void 0?c.column:{column:c.endColumn,line:c.endLine},c.source,c.file,n.plugin):a=new Ca(e,r===void 0?t:{column:i,line:t},r===void 0?i:{column:s,line:r},this.css,this.file,n.plugin),a.input={column:i,endColumn:s,endLine:r,endOffset:l,line:t,offset:o,source:this.css},this.file&&(Sn&&(a.input.url=Sn(this.file).toString()),a.input.file=this.file),a}fromLineAndColumn(e,t){return Wa(this)[e-1]+t-1}fromOffset(e){let t=Wa(this),i=t[t.length-1],n=0;if(e>=i)n=t.length-1;else{let s=t.length-2,r;for(;n<s;)if(r=n+(s-n>>1),e<t[r])s=r-1;else if(e>=t[r+1])n=r+1;else{n=r;break}}return{col:e-t[n]+1,line:n+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:fr(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,i,n){if(!this.map)return!1;let s=this.map.consumer(),r=s.originalPositionFor({column:t,line:e});if(!r.source)return!1;let l;typeof i=="number"&&(l=s.originalPositionFor({column:n,line:i}));let o;mr(r.source)?o=Sn(r.source):o=new URL(r.source,this.map.consumer().sourceRoot||Sn(this.map.mapFile));let a={column:r.column,endColumn:l&&l.column,endLine:l&&l.line,line:r.line,url:o.toString()};if(o.protocol==="file:")if(Ga)a.file=Ga(o);else throw new Error("file: protocol is not available in this PostCSS build");let c=s.sourceContentFor(r.source);return c&&(a.source=c),a}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])this[t]!=null&&(e[t]=this[t]);return this.map&&(e.map=Y({},this.map),e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};var Vn=Xn;Xn.default=Xn,br&&br.registerInput&&br.registerInput(Xn);let va=rt,ka,wa,Wt=class extends va{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,i){let n=super.normalize(e);if(t){if(i==="prepend")this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let s of n)s.raws.before=t.raws.before}return n}removeChild(e,t){let i=this.index(e);return!t&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new ka(new wa,this,e).stringify()}};Wt.registerLazyResult=e=>{ka=e},Wt.registerProcessor=e=>{wa=e};var oi=Wt;Wt.default=Wt,va.registerRoot(Wt);let li={comma(e){return li.split(e,[","],!0)},space(e){let t=[" ",`
|
|
339
|
+
`," "];return li.split(e,t)},split(e,t,i){let n=[],s="",r=!1,l=0,o=!1,a="",c=!1;for(let u of e)c?c=!1:u==="\\"?c=!0:o?u===a&&(o=!1):u==='"'||u==="'"?(o=!0,a=u):u==="("?l+=1:u===")"?l>0&&(l-=1):l===0&&t.includes(u)&&(r=!0),r?(s!==""&&n.push(s.trim()),s="",r=!1):s+=u;return(i||s!=="")&&n.push(s.trim()),n}};var xa=li;li.default=li;let Ta=rt,tb=xa,Gn=class extends Ta{get selectors(){return tb.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,i=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};var gr=Gn;Gn.default=Gn,Ta.registerRule(Gn);let ib=ur,nb=gn,sb=Zn,rb=Vn,ob=Va,lb=oi,ab=gr;function ai(e,t){if(Array.isArray(e))return e.map(r=>ai(r));let i=e,{inputs:n}=i,s=It(i,["inputs"]);if(n){t=[];for(let r of n){let l=he(Y({},r),{__proto__:rb.prototype});l.map&&(l.map=he(Y({},l.map),{__proto__:ob.prototype})),t.push(l)}}if(s.nodes&&(s.nodes=e.nodes.map(r=>ai(r,t))),s.source){let r=s.source,{inputId:l}=r,o=It(r,["inputId"]);s.source=o,l!=null&&(s.source.input=t[l])}if(s.type==="root")return new lb(s);if(s.type==="decl")return new sb(s);if(s.type==="rule")return new ab(s);if(s.type==="comment")return new nb(s);if(s.type==="atrule")return new ib(s);throw new Error("Unknown node type: "+e.type)}var cb=ai;ai.default=ai;let{dirname:Cn,relative:La,resolve:Na,sep:Ja}=Te,{SourceMapConsumer:Ya,SourceMapGenerator:Rn}=Te,{pathToFileURL:Fa}=Te,ub=Vn,db=!!(Ya&&Rn),hb=!!(Cn&&Na&&La&&Ja);var Ua=class{constructor(e,t,i,n){this.stringify=e,this.mapOpts=i.map||{},this.root=t,this.opts=i,this.css=n,this.originalCSS=n,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let t=`
|
|
340
340
|
`;this.css.includes(`\r
|
|
341
341
|
`)&&(t=`\r
|
|
342
|
-
`),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t=this.toUrl(this.path(e.file)),i=e.root||Cn(e.file),n;this.mapOpts.sourcesContent===!1?(n=new
|
|
343
|
-
`),t=l.length-s):t+=l.length,o&&a!=="start"){let c=o.parent||{raws:{}};(!(o.type==="decl"||o.type==="atrule"&&!o.nodes)||o!==c.last||c.raws.semicolon)&&(o.source&&o.source.end?(n.source=this.sourcePath(o),n.original.line=o.source.end.line,n.original.column=o.source.end.column-1,n.generated.line=e,n.generated.column=t-2,this.map.addMapping(n)):(n.source=i,n.original.line=1,n.original.column=0,n.generated.line=e,n.generated.column=t-1,this.map.addMapping(n)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(t=>t.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let i=this.opts.to?Cn(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=Cn(La(i,this.mapOpts.annotation)));let n=Ta(i,e);return this.memoizedPaths.set(e,n),n}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}});else{let e=new cb(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(t=>{if(t.source){let i=t.source.input.from;if(i&&!e[i]){e[i]=!0;let n=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(n,t.source.input.css)}}});else if(this.css){let t=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(t,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(Ya){let i=Ya(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;Na==="\\"&&(e=e.replace(/\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};const Zr=39,Ua=34,Wn=92,Ka=47,vn=10,ui=32,kn=12,wn=9,xn=13,hb=91,pb=93,mb=40,fb=41,bb=123,yb=125,gb=59,Zb=42,Ib=58,Sb=64,Tn=/[\t\n\f\r "#'()/;[\\\]{}]/g,Ln=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,Xb=/.[\r\n"'(/\\]/,Ma=/[\da-f]/i;var Vb=function(e,t={}){let i=e.css.valueOf(),n=t.ignoreErrors,s,r,l,o,a,c,u,h,p,m,f=i.length,d=0,S=[],I=[];function V(){return d}function R(k){throw e.error("Unclosed "+k,d)}function G(){return I.length===0&&d>=f}function X(k){if(I.length)return I.pop();if(d>=f)return;let w=k?k.ignoreUnclosed:!1;switch(s=i.charCodeAt(d),s){case vn:case ui:case wn:case xn:case kn:{o=d;do o+=1,s=i.charCodeAt(o);while(s===ui||s===vn||s===wn||s===xn||s===kn);c=["space",i.slice(d,o)],d=o-1;break}case hb:case pb:case bb:case yb:case Ib:case gb:case fb:{let g=String.fromCharCode(s);c=[g,g,d];break}case mb:{if(m=S.length?S.pop()[1]:"",p=i.charCodeAt(d+1),m==="url"&&p!==Zr&&p!==Ua&&p!==ui&&p!==vn&&p!==wn&&p!==kn&&p!==xn){o=d;do{if(u=!1,o=i.indexOf(")",o+1),o===-1)if(n||w){o=d;break}else R("bracket");for(h=o;i.charCodeAt(h-1)===Wn;)h-=1,u=!u}while(u);c=["brackets",i.slice(d,o+1),d,o],d=o}else o=i.indexOf(")",d+1),r=i.slice(d,o+1),o===-1||Xb.test(r)?c=["(","(",d]:(c=["brackets",r,d,o],d=o);break}case Zr:case Ua:{a=s===Zr?"'":'"',o=d;do{if(u=!1,o=i.indexOf(a,o+1),o===-1)if(n||w){o=d+1;break}else R("string");for(h=o;i.charCodeAt(h-1)===Wn;)h-=1,u=!u}while(u);c=["string",i.slice(d,o+1),d,o],d=o;break}case Sb:{Tn.lastIndex=d+1,Tn.test(i),Tn.lastIndex===0?o=i.length-1:o=Tn.lastIndex-2,c=["at-word",i.slice(d,o+1),d,o],d=o;break}case Wn:{for(o=d,l=!0;i.charCodeAt(o+1)===Wn;)o+=1,l=!l;if(s=i.charCodeAt(o+1),l&&s!==Ka&&s!==ui&&s!==vn&&s!==wn&&s!==xn&&s!==kn&&(o+=1,Ma.test(i.charAt(o)))){for(;Ma.test(i.charAt(o+1));)o+=1;i.charCodeAt(o+1)===ui&&(o+=1)}c=["word",i.slice(d,o+1),d,o],d=o;break}default:{s===Ka&&i.charCodeAt(d+1)===Zb?(o=i.indexOf("*/",d+2)+1,o===0&&(n||w?o=i.length:R("comment")),c=["comment",i.slice(d,o+1),d,o],d=o):(Ln.lastIndex=d+1,Ln.test(i),Ln.lastIndex===0?o=i.length-1:o=Ln.lastIndex-2,c=["word",i.slice(d,o+1),d,o],S.push(c),d=o);break}}return d++,c}function v(k){I.push(k)}return{back:v,endOfFile:G,nextToken:X,position:V}};let Gb=ur,Cb=gn,Rb=Zn,Wb=li,Oa=gr,vb=Vb;const Ea={empty:!0,space:!0};function kb(e){for(let t=e.length-1;t>=0;t--){let i=e[t],n=i[3]||i[2];if(n)return n}}var wb=class{constructor(e){this.input=e,this.root=new Wb,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new Gb;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,n,s,r=!1,l=!1,o=[],a=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?a.push(i==="("?")":"]"):i==="{"&&a.length>0?a.push("}"):i===a[a.length-1]&&a.pop(),a.length===0)if(i===";"){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){l=!0;break}else if(i==="}"){if(o.length>0){for(s=o.length-1,n=o[s];n&&n[0]==="space";)n=o[--s];n&&(t.source.end=this.getPosition(n[3]||n[2]),t.source.end.offset++)}this.end(e);break}else o.push(e);else o.push(e);if(this.tokenizer.endOfFile()){r=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(o),o.length?(t.raws.afterName=this.spacesAndCommentsFromStart(o),this.raw(t,"params",o),r&&(e=o[o.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),l&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(t===!1)return;let i=0,n;for(let s=t-1;s>=0&&(n=e[s],!(n[0]!=="space"&&(i+=1,i===2)));s--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}colon(e){let t=0,i,n,s;for(let[r,l]of e.entries()){if(n=l,s=n[0],s==="("&&(t+=1),s===")"&&(t-=1),t===0&&s===":")if(!i)this.doubleColon(n);else{if(i[0]==="word"&&i[1]==="progid")continue;return r}i=n}return!1}comment(e){let t=new Cb;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let n=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}createTokenizer(){this.tokenizer=vb(this.input)}decl(e,t){let i=new Rb;this.init(i,e[0][2]);let n=e[e.length-1];for(n[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||kb(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let o=e[0][0];if(o===":"||o==="space"||o==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let s;for(;e.length;)if(s=e.shift(),s[0]===":"){i.raws.between+=s[1];break}else s[0]==="word"&&/\w/.test(s[1])&&this.unknownWord([s]),i.raws.between+=s[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let r=[],l;for(;e.length&&(l=e[0][0],!(l!=="space"&&l!=="comment"));)r.push(e.shift());this.precheckMissedSemicolon(e);for(let o=e.length-1;o>=0;o--){if(s=e[o],s[1].toLowerCase()==="!important"){i.important=!0;let a=this.stringFrom(e,o);a=this.spacesFromEnd(e)+a,a!==" !important"&&(i.raws.important=a);break}else if(s[1].toLowerCase()==="important"){let a=e.slice(0),c="";for(let u=o;u>0;u--){let h=a[u][0];if(c.trim().startsWith("!")&&h!=="space")break;c=a.pop()[1]+c}c.trim().startsWith("!")&&(i.important=!0,i.raws.important=c,e=a)}if(s[0]!=="space"&&s[0]!=="comment")break}e.some(o=>o[0]!=="space"&&o[0]!=="comment")&&(i.raws.between+=r.map(o=>o[1]).join(""),r=[]),this.raw(i,"value",r.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new Oa;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="",t.source.end=this.getPosition(e[2]),t.source.end.offset+=t.raws.ownSemicolon.length)}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let t=!1,i=null,n=!1,s=null,r=[],l=e[1].startsWith("--"),o=[],a=e;for(;a;){if(i=a[0],o.push(a),i==="("||i==="[")s||(s=a),r.push(i==="("?")":"]");else if(l&&n&&i==="{")s||(s=a),r.push("}");else if(r.length===0)if(i===";")if(n){this.decl(o,l);return}else break;else if(i==="{"){this.rule(o);return}else if(i==="}"){this.tokenizer.back(o.pop()),t=!0;break}else i===":"&&(n=!0);else i===r[r.length-1]&&(r.pop(),r.length===0&&(s=null));a=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),r.length>0&&this.unclosedBracket(s),t&&n){if(!l)for(;o.length&&(a=o[o.length-1][0],!(a!=="space"&&a!=="comment"));)this.tokenizer.back(o.pop());this.decl(o,l)}else this.unknownWord(o)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,t,i,n){let s,r,l=i.length,o="",a=!0,c,u;for(let h=0;h<l;h+=1)s=i[h],r=s[0],r==="space"&&h===l-1&&!n?a=!1:r==="comment"?(u=i[h-1]?i[h-1][0]:"empty",c=i[h+1]?i[h+1][0]:"empty",!Ea[u]&&!Ea[c]?o.slice(-1)===","?a=!1:o+=s[1]:a=!1):o+=s[1];if(!a){let h=i.reduce((p,m)=>p+m[1],"");e.raws[t]={raw:h,value:o}}e[t]=o}rule(e){e.pop();let t=new Oa;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],t==="space");)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let n=t;n<e.length;n++)i+=e[n][1];return e.splice(t,e.length-t),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,t){throw this.input.error("At-rule without name",{offset:t[2]},{offset:t[2]+t[1].length})}};let xb=ot,Tb=Vn,Lb=wb;function Nn(e,t){let i=new Tb(e,t),n=new Lb(i);try{n.parse()}catch(s){throw process.env.NODE_ENV!=="production"&&s.name==="CssSyntaxError"&&t&&t.from&&(/\.scss$/i.test(t.from)?s.message+=`
|
|
342
|
+
`),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t=this.toUrl(this.path(e.file)),i=e.root||Cn(e.file),n;this.mapOpts.sourcesContent===!1?(n=new Ya(e.text),n.sourcesContent&&(n.sourcesContent=null)):n=e.consumer(),this.map.applySourceMap(n,t,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),hb&&db&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,t=>{e+=t}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=Rn.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new Rn({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new Rn({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,t=1,i="<no source>",n={generated:{column:0,line:0},original:{column:0,line:0},source:""},s,r;this.stringify(this.root,(l,o,a)=>{if(this.css+=l,o&&a!=="end"&&(n.generated.line=e,n.generated.column=t-1,o.source&&o.source.start?(n.source=this.sourcePath(o),n.original.line=o.source.start.line,n.original.column=o.source.start.column-1,this.map.addMapping(n)):(n.source=i,n.original.line=1,n.original.column=0,this.map.addMapping(n))),r=l.match(/\n/g),r?(e+=r.length,s=l.lastIndexOf(`
|
|
343
|
+
`),t=l.length-s):t+=l.length,o&&a!=="start"){let c=o.parent||{raws:{}};(!(o.type==="decl"||o.type==="atrule"&&!o.nodes)||o!==c.last||c.raws.semicolon)&&(o.source&&o.source.end?(n.source=this.sourcePath(o),n.original.line=o.source.end.line,n.original.column=o.source.end.column-1,n.generated.line=e,n.generated.column=t-2,this.map.addMapping(n)):(n.source=i,n.original.line=1,n.original.column=0,n.generated.line=e,n.generated.column=t-1,this.map.addMapping(n)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(t=>t.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let i=this.opts.to?Cn(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=Cn(Na(i,this.mapOpts.annotation)));let n=La(i,e);return this.memoizedPaths.set(e,n),n}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}});else{let e=new ub(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(t=>{if(t.source){let i=t.source.input.from;if(i&&!e[i]){e[i]=!0;let n=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(n,t.source.input.css)}}});else if(this.css){let t=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(t,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(Fa){let i=Fa(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;Ja==="\\"&&(e=e.replace(/\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};const Zr=39,Ka=34,Wn=92,Ma=47,vn=10,ci=32,kn=12,wn=9,xn=13,pb=91,mb=93,fb=40,bb=41,yb=123,gb=125,Zb=59,Ib=42,Sb=58,Xb=64,Tn=/[\t\n\f\r "#'()/;[\\\]{}]/g,Ln=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,Vb=/.[\r\n"'(/\\]/,Oa=/[\da-f]/i;var Gb=function(e,t={}){let i=e.css.valueOf(),n=t.ignoreErrors,s,r,l,o,a,c,u,h,p,m,f=i.length,d=0,S=[],I=[];function V(){return d}function R(k){throw e.error("Unclosed "+k,d)}function G(){return I.length===0&&d>=f}function X(k){if(I.length)return I.pop();if(d>=f)return;let w=k?k.ignoreUnclosed:!1;switch(s=i.charCodeAt(d),s){case vn:case ci:case wn:case xn:case kn:{o=d;do o+=1,s=i.charCodeAt(o);while(s===ci||s===vn||s===wn||s===xn||s===kn);c=["space",i.slice(d,o)],d=o-1;break}case pb:case mb:case yb:case gb:case Sb:case Zb:case bb:{let g=String.fromCharCode(s);c=[g,g,d];break}case fb:{if(m=S.length?S.pop()[1]:"",p=i.charCodeAt(d+1),m==="url"&&p!==Zr&&p!==Ka&&p!==ci&&p!==vn&&p!==wn&&p!==kn&&p!==xn){o=d;do{if(u=!1,o=i.indexOf(")",o+1),o===-1)if(n||w){o=d;break}else R("bracket");for(h=o;i.charCodeAt(h-1)===Wn;)h-=1,u=!u}while(u);c=["brackets",i.slice(d,o+1),d,o],d=o}else o=i.indexOf(")",d+1),r=i.slice(d,o+1),o===-1||Vb.test(r)?c=["(","(",d]:(c=["brackets",r,d,o],d=o);break}case Zr:case Ka:{a=s===Zr?"'":'"',o=d;do{if(u=!1,o=i.indexOf(a,o+1),o===-1)if(n||w){o=d+1;break}else R("string");for(h=o;i.charCodeAt(h-1)===Wn;)h-=1,u=!u}while(u);c=["string",i.slice(d,o+1),d,o],d=o;break}case Xb:{Tn.lastIndex=d+1,Tn.test(i),Tn.lastIndex===0?o=i.length-1:o=Tn.lastIndex-2,c=["at-word",i.slice(d,o+1),d,o],d=o;break}case Wn:{for(o=d,l=!0;i.charCodeAt(o+1)===Wn;)o+=1,l=!l;if(s=i.charCodeAt(o+1),l&&s!==Ma&&s!==ci&&s!==vn&&s!==wn&&s!==xn&&s!==kn&&(o+=1,Oa.test(i.charAt(o)))){for(;Oa.test(i.charAt(o+1));)o+=1;i.charCodeAt(o+1)===ci&&(o+=1)}c=["word",i.slice(d,o+1),d,o],d=o;break}default:{s===Ma&&i.charCodeAt(d+1)===Ib?(o=i.indexOf("*/",d+2)+1,o===0&&(n||w?o=i.length:R("comment")),c=["comment",i.slice(d,o+1),d,o],d=o):(Ln.lastIndex=d+1,Ln.test(i),Ln.lastIndex===0?o=i.length-1:o=Ln.lastIndex-2,c=["word",i.slice(d,o+1),d,o],S.push(c),d=o);break}}return d++,c}function v(k){I.push(k)}return{back:v,endOfFile:G,nextToken:X,position:V}};let Cb=ur,Rb=gn,Wb=Zn,vb=oi,Ea=gr,kb=Gb;const za={empty:!0,space:!0};function wb(e){for(let t=e.length-1;t>=0;t--){let i=e[t],n=i[3]||i[2];if(n)return n}}var xb=class{constructor(e){this.input=e,this.root=new vb,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new Cb;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,n,s,r=!1,l=!1,o=[],a=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?a.push(i==="("?")":"]"):i==="{"&&a.length>0?a.push("}"):i===a[a.length-1]&&a.pop(),a.length===0)if(i===";"){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){l=!0;break}else if(i==="}"){if(o.length>0){for(s=o.length-1,n=o[s];n&&n[0]==="space";)n=o[--s];n&&(t.source.end=this.getPosition(n[3]||n[2]),t.source.end.offset++)}this.end(e);break}else o.push(e);else o.push(e);if(this.tokenizer.endOfFile()){r=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(o),o.length?(t.raws.afterName=this.spacesAndCommentsFromStart(o),this.raw(t,"params",o),r&&(e=o[o.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),l&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(t===!1)return;let i=0,n;for(let s=t-1;s>=0&&(n=e[s],!(n[0]!=="space"&&(i+=1,i===2)));s--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}colon(e){let t=0,i,n,s;for(let[r,l]of e.entries()){if(n=l,s=n[0],s==="("&&(t+=1),s===")"&&(t-=1),t===0&&s===":")if(!i)this.doubleColon(n);else{if(i[0]==="word"&&i[1]==="progid")continue;return r}i=n}return!1}comment(e){let t=new Rb;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let n=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}createTokenizer(){this.tokenizer=kb(this.input)}decl(e,t){let i=new Wb;this.init(i,e[0][2]);let n=e[e.length-1];for(n[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||wb(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let o=e[0][0];if(o===":"||o==="space"||o==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let s;for(;e.length;)if(s=e.shift(),s[0]===":"){i.raws.between+=s[1];break}else s[0]==="word"&&/\w/.test(s[1])&&this.unknownWord([s]),i.raws.between+=s[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let r=[],l;for(;e.length&&(l=e[0][0],!(l!=="space"&&l!=="comment"));)r.push(e.shift());this.precheckMissedSemicolon(e);for(let o=e.length-1;o>=0;o--){if(s=e[o],s[1].toLowerCase()==="!important"){i.important=!0;let a=this.stringFrom(e,o);a=this.spacesFromEnd(e)+a,a!==" !important"&&(i.raws.important=a);break}else if(s[1].toLowerCase()==="important"){let a=e.slice(0),c="";for(let u=o;u>0;u--){let h=a[u][0];if(c.trim().startsWith("!")&&h!=="space")break;c=a.pop()[1]+c}c.trim().startsWith("!")&&(i.important=!0,i.raws.important=c,e=a)}if(s[0]!=="space"&&s[0]!=="comment")break}e.some(o=>o[0]!=="space"&&o[0]!=="comment")&&(i.raws.between+=r.map(o=>o[1]).join(""),r=[]),this.raw(i,"value",r.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new Ea;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="",t.source.end=this.getPosition(e[2]),t.source.end.offset+=t.raws.ownSemicolon.length)}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let t=!1,i=null,n=!1,s=null,r=[],l=e[1].startsWith("--"),o=[],a=e;for(;a;){if(i=a[0],o.push(a),i==="("||i==="[")s||(s=a),r.push(i==="("?")":"]");else if(l&&n&&i==="{")s||(s=a),r.push("}");else if(r.length===0)if(i===";")if(n){this.decl(o,l);return}else break;else if(i==="{"){this.rule(o);return}else if(i==="}"){this.tokenizer.back(o.pop()),t=!0;break}else i===":"&&(n=!0);else i===r[r.length-1]&&(r.pop(),r.length===0&&(s=null));a=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),r.length>0&&this.unclosedBracket(s),t&&n){if(!l)for(;o.length&&(a=o[o.length-1][0],!(a!=="space"&&a!=="comment"));)this.tokenizer.back(o.pop());this.decl(o,l)}else this.unknownWord(o)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,t,i,n){let s,r,l=i.length,o="",a=!0,c,u;for(let h=0;h<l;h+=1)s=i[h],r=s[0],r==="space"&&h===l-1&&!n?a=!1:r==="comment"?(u=i[h-1]?i[h-1][0]:"empty",c=i[h+1]?i[h+1][0]:"empty",!za[u]&&!za[c]?o.slice(-1)===","?a=!1:o+=s[1]:a=!1):o+=s[1];if(!a){let h=i.reduce((p,m)=>p+m[1],"");e.raws[t]={raw:h,value:o}}e[t]=o}rule(e){e.pop();let t=new Ea;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],t==="space");)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let n=t;n<e.length;n++)i+=e[n][1];return e.splice(t,e.length-t),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,t){throw this.input.error("At-rule without name",{offset:t[2]},{offset:t[2]+t[1].length})}};let Tb=rt,Lb=Vn,Nb=xb;function Nn(e,t){let i=new Lb(e,t),n=new Nb(i);try{n.parse()}catch(s){throw process.env.NODE_ENV!=="production"&&s.name==="CssSyntaxError"&&t&&t.from&&(/\.scss$/i.test(t.from)?s.message+=`
|
|
344
344
|
You tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser`:/\.sass/i.test(t.from)?s.message+=`
|
|
345
345
|
You tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser`:/\.less$/i.test(t.from)&&(s.message+=`
|
|
346
|
-
You tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)),s}return n.root}var Ir=Nn;Nn.default=Nn,xb.registerParse(Nn);let Sr=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let i=t.node.rangeBy(t);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in t)this[i]=t[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var za=Sr;Sr.default=Sr;let Nb=za,Xr=class{get content(){return this.css}constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new Nb(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};var Vr=Xr;Xr.default=Xr;let Ha={};var Pa=function(e){Ha[e]||(Ha[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))};let Jb=ot,Yb=dr,Fb=Fa,Ub=Ir,Da=Vr,Kb=li,Mb=bn,{isClean:Fe,my:Ob}=si,Eb=Pa;const zb={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},Hb={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Pb={Once:!0,postcssPlugin:!0,prepare:!0},vt=0;function di(e){return typeof e=="object"&&typeof e.then=="function"}function Ba(e){let t=!1,i=zb[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[i,i+"-"+t,vt,i+"Exit",i+"Exit-"+t]:t?[i,i+"-"+t,i+"Exit",i+"Exit-"+t]:e.append?[i,vt,i+"Exit"]:[i,i+"Exit"]}function Qa(e){let t;return e.type==="document"?t=["Document",vt,"DocumentExit"]:e.type==="root"?t=["Root",vt,"RootExit"]:t=Ba(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function Gr(e){return e[Fe]=!1,e.nodes&&e.nodes.forEach(t=>Gr(t)),e}let Cr={},kt=class pu{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(t,i,n){this.stringified=!1,this.processed=!1;let s;if(typeof i=="object"&&i!==null&&(i.type==="root"||i.type==="document"))s=Gr(i);else if(i instanceof pu||i instanceof Da)s=Gr(i.root),i.map&&(typeof n.map>"u"&&(n.map={}),n.map.inline||(n.map.inline=!1),n.map.prev=i.map);else{let r=Ub;n.syntax&&(r=n.syntax.parse),n.parser&&(r=n.parser),r.parse&&(r=r.parse);try{s=r(i,n)}catch(l){this.processed=!0,this.error=l}s&&!s[Ob]&&Jb.rebuild(s)}this.result=new Da(t,s,n),this.helpers=he(Y({},Cr),{postcss:Cr,result:this.result}),this.plugins=this.processor.plugins.map(r=>typeof r=="object"&&r.prepare?Y(Y({},r),r.prepare(this.result)):r)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,i){let n=this.result.lastPlugin;try{if(i&&i.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin)t.plugin=n.postcssPlugin,t.setMessage();else if(n.postcssVersion&&process.env.NODE_ENV!=="production"){let s=n.postcssPlugin,r=n.postcssVersion,l=this.result.processor.version,o=r.split("."),a=l.split(".");(o[0]!==a[0]||parseInt(o[1])>parseInt(a[1]))&&console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+l+", but "+s+" uses "+r+". Perhaps this is the source of the error below.")}}catch(s){console&&console.error&&console.error(s)}return t}prepareVisitors(){this.listeners={};let t=(i,n,s)=>{this.listeners[n]||(this.listeners[n]=[]),this.listeners[n].push([i,s])};for(let i of this.plugins)if(typeof i=="object")for(let n in i){if(!Hb[n]&&/^[A-Z]/.test(n))throw new Error(`Unknown event ${n} in ${i.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Pb[n])if(typeof i[n]=="object")for(let s in i[n])s==="*"?t(i,n,i[n][s]):t(i,n+"-"+s.toLowerCase(),i[n][s]);else typeof i[n]=="function"&&t(i,n,i[n])}this.hasListener=Object.keys(this.listeners).length>0}runAsync(){return ye(this,null,function*(){this.plugin=0;for(let t=0;t<this.plugins.length;t++){let i=this.plugins[t],n=this.runOnRoot(i);if(di(n))try{yield n}catch(s){throw this.handleError(s)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Fe];){t[Fe]=!0;let i=[Qa(t)];for(;i.length>0;){let n=this.visitTick(i);if(di(n))try{yield n}catch(s){let r=i[i.length-1].node;throw this.handleError(s,r)}}}if(this.listeners.OnceExit)for(let[i,n]of this.listeners.OnceExit){this.result.lastPlugin=i;try{if(t.type==="document"){let s=t.nodes.map(r=>n(r,this.helpers));yield Promise.all(s)}else yield n(t,this.helpers)}catch(s){throw this.handleError(s)}}}return this.processed=!0,this.stringify()})}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let i=this.result.root.nodes.map(n=>t.Once(n,this.helpers));return di(i[0])?Promise.all(i):i}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(this.result.root,this.result)}catch(i){throw this.handleError(i)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,i=Mb;t.syntax&&(i=t.syntax.stringify),t.stringifier&&(i=t.stringifier),i.stringify&&(i=i.stringify);let n=new Fb(i,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let t of this.plugins){let i=this.runOnRoot(t);if(di(i))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Fe];)t[Fe]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let i of t.nodes)this.visitSync(this.listeners.OnceExit,i);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,i){return process.env.NODE_ENV!=="production"&&("from"in this.opts||Eb("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(t,i)}toString(){return this.css}visitSync(t,i){for(let[n,s]of t){this.result.lastPlugin=n;let r;try{r=s(i,this.helpers)}catch(l){throw this.handleError(l,i.proxyOf)}if(i.type!=="root"&&i.type!=="document"&&!i.parent)return!0;if(di(r))throw this.getAsyncError()}}visitTick(t){let i=t[t.length-1],{node:n,visitors:s}=i;if(n.type!=="root"&&n.type!=="document"&&!n.parent){t.pop();return}if(s.length>0&&i.visitorIndex<s.length){let[l,o]=s[i.visitorIndex];i.visitorIndex+=1,i.visitorIndex===s.length&&(i.visitors=[],i.visitorIndex=0),this.result.lastPlugin=l;try{return o(n.toProxy(),this.helpers)}catch(a){throw this.handleError(a,n)}}if(i.iterator!==0){let l=i.iterator,o;for(;o=n.nodes[n.indexes[l]];)if(n.indexes[l]+=1,!o[Fe]){o[Fe]=!0,t.push(Qa(o));return}i.iterator=0,delete n.indexes[l]}let r=i.events;for(;i.eventIndex<r.length;){let l=r[i.eventIndex];if(i.eventIndex+=1,l===vt){n.nodes&&n.nodes.length&&(n[Fe]=!0,i.iterator=n.getIterator());return}else if(this.listeners[l]){i.visitors=this.listeners[l];return}}t.pop()}walkSync(t){t[Fe]=!0;let i=Ba(t);for(let n of i)if(n===vt)t.nodes&&t.each(s=>{s[Fe]||this.walkSync(s)});else{let s=this.listeners[n];if(s&&this.visitSync(s,t.toProxy()))return}}warnings(){return this.sync().warnings()}};kt.registerPostcss=e=>{Cr=e};var ja=kt;kt.default=kt,Kb.registerLazyResult(kt),Yb.registerLazyResult(kt);let Db=Fa,Bb=Ir;const Qb=Vr;let jb=bn,Ab=Pa,Rr=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=Bb;try{e=t(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let n,s=jb;this.result=new Qb(this._processor,n,this._opts),this.result.css=t;let r=this;Object.defineProperty(this.result,"root",{get(){return r.root}});let l=new Db(s,n,this._opts,t);if(l.isMap()){let[o,a]=l.generate();o&&(this.result.css=o),a&&(this.result.map=a)}else l.clearAnnotation(),this.result.css=l.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return process.env.NODE_ENV!=="production"&&("from"in this._opts||Ab("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(e,t)}toString(){return this._css}warnings(){return[]}};var _b=Rr;Rr.default=Rr;let $b=dr,qb=ja,ey=_b,ty=li,hi=class{constructor(e=[]){this.version="8.5.6",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)t.push(i);else if(typeof i=="function")t.push(i);else if(typeof i=="object"&&(i.parse||i.stringify)){if(process.env.NODE_ENV!=="production")throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.")}else throw new Error(i+" is not a PostCSS plugin");return t}process(e,t={}){return!this.plugins.length&&!t.parser&&!t.stringifier&&!t.syntax?new ey(this,e,t):new qb(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};var iy=hi;hi.default=hi,ty.registerProcessor(hi),$b.registerProcessor(hi);let Aa=ur,_a=gn,ny=ot,sy=tr,$a=Zn,qa=dr,ry=ab,oy=Vn,ly=ja,ay=wa,cy=yn,uy=Ir,Wr=iy,dy=Vr,ec=li,tc=gr,hy=bn,py=za;function ee(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new Wr(e)}ee.plugin=function(e,t){let i=!1;function n(...r){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:
|
|
346
|
+
You tried to parse Less with the standard CSS parser; try again with the postcss-less parser`)),s}return n.root}var Ir=Nn;Nn.default=Nn,Tb.registerParse(Nn);let Sr=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let i=t.node.rangeBy(t);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in t)this[i]=t[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var Ha=Sr;Sr.default=Sr;let Jb=Ha,Xr=class{get content(){return this.css}constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new Jb(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};var Vr=Xr;Xr.default=Xr;let Pa={};var Da=function(e){Pa[e]||(Pa[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))};let Yb=rt,Fb=dr,Ub=Ua,Kb=Ir,Ba=Vr,Mb=oi,Ob=bn,{isClean:Fe,my:Eb}=ni,zb=Da;const Hb={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},Pb={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Db={Once:!0,postcssPlugin:!0,prepare:!0},vt=0;function ui(e){return typeof e=="object"&&typeof e.then=="function"}function Qa(e){let t=!1,i=Hb[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[i,i+"-"+t,vt,i+"Exit",i+"Exit-"+t]:t?[i,i+"-"+t,i+"Exit",i+"Exit-"+t]:e.append?[i,vt,i+"Exit"]:[i,i+"Exit"]}function ja(e){let t;return e.type==="document"?t=["Document",vt,"DocumentExit"]:e.type==="root"?t=["Root",vt,"RootExit"]:t=Qa(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function Gr(e){return e[Fe]=!1,e.nodes&&e.nodes.forEach(t=>Gr(t)),e}let Cr={},kt=class mu{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(t,i,n){this.stringified=!1,this.processed=!1;let s;if(typeof i=="object"&&i!==null&&(i.type==="root"||i.type==="document"))s=Gr(i);else if(i instanceof mu||i instanceof Ba)s=Gr(i.root),i.map&&(typeof n.map>"u"&&(n.map={}),n.map.inline||(n.map.inline=!1),n.map.prev=i.map);else{let r=Kb;n.syntax&&(r=n.syntax.parse),n.parser&&(r=n.parser),r.parse&&(r=r.parse);try{s=r(i,n)}catch(l){this.processed=!0,this.error=l}s&&!s[Eb]&&Yb.rebuild(s)}this.result=new Ba(t,s,n),this.helpers=he(Y({},Cr),{postcss:Cr,result:this.result}),this.plugins=this.processor.plugins.map(r=>typeof r=="object"&&r.prepare?Y(Y({},r),r.prepare(this.result)):r)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,i){let n=this.result.lastPlugin;try{if(i&&i.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin)t.plugin=n.postcssPlugin,t.setMessage();else if(n.postcssVersion&&process.env.NODE_ENV!=="production"){let s=n.postcssPlugin,r=n.postcssVersion,l=this.result.processor.version,o=r.split("."),a=l.split(".");(o[0]!==a[0]||parseInt(o[1])>parseInt(a[1]))&&console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+l+", but "+s+" uses "+r+". Perhaps this is the source of the error below.")}}catch(s){console&&console.error&&console.error(s)}return t}prepareVisitors(){this.listeners={};let t=(i,n,s)=>{this.listeners[n]||(this.listeners[n]=[]),this.listeners[n].push([i,s])};for(let i of this.plugins)if(typeof i=="object")for(let n in i){if(!Pb[n]&&/^[A-Z]/.test(n))throw new Error(`Unknown event ${n} in ${i.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Db[n])if(typeof i[n]=="object")for(let s in i[n])s==="*"?t(i,n,i[n][s]):t(i,n+"-"+s.toLowerCase(),i[n][s]);else typeof i[n]=="function"&&t(i,n,i[n])}this.hasListener=Object.keys(this.listeners).length>0}runAsync(){return ye(this,null,function*(){this.plugin=0;for(let t=0;t<this.plugins.length;t++){let i=this.plugins[t],n=this.runOnRoot(i);if(ui(n))try{yield n}catch(s){throw this.handleError(s)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Fe];){t[Fe]=!0;let i=[ja(t)];for(;i.length>0;){let n=this.visitTick(i);if(ui(n))try{yield n}catch(s){let r=i[i.length-1].node;throw this.handleError(s,r)}}}if(this.listeners.OnceExit)for(let[i,n]of this.listeners.OnceExit){this.result.lastPlugin=i;try{if(t.type==="document"){let s=t.nodes.map(r=>n(r,this.helpers));yield Promise.all(s)}else yield n(t,this.helpers)}catch(s){throw this.handleError(s)}}}return this.processed=!0,this.stringify()})}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let i=this.result.root.nodes.map(n=>t.Once(n,this.helpers));return ui(i[0])?Promise.all(i):i}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(this.result.root,this.result)}catch(i){throw this.handleError(i)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,i=Ob;t.syntax&&(i=t.syntax.stringify),t.stringifier&&(i=t.stringifier),i.stringify&&(i=i.stringify);let n=new Ub(i,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let t of this.plugins){let i=this.runOnRoot(t);if(ui(i))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Fe];)t[Fe]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let i of t.nodes)this.visitSync(this.listeners.OnceExit,i);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,i){return process.env.NODE_ENV!=="production"&&("from"in this.opts||zb("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(t,i)}toString(){return this.css}visitSync(t,i){for(let[n,s]of t){this.result.lastPlugin=n;let r;try{r=s(i,this.helpers)}catch(l){throw this.handleError(l,i.proxyOf)}if(i.type!=="root"&&i.type!=="document"&&!i.parent)return!0;if(ui(r))throw this.getAsyncError()}}visitTick(t){let i=t[t.length-1],{node:n,visitors:s}=i;if(n.type!=="root"&&n.type!=="document"&&!n.parent){t.pop();return}if(s.length>0&&i.visitorIndex<s.length){let[l,o]=s[i.visitorIndex];i.visitorIndex+=1,i.visitorIndex===s.length&&(i.visitors=[],i.visitorIndex=0),this.result.lastPlugin=l;try{return o(n.toProxy(),this.helpers)}catch(a){throw this.handleError(a,n)}}if(i.iterator!==0){let l=i.iterator,o;for(;o=n.nodes[n.indexes[l]];)if(n.indexes[l]+=1,!o[Fe]){o[Fe]=!0,t.push(ja(o));return}i.iterator=0,delete n.indexes[l]}let r=i.events;for(;i.eventIndex<r.length;){let l=r[i.eventIndex];if(i.eventIndex+=1,l===vt){n.nodes&&n.nodes.length&&(n[Fe]=!0,i.iterator=n.getIterator());return}else if(this.listeners[l]){i.visitors=this.listeners[l];return}}t.pop()}walkSync(t){t[Fe]=!0;let i=Qa(t);for(let n of i)if(n===vt)t.nodes&&t.each(s=>{s[Fe]||this.walkSync(s)});else{let s=this.listeners[n];if(s&&this.visitSync(s,t.toProxy()))return}}warnings(){return this.sync().warnings()}};kt.registerPostcss=e=>{Cr=e};var Aa=kt;kt.default=kt,Mb.registerLazyResult(kt),Fb.registerLazyResult(kt);let Bb=Ua,Qb=Ir;const jb=Vr;let Ab=bn,_b=Da,Rr=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=Qb;try{e=t(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let n,s=Ab;this.result=new jb(this._processor,n,this._opts),this.result.css=t;let r=this;Object.defineProperty(this.result,"root",{get(){return r.root}});let l=new Bb(s,n,this._opts,t);if(l.isMap()){let[o,a]=l.generate();o&&(this.result.css=o),a&&(this.result.map=a)}else l.clearAnnotation(),this.result.css=l.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return process.env.NODE_ENV!=="production"&&("from"in this._opts||_b("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.")),this.async().then(e,t)}toString(){return this._css}warnings(){return[]}};var $b=Rr;Rr.default=Rr;let qb=dr,ey=Aa,ty=$b,iy=oi,di=class{constructor(e=[]){this.version="8.5.6",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)t.push(i);else if(typeof i=="function")t.push(i);else if(typeof i=="object"&&(i.parse||i.stringify)){if(process.env.NODE_ENV!=="production")throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.")}else throw new Error(i+" is not a PostCSS plugin");return t}process(e,t={}){return!this.plugins.length&&!t.parser&&!t.stringifier&&!t.syntax?new ty(this,e,t):new ey(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};var ny=di;di.default=di,iy.registerProcessor(di),qb.registerProcessor(di);let _a=ur,$a=gn,sy=rt,ry=tr,qa=Zn,ec=dr,oy=cb,ly=Vn,ay=Aa,cy=xa,uy=yn,dy=Ir,Wr=ny,hy=Vr,tc=oi,ic=gr,py=bn,my=Ha;function ee(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new Wr(e)}ee.plugin=function(e,t){let i=!1;function n(...r){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:
|
|
347
347
|
https://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: 里面 postcss.plugin 被弃用. 迁移指南:
|
|
348
|
-
https://www.w3ctech.com/topic/2226`));let l=t(...r);return l.postcssPlugin=e,l.postcssVersion=new Wr().version,l}let s;return Object.defineProperty(n,"postcss",{get(){return s||(s=n()),s}}),n.process=function(r,l,o){return ee([n(o)]).process(r,l)},n},ee.stringify=
|
|
348
|
+
https://www.w3ctech.com/topic/2226`));let l=t(...r);return l.postcssPlugin=e,l.postcssVersion=new Wr().version,l}let s;return Object.defineProperty(n,"postcss",{get(){return s||(s=n()),s}}),n.process=function(r,l,o){return ee([n(o)]).process(r,l)},n},ee.stringify=py,ee.parse=dy,ee.fromJSON=oy,ee.list=cy,ee.comment=e=>new $a(e),ee.atRule=e=>new _a(e),ee.decl=e=>new qa(e),ee.rule=e=>new ic(e),ee.root=e=>new tc(e),ee.document=e=>new ec(e),ee.CssSyntaxError=ry,ee.Declaration=qa,ee.Container=sy,ee.Processor=Wr,ee.Document=ec,ee.Comment=$a,ee.Warning=my,ee.AtRule=_a,ee.Result=hy,ee.Input=ly,ee.Rule=ic,ee.Root=tc,ee.Node=uy,ay.registerPostcss(ee),ee.default=ee;class vr{constructor(...t){We(this,"parentElement",null),We(this,"parentNode",null),We(this,"ownerDocument"),We(this,"firstChild",null),We(this,"lastChild",null),We(this,"previousSibling",null),We(this,"nextSibling",null),We(this,"ELEMENT_NODE",1),We(this,"TEXT_NODE",3),We(this,"nodeType"),We(this,"nodeName"),We(this,"RRNodeType")}get childNodes(){const t=[];let i=this.firstChild;for(;i;)t.push(i),i=i.nextSibling;return t}contains(t){if(t instanceof vr){if(t.ownerDocument!==this.ownerDocument)return!1;if(t===this)return!0}else return!1;for(;t.parentNode;){if(t.parentNode===this)return!0;t=t.parentNode}return!1}appendChild(t){throw new Error("RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.")}insertBefore(t,i){throw new Error("RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.")}removeChild(t){throw new Error("RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.")}toString(){return"RRNode"}}const Jn=new Map,nc=new WeakSet;function sc(e){return e!==null&&typeof e=="object"&&"complete"in e&&"naturalWidth"in e&&"naturalHeight"in e&&"src"in e&&"onload"in e}function fy(e){if(nc.has(e))return;nc.add(e);const t=e.drawImage.bind(e);e.drawImage=function(i,...n){const s=Jn.get(e);s&&(s.cancelled=!0);const r=()=>{n.length===2&&sc(i)&&n.push(i.naturalWidth||i.width,i.naturalHeight||i.height),t(i,...n)};if(sc(i)&&!i.complete){const l={cancelled:!1};Jn.set(e,l);const o=()=>{l.cancelled||(Jn.delete(e),r())},a=()=>{if(!l.cancelled){Jn.delete(e);try{r()}catch{}}};i.onload=o,i.onerror=a}else r()}}const rc={Node:["childNodes","parentNode","parentElement","textContent"],ShadowRoot:["host","styleSheets"],Element:["shadowRoot","querySelector","querySelectorAll"],MutationObserver:[]},oc={Node:["contains","getRootNode"],ShadowRoot:["getSelection"],Element:[],MutationObserver:["constructor"]},Yn={},by=()=>!!globalThis.Zone;function kr(e){if(Yn[e])return Yn[e];const t=globalThis[e],i=t.prototype,n=e in rc?rc[e]:void 0,s=!!(n&&n.every(o=>{var a,c;return!!((c=(a=Object.getOwnPropertyDescriptor(i,o))==null?void 0:a.get)!=null&&c.toString().includes("[native code]"))})),r=e in oc?oc[e]:void 0,l=!!(r&&r.every(o=>{var a;return typeof i[o]=="function"&&((a=i[o])==null?void 0:a.toString().includes("[native code]"))}));if(s&&l&&!by())return Yn[e]=t.prototype,t.prototype;try{const o=document.createElement("iframe");document.body.appendChild(o);const a=o.contentWindow;if(!a)return t.prototype;const c=a[e].prototype;return document.body.removeChild(o),c?Yn[e]=c:i}catch{return i}}const wr={};function _e(e,t,i){var n;const s=`${e}.${String(i)}`;if(wr[s])return wr[s].call(t);const r=kr(e),l=(n=Object.getOwnPropertyDescriptor(r,i))==null?void 0:n.get;return l?(wr[s]=l,l.call(t)):t[i]}const xr={};function lc(e,t,i){const n=`${e}.${String(i)}`;if(xr[n])return xr[n].bind(t);const s=kr(e)[i];return typeof s!="function"?t[i]:(xr[n]=s,s.bind(t))}function yy(e){return _e("Node",e,"childNodes")}function gy(e){return _e("Node",e,"parentNode")}function Zy(e){return _e("Node",e,"parentElement")}function Iy(e){return _e("Node",e,"textContent")}function Sy(e,t){return lc("Node",e,"contains")(t)}function Xy(e){return lc("Node",e,"getRootNode")()}function Vy(e){return!e||!("host"in e)?null:_e("ShadowRoot",e,"host")}function Gy(e){return e.styleSheets}function Cy(e){return!e||!("shadowRoot"in e)?null:_e("Element",e,"shadowRoot")}function Ry(e,t){return _e("Element",e,"querySelector")(t)}function Wy(e,t){return _e("Element",e,"querySelectorAll")(t)}function ac(){return kr("MutationObserver").constructor}function ot(e,t,i){try{if(!(t in e))return()=>{};const n=e[t],s=i(n);return typeof s=="function"&&(s.prototype=s.prototype||{},Object.defineProperties(s,{__rrweb_original__:{enumerable:!1,value:n}})),e[t]=s,()=>{e[t]=n}}catch{return()=>{}}}const H={childNodes:yy,parentNode:gy,parentElement:Zy,textContent:Iy,contains:Sy,getRootNode:Xy,host:Vy,styleSheets:Gy,shadowRoot:Cy,querySelector:Ry,querySelectorAll:Wy,mutationObserver:ac,patch:ot,wrapCanvasContextDrawImage:fy};function ge(e,t,i=document){const n={capture:!0};return i.addEventListener(e,t,n),()=>i.removeEventListener(e,t,n)}const wt=`Please stop import mirror directly. Instead of that,\r
|
|
349
349
|
now you can use replayer.getMirror() to access the mirror instance of a replayer,\r
|
|
350
|
-
or you can use record.mirror to access the mirror instance during recording.`;let ac={map:{},getId(){return console.error(wt),-1},getNode(){return console.error(wt),null},removeNodeFromMap(){console.error(wt)},has(){return console.error(wt),!1},reset(){console.error(wt)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(ac=new Proxy(ac,{get(e,t,i){return t==="map"&&console.error(wt),Reflect.get(e,t,i)}}));function pi(e,t,i={}){let n=null,s=0;return function(...r){const l=Date.now();!s&&i.leading===!1&&(s=l);const o=t-(l-s),a=this;o<=0||o>t?(n&&(clearTimeout(n),n=null),s=l,e.apply(a,r)):!n&&i.trailing!==!1&&(n=setTimeout(()=>{s=i.leading===!1?0:Date.now(),n=null,e.apply(a,r)},o))}}function Fn(e,t,i,n,s=window){const r=s.Object.getOwnPropertyDescriptor(e,t);return s.Object.defineProperty(e,t,n?i:{set(l){setTimeout(()=>{i.set.call(this,l)},0),r&&r.set&&r.set.call(this,l)}}),()=>Fn(e,t,r||{},!0)}let Un=Date.now;/[1-9][0-9]{12}/.test(Date.now().toString())||(Un=()=>new Date().getTime());function cc(e){var t,i,n,s;const r=e.document;return{left:r.scrollingElement?r.scrollingElement.scrollLeft:e.pageXOffset!==void 0?e.pageXOffset:r.documentElement.scrollLeft||r?.body&&((t=H.parentElement(r.body))==null?void 0:t.scrollLeft)||((i=r?.body)==null?void 0:i.scrollLeft)||0,top:r.scrollingElement?r.scrollingElement.scrollTop:e.pageYOffset!==void 0?e.pageYOffset:r?.documentElement.scrollTop||r?.body&&((n=H.parentElement(r.body))==null?void 0:n.scrollTop)||((s=r?.body)==null?void 0:s.scrollTop)||0}}function uc(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function dc(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function hc(e){return e?e.nodeType===e.ELEMENT_NODE?e:H.parentElement(e):null}const Wy=e=>{try{if(e instanceof HTMLElement)return e.tagName==="CANVAS"}catch{return!1}return!1};function me(e,t,i,n){if(!e)return!1;const s=hc(e);if(!s)return!1;try{if(typeof t=="string"){if(s.classList.contains(t)||n&&s.closest("."+t)!==null)return!0}else if(ji(s,t,n))return!0}catch{}return!!(i&&(s.matches(i)||n&&s.closest(i)!==null))}function vy(e,t){return t.getId(e)!==-1}function Tr(e,t,i){return e.tagName==="TITLE"&&i.headTitleMutations?!0:t.getId(e)===Qt}function pc(e,t){if(Dt(e))return!1;const i=t.getId(e);if(!t.has(i))return!0;const n=H.parentNode(e);return n&&n.nodeType===e.DOCUMENT_NODE?!1:n?pc(n,t):!0}function Lr(e){return!!e.changedTouches}function ky(e=window){"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach)}function mc(e,t){return!!(e.nodeName==="IFRAME"&&t.getMeta(e))}function fc(e,t){return!!(e.nodeName==="LINK"&&e.nodeType===e.ELEMENT_NODE&&e.getAttribute&&e.getAttribute("rel")==="stylesheet"&&t.getMeta(e))}function Nr(e){return e?e instanceof vr&&"shadowRoot"in e?!!e.shadowRoot:!!H.shadowRoot(e):!1}class wy{constructor(){C(this,"id",1),C(this,"styleIDMap",new WeakMap),C(this,"idStyleMap",new Map)}getId(t){var i;return(i=this.styleIDMap.get(t))!=null?i:-1}has(t){return this.styleIDMap.has(t)}add(t,i){if(this.has(t))return this.getId(t);let n;return i===void 0?n=this.id++:n=i,this.styleIDMap.set(t,n),this.idStyleMap.set(n,t),n}getStyle(t){return this.idStyleMap.get(t)||null}reset(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1}generateId(){return this.id++}}function bc(e){var t;let i=null;return"getRootNode"in e&&((t=H.getRootNode(e))==null?void 0:t.nodeType)===Node.DOCUMENT_FRAGMENT_NODE&&H.host(H.getRootNode(e))&&(i=H.host(H.getRootNode(e))),i}function xy(e){let t=e,i;for(;i=bc(t);)t=i;return t}function Ty(e){const t=e.ownerDocument;if(!t)return!1;const i=xy(e);return H.contains(t,i)}function yc(e){const t=e.ownerDocument;return t?H.contains(t,e)||Ty(e):!1}var Q=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(Q||{}),P=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e))(P||{}),Ve=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(Ve||{}),$e=(e=>(e[e.Mouse=0]="Mouse",e[e.Pen=1]="Pen",e[e.Touch=2]="Touch",e))($e||{}),xt=(e=>(e[e["2D"]=0]="2D",e[e.WebGL=1]="WebGL",e[e.WebGL2=2]="WebGL2",e))(xt||{}),Tt=(e=>(e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e[e.RateChange=4]="RateChange",e))(Tt||{}),gc=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(gc||{});function Zc(e){return"__ln"in e}class Ly{constructor(){C(this,"length",0),C(this,"head",null),C(this,"tail",null)}get(t){if(t>=this.length)throw new Error("Position outside of list range");let i=this.head;for(let n=0;n<t;n++)i=i?.next||null;return i}addNode(t){const i={value:t,previous:null,next:null};if(t.__ln=i,t.previousSibling&&Zc(t.previousSibling)){const n=t.previousSibling.__ln.next;i.next=n,i.previous=t.previousSibling.__ln,t.previousSibling.__ln.next=i,n&&(n.previous=i)}else if(t.nextSibling&&Zc(t.nextSibling)&&t.nextSibling.__ln.previous){const n=t.nextSibling.__ln.previous;i.previous=n,i.next=t.nextSibling.__ln,t.nextSibling.__ln.previous=i,n&&(n.next=i)}else this.head&&(this.head.previous=i),i.next=this.head,this.head=i;i.next===null&&(this.tail=i),this.length++}removeNode(t){const i=t.__ln;this.head&&(i.previous?(i.previous.next=i.next,i.next?i.next.previous=i.previous:this.tail=i.previous):(this.head=i.next,this.head?this.head.previous=null:this.tail=null),t.__ln&&delete t.__ln,this.length--)}}const Ic=(e,t)=>`${e}@${t}`;class Ny{constructor(){C(this,"frozen",!1),C(this,"locked",!1),C(this,"texts",[]),C(this,"attributes",[]),C(this,"attributeMap",new WeakMap),C(this,"removes",[]),C(this,"mapRemoves",[]),C(this,"movedMap",{}),C(this,"addedSet",new Set),C(this,"movedSet",new Set),C(this,"droppedSet",new Set),C(this,"removesSubTreeCache",new Set),C(this,"mutationCb"),C(this,"blockClass"),C(this,"blockSelector"),C(this,"maskTextClass"),C(this,"maskTextSelector"),C(this,"inlineStylesheet"),C(this,"maskInputOptions"),C(this,"maskTextFn"),C(this,"maskInputFn"),C(this,"keepIframeSrcFn"),C(this,"recordCanvas"),C(this,"inlineImages"),C(this,"inlineVideos"),C(this,"privacySetting"),C(this,"slimDOMOptions"),C(this,"dataURLOptions"),C(this,"doc"),C(this,"mirror"),C(this,"iframeManager"),C(this,"stylesheetManager"),C(this,"shadowDomManager"),C(this,"canvasManager"),C(this,"processedNodeManager"),C(this,"unattachedDoc"),C(this,"processMutations",t=>{t.forEach(this.processMutation),this.emit()}),C(this,"emit",()=>{if(this.frozen||this.locked)return;const t=[],i=new Set,n=new Ly,s=a=>{let c=a,u=Qt;for(;u===Qt;)c=c&&c.nextSibling,u=c&&this.mirror.getId(c);return u},r=a=>{const c=H.parentNode(a);if(!c||!yc(a))return;let u=!1;if(a.nodeType===Node.TEXT_NODE){const f=c.tagName;if(f==="TEXTAREA")return;f==="STYLE"&&this.addedSet.has(c)&&(u=!0)}const h=Dt(c)?this.mirror.getId(bc(a)):this.mirror.getId(c),p=s(a);if(h===-1||p===-1)return n.addNode(a);const m=Vt(a,{doc:this.doc,mirror:this.mirror,blockClass:this.blockClass,blockSelector:this.blockSelector,maskTextClass:this.maskTextClass,maskTextSelector:this.maskTextSelector,skipChild:!0,newlyAddedElement:!0,inlineStylesheet:this.inlineStylesheet,maskInputOptions:this.maskInputOptions,maskTextFn:this.maskTextFn,maskInputFn:this.maskInputFn,slimDOMOptions:this.slimDOMOptions,dataURLOptions:this.dataURLOptions,recordCanvas:this.recordCanvas,inlineImages:this.inlineImages,inlineVideos:this.inlineVideos,privacySetting:this.privacySetting,onSerialize:f=>{mc(f,this.mirror)&&this.iframeManager.addIframe(f),fc(f,this.mirror)&&this.stylesheetManager.trackLinkElement(f),Nr(a)&&this.shadowDomManager.addShadowRoot(H.shadowRoot(a),this.doc)},onIframeLoad:(f,d)=>{this.iframeManager.attachIframe(f,d),this.shadowDomManager.observeAttachShadow(f)},onStylesheetLoad:(f,d)=>{this.stylesheetManager.attachLinkElement(f,d)},cssCaptured:u});m&&(t.push({parentId:h,nextId:p,node:m}),i.add(m.id))};for(;this.mapRemoves.length;)this.mirror.removeNodeFromMap(this.mapRemoves.shift());for(const a of this.movedSet)Sc(this.removesSubTreeCache,a)&&!this.movedSet.has(H.parentNode(a))||r(a);for(const a of this.addedSet)!Xc(this.droppedSet,a)&&!Sc(this.removesSubTreeCache,a)||Xc(this.movedSet,a)?r(a):this.droppedSet.add(a);let l=null;for(;n.length;){let a=null;if(l){const c=this.mirror.getId(H.parentNode(l.value)),u=s(l.value);c!==-1&&u!==-1&&(a=l)}if(!a){let c=n.tail;for(;c;){const u=c;if(c=c.previous,u){const h=this.mirror.getId(H.parentNode(u.value));if(s(u.value)===-1)continue;if(h!==-1){a=u;break}else{const p=u.value,m=H.parentNode(p);if(m&&m.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const f=H.host(m);if(this.mirror.getId(f)!==-1){a=u;break}}}}}}if(!a){for(;n.head;)n.removeNode(n.head.value);break}l=a.previous,n.removeNode(a.value),r(a.value)}const o={texts:this.texts.map(a=>{var c,u;const h=a.node,p=H.parentNode(h);p&&p.tagName==="TEXTAREA"&&this.genTextAreaValueMutation(p);let m=a.value;const f=this.privacySetting==="strict",d=this.privacySetting==="default"&&_o(m),S=(u=(c=a.node)==null?void 0:c.parentElement)==null?void 0:u.getAttribute("data-hl-record");return(f||d)&&!S&&m&&(m=Ss(m)),{id:this.mirror.getId(h),value:m}}).filter(a=>!i.has(a.id)).filter(a=>this.mirror.has(a.id)),attributes:this.attributes.map(a=>{const{attributes:c}=a;if(typeof c.style=="string"){const u=JSON.stringify(a.styleDiff),h=JSON.stringify(a._unchangedStyles);u.length<c.style.length&&(u+h).split("var(").length===c.style.split("var(").length&&(c.style=a.styleDiff)}return{id:this.mirror.getId(a.node),attributes:c}}).filter(a=>!i.has(a.id)).filter(a=>this.mirror.has(a.id)),removes:this.removes,adds:t};!o.texts.length&&!o.attributes.length&&!o.removes.length&&!o.adds.length||(this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.removesSubTreeCache=new Set,this.movedMap={},this.mutationCb(o))}),C(this,"genTextAreaValueMutation",t=>{let i=this.attributeMap.get(t);i||(i={node:t,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(i),this.attributeMap.set(t,i));const n=Array.from(H.childNodes(t),s=>H.textContent(s)||"").join("");i.attributes.value=Hi({overwriteRecord:null,element:t,maskInputOptions:this.maskInputOptions,tagName:t.tagName,type:Pi(t),value:n,maskInputFn:this.maskInputFn})}),C(this,"processMutation",t=>{if(!Tr(t.target,this.mirror,this.slimDOMOptions))switch(t.type){case"characterData":{const i=H.textContent(t.target);!me(t.target,this.blockClass,this.blockSelector,!1)&&i!==t.oldValue&&this.texts.push({value:rl(t.target,this.maskTextClass,this.maskTextSelector,!0)&&i?this.maskTextFn?this.maskTextFn(i,hc(t.target)):i.replace(/[\S]/g,"*"):i,node:t.target});break}case"attributes":{const i=t.target;let n=t.attributeName,s=t.target.getAttribute(n);if(n==="value"){const l=Pi(i);s=Hi({element:i,maskInputOptions:this.maskInputOptions,tagName:i.tagName,type:l,value:s,overwriteRecord:i.getAttribute("data-hl-record"),maskInputFn:this.maskInputFn})}if(me(t.target,this.blockClass,this.blockSelector,!1)||s===t.oldValue)return;let r=this.attributeMap.get(t.target);if(i.tagName==="IFRAME"&&n==="src"&&!this.keepIframeSrcFn(s))if(!i.contentDocument)n="rr_src";else return;if(r||(r={node:t.target,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(r),this.attributeMap.set(t.target,r)),n==="type"&&i.tagName==="INPUT"&&(t.oldValue||"").toLowerCase()==="password"&&i.setAttribute("data-rr-is-password","true"),!nl(i.tagName,n)){if(t.target.tagName==="INPUT"){const l=t.target;if(l.type==="password"){r.attributes.value="*".repeat(l.value.length);break}}if(r.attributes[n]=il(this.doc,St(i.tagName),St(n),s),n==="style"){if(!this.unattachedDoc)try{this.unattachedDoc=document.implementation.createHTMLDocument()}catch{this.unattachedDoc=this.doc}const l=this.unattachedDoc.createElement("span");t.oldValue&&l.setAttribute("style",t.oldValue);for(const o of Array.from(i.style)){const a=i.style.getPropertyValue(o),c=i.style.getPropertyPriority(o);a!==l.style.getPropertyValue(o)||c!==l.style.getPropertyPriority(o)?c===""?r.styleDiff[o]=a:r.styleDiff[o]=[a,c]:r._unchangedStyles[o]=[a,c]}for(const o of Array.from(l.style))i.style.getPropertyValue(o)===""&&(r.styleDiff[o]=!1)}else n==="open"&&i.tagName==="DIALOG"&&(i.matches("dialog:modal")?r.attributes.rr_open_mode="modal":r.attributes.rr_open_mode="non-modal")}break}case"childList":{if(me(t.target,this.blockClass,this.blockSelector,!0))return;if(t.target.tagName==="TEXTAREA"){this.genTextAreaValueMutation(t.target);return}t.addedNodes.forEach(i=>this.genAdds(i,t.target)),t.removedNodes.forEach(i=>{const n=this.mirror.getId(i),s=Dt(t.target)?this.mirror.getId(H.host(t.target)):this.mirror.getId(t.target);me(t.target,this.blockClass,this.blockSelector,!1)||Tr(i,this.mirror,this.slimDOMOptions)||!vy(i,this.mirror)||(this.addedSet.has(i)?(Jr(this.addedSet,i),this.droppedSet.add(i)):this.addedSet.has(t.target)&&n===-1||pc(t.target,this.mirror)||(this.movedSet.has(i)&&this.movedMap[Ic(n,s)]?Jr(this.movedSet,i):(this.removes.push({parentId:s,id:n,isShadow:Dt(t.target)&&Bt(t.target)?!0:void 0}),Jy(i,this.removesSubTreeCache))),this.mapRemoves.push(i))});break}}}),C(this,"genAdds",(t,i)=>{if(!this.processedNodeManager.inOtherBuffer(t,this)&&!(this.addedSet.has(t)||this.movedSet.has(t))){if(this.mirror.hasNode(t)){if(Tr(t,this.mirror,this.slimDOMOptions))return;this.movedSet.add(t);let n=null;i&&this.mirror.hasNode(i)&&(n=this.mirror.getId(i)),n&&n!==-1&&(this.movedMap[Ic(this.mirror.getId(t),n)]=!0)}else this.addedSet.add(t),this.droppedSet.delete(t);me(t,this.blockClass,this.blockSelector,!1)||(H.childNodes(t).forEach(n=>this.genAdds(n)),Nr(t)&&H.childNodes(H.shadowRoot(t)).forEach(n=>{this.processedNodeManager.add(n,this),this.genAdds(n,t)}))}})}init(t){["mutationCb","blockClass","blockSelector","maskTextClass","maskTextSelector","inlineStylesheet","maskInputOptions","maskTextFn","maskInputFn","keepIframeSrcFn","recordCanvas","inlineImages","inlineVideos","privacySetting","slimDOMOptions","dataURLOptions","doc","mirror","iframeManager","stylesheetManager","shadowDomManager","canvasManager","processedNodeManager"].forEach(i=>{this[i]=t[i]})}freeze(){this.frozen=!0,this.canvasManager.freeze()}unfreeze(){this.frozen=!1,this.canvasManager.unfreeze(),this.emit()}isFrozen(){return this.frozen}lock(){this.locked=!0,this.canvasManager.lock()}unlock(){this.locked=!1,this.canvasManager.unlock(),this.emit()}reset(){this.shadowDomManager.reset(),this.canvasManager.reset()}}function Jr(e,t){e.delete(t),H.childNodes(t).forEach(i=>Jr(e,i))}function Jy(e,t){const i=[e];for(;i.length;){const n=i.pop();t.has(n)||(t.add(n),H.childNodes(n).forEach(s=>i.push(s)))}}function Sc(e,t,i){return e.size===0?!1:Yy(e,t)}function Yy(e,t,i){const n=H.parentNode(t);return n?e.has(n):!1}function Xc(e,t){return e.size===0?!1:Vc(e,t)}function Vc(e,t){const i=H.parentNode(t);return i?e.has(i)?!0:Vc(e,i):!1}let mi;function Fy(e){mi=e}function Uy(){mi=void 0}const D=e=>mi?(...t)=>{try{return e(...t)}catch(i){if(mi&&mi(i)===!0)return;throw i}}:e,at=[];function fi(e){try{if("composedPath"in e){const t=e.composedPath();if(t.length)return t[0]}else if("path"in e&&e.path.length)return e.path[0]}catch{}return e&&e.target}function Gc(e,t){const i=new Ny;at.push(i),i.init(e);const n=new(lc())(D(i.processMutations.bind(i)));return n.observe(t,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),n}function Ky({mousemoveCb:e,sampling:t,doc:i,mirror:n}){if(t.mousemove===!1)return()=>{};const s=typeof t.mousemove=="number"?t.mousemove:50,r=typeof t.mousemoveCallback=="number"?t.mousemoveCallback:500;let l=[],o;const a=pi(D(h=>{const p=Date.now()-o;e(l.map(m=>(m.timeOffset-=p,m)),h),l=[],o=null}),r),c=D(pi(D(h=>{const p=fi(h),{clientX:m,clientY:f}=Lr(h)?h.changedTouches[0]:h;o||(o=Un()),l.push({x:m,y:f,id:n.getId(p),timeOffset:Un()-o}),a(typeof DragEvent<"u"&&h instanceof DragEvent?P.Drag:h instanceof MouseEvent?P.MouseMove:P.TouchMove)}),s,{trailing:!1})),u=[ge("mousemove",c,i),ge("touchmove",c,i),ge("drag",c,i)];return D(()=>{u.forEach(h=>h())})}function My({mouseInteractionCb:e,doc:t,mirror:i,blockClass:n,blockSelector:s,sampling:r}){if(r.mouseInteraction===!1)return()=>{};const l=r.mouseInteraction===!0||r.mouseInteraction===void 0?{}:r.mouseInteraction,o=[];let a=null;const c=u=>h=>{const p=fi(h);if(me(p,n,s,!0)||Wy(p))return;let m=null,f=u;if("pointerType"in h){switch(h.pointerType){case"mouse":m=$e.Mouse;break;case"touch":m=$e.Touch;break;case"pen":m=$e.Pen;break}m===$e.Touch&&(Ve[u]===Ve.MouseDown?f="TouchStart":Ve[u]===Ve.MouseUp&&(f="TouchEnd"))}else Lr(h)&&(m=$e.Touch);m!==null?(a=m,(f.startsWith("Touch")&&m===$e.Touch||f.startsWith("Mouse")&&m===$e.Mouse)&&(m=null)):Ve[u]===Ve.Click&&(m=a,a=null);const d=Lr(h)?h.changedTouches[0]:h;if(!d)return;const S=i.getId(p),{clientX:I,clientY:V}=d;D(e)(Y({type:Ve[f],id:S,x:I,y:V},m!==null&&{pointerType:m}))};return Object.keys(Ve).filter(u=>Number.isNaN(Number(u))&&!u.endsWith("_Departed")&&l[u]!==!1).forEach(u=>{let h=St(u);const p=c(u);if(window.PointerEvent)switch(Ve[u]){case Ve.MouseDown:case Ve.MouseUp:h=h.replace("mouse","pointer");break;case Ve.TouchStart:case Ve.TouchEnd:return}o.push(ge(h,p,t))}),D(()=>{o.forEach(u=>u())})}function Cc({scrollCb:e,doc:t,mirror:i,blockClass:n,blockSelector:s,sampling:r}){const l=D(pi(D(o=>{const a=fi(o);if(!a||me(a,n,s,!0))return;const c=i.getId(a);if(a===t&&t.defaultView){const u=cc(t.defaultView);e({id:c,x:u.left,y:u.top})}else e({id:c,x:a.scrollLeft,y:a.scrollTop})}),r.scroll||100));return ge("scroll",l,t)}function Oy({viewportResizeCb:e},{win:t}){let i=-1,n=-1;const s=D(pi(D(()=>{const r=uc(),l=dc();(i!==r||n!==l)&&(e({width:Number(l),height:Number(r)}),i=r,n=l)}),200));return ge("resize",s,t)}const Ey=["INPUT","TEXTAREA","SELECT"],Rc=new WeakMap;function zy({inputCb:e,doc:t,mirror:i,blockClass:n,blockSelector:s,ignoreClass:r,ignoreSelector:l,maskInputOptions:o,maskInputFn:a,sampling:c,userTriggeredOnInput:u}){function h(I){let V=fi(I);const R=I.isTrusted,G=V&&V.tagName;if(V&&G==="OPTION"&&(V=H.parentElement(V)),!V||!G||Ey.indexOf(G)<0||me(V,n,s,!0)||V.classList.contains(r)||l&&V.matches(l))return;let X=V.value,v=!1;const k=Pi(V)||"",w=V.getAttribute("data-hl-record");k==="radio"||k==="checkbox"?v=V.checked:$o({maskInputOptions:o,type:k,tagName:G,overwriteRecord:w})&&(X=Hi({element:V,maskInputOptions:o,tagName:G,type:k,value:X,overwriteRecord:w,maskInputFn:a})),p(V,u?{text:X,isChecked:v,userTriggered:R}:{text:X,isChecked:v});const g=V.name;k==="radio"&&g&&v&&t.querySelectorAll(`input[type="radio"][name="${g}"]`).forEach(W=>{if(W!==V){const J=W.value;p(W,u?{text:J,isChecked:!v,userTriggered:!1}:{text:J,isChecked:!v})}})}function p(I,V){const R=Rc.get(I);if(!R||R.text!==V.text||R.isChecked!==V.isChecked){Rc.set(I,V);const G=i.getId(I);D(e)(he(Y({},V),{id:G}))}}const m=(c.input==="last"?["change"]:["input","change"]).map(I=>ge(I,D(h),t)),f=t.defaultView;if(!f)return()=>{m.forEach(I=>I())};const d=f.Object.getOwnPropertyDescriptor(f.HTMLInputElement.prototype,"value"),S=[[f.HTMLInputElement.prototype,"value"],[f.HTMLInputElement.prototype,"checked"],[f.HTMLSelectElement.prototype,"value"],[f.HTMLTextAreaElement.prototype,"value"],[f.HTMLSelectElement.prototype,"selectedIndex"],[f.HTMLOptionElement.prototype,"selected"]];return d&&d.set&&m.push(...S.map(I=>Fn(I[0],I[1],{set(){D(h)({target:this,isTrusted:!1})}},!1,f))),D(()=>{m.forEach(I=>I())})}function Kn(e){const t=[];function i(n,s){if(Mn("CSSGroupingRule")&&n.parentRule instanceof CSSGroupingRule||Mn("CSSMediaRule")&&n.parentRule instanceof CSSMediaRule||Mn("CSSSupportsRule")&&n.parentRule instanceof CSSSupportsRule||Mn("CSSConditionRule")&&n.parentRule instanceof CSSConditionRule){const r=Array.from(n.parentRule.cssRules).indexOf(n);s.unshift(r)}else if(n.parentStyleSheet){const r=Array.from(n.parentStyleSheet.cssRules).indexOf(n);s.unshift(r)}return s}return i(e,t)}function qe(e,t,i){let n,s;return e?(e.ownerNode?n=t.getId(e.ownerNode):s=i.getId(e),{styleId:s,id:n}):{}}function Hy({styleSheetRuleCb:e,mirror:t,stylesheetManager:i},{win:n}){if(!n.CSSStyleSheet||!n.CSSStyleSheet.prototype)return()=>{};const s=n.CSSStyleSheet.prototype.insertRule;n.CSSStyleSheet.prototype.insertRule=new Proxy(s,{apply:D((u,h,p)=>{const[m,f]=p,{id:d,styleId:S}=qe(h,t,i.styleMirror);return(d&&d!==-1||S&&S!==-1)&&e({id:d,styleId:S,adds:[{rule:m,index:f}]}),u.apply(h,p)})}),n.CSSStyleSheet.prototype.addRule=function(u,h,p=this.cssRules.length){const m=`${u} { ${h} }`;return n.CSSStyleSheet.prototype.insertRule.apply(this,[m,p])};const r=n.CSSStyleSheet.prototype.deleteRule;n.CSSStyleSheet.prototype.deleteRule=new Proxy(r,{apply:D((u,h,p)=>{const[m]=p,{id:f,styleId:d}=qe(h,t,i.styleMirror);return(f&&f!==-1||d&&d!==-1)&&e({id:f,styleId:d,removes:[{index:m}]}),u.apply(h,p)})}),n.CSSStyleSheet.prototype.removeRule=function(u){return n.CSSStyleSheet.prototype.deleteRule.apply(this,[u])};let l;n.CSSStyleSheet.prototype.replace&&(l=n.CSSStyleSheet.prototype.replace,n.CSSStyleSheet.prototype.replace=new Proxy(l,{apply:D((u,h,p)=>{const[m]=p,{id:f,styleId:d}=qe(h,t,i.styleMirror);return(f&&f!==-1||d&&d!==-1)&&e({id:f,styleId:d,replace:m}),u.apply(h,p)})}));let o;n.CSSStyleSheet.prototype.replaceSync&&(o=n.CSSStyleSheet.prototype.replaceSync,n.CSSStyleSheet.prototype.replaceSync=new Proxy(o,{apply:D((u,h,p)=>{const[m]=p,{id:f,styleId:d}=qe(h,t,i.styleMirror);return(f&&f!==-1||d&&d!==-1)&&e({id:f,styleId:d,replaceSync:m}),u.apply(h,p)})}));const a={};On("CSSGroupingRule")?a.CSSGroupingRule=n.CSSGroupingRule:(On("CSSMediaRule")&&(a.CSSMediaRule=n.CSSMediaRule),On("CSSConditionRule")&&(a.CSSConditionRule=n.CSSConditionRule),On("CSSSupportsRule")&&(a.CSSSupportsRule=n.CSSSupportsRule));const c={};return Object.entries(a).forEach(([u,h])=>{c[u]={insertRule:h.prototype.insertRule,deleteRule:h.prototype.deleteRule},h.prototype.insertRule=new Proxy(c[u].insertRule,{apply:D((p,m,f)=>{const[d,S]=f,{id:I,styleId:V}=qe(m.parentStyleSheet,t,i.styleMirror);return(I&&I!==-1||V&&V!==-1)&&e({id:I,styleId:V,adds:[{rule:d,index:[...Kn(m),S||0]}]}),p.apply(m,f)})}),h.prototype.deleteRule=new Proxy(c[u].deleteRule,{apply:D((p,m,f)=>{const[d]=f,{id:S,styleId:I}=qe(m.parentStyleSheet,t,i.styleMirror);return(S&&S!==-1||I&&I!==-1)&&e({id:S,styleId:I,removes:[{index:[...Kn(m),d]}]}),p.apply(m,f)})})}),D(()=>{n.CSSStyleSheet.prototype.insertRule=s,n.CSSStyleSheet.prototype.deleteRule=r,l&&(n.CSSStyleSheet.prototype.replace=l),o&&(n.CSSStyleSheet.prototype.replaceSync=o),Object.entries(a).forEach(([u,h])=>{h.prototype.insertRule=c[u].insertRule,h.prototype.deleteRule=c[u].deleteRule})})}function Wc({mirror:e,stylesheetManager:t},i){var n,s,r;let l=null;i.nodeName==="#document"?l=e.getId(i):l=e.getId(H.host(i));const o=i.nodeName==="#document"?(n=i.defaultView)==null?void 0:n.Document:(r=(s=i.ownerDocument)==null?void 0:s.defaultView)==null?void 0:r.ShadowRoot,a=o!=null&&o.prototype?Object.getOwnPropertyDescriptor(o?.prototype,"adoptedStyleSheets"):void 0;return l===null||l===-1||!o||!a?()=>{}:(Object.defineProperty(i,"adoptedStyleSheets",{configurable:a.configurable,enumerable:a.enumerable,get(){var c;return(c=a.get)==null?void 0:c.call(this)},set(c){var u;const h=(u=a.set)==null?void 0:u.call(this,c);if(l!==null&&l!==-1)try{t.adoptStyleSheets(c,l)}catch{}return h}}),D(()=>{Object.defineProperty(i,"adoptedStyleSheets",{configurable:a.configurable,enumerable:a.enumerable,get:a.get,set:a.set})}))}function Py({styleDeclarationCb:e,mirror:t,ignoreCSSAttributes:i,stylesheetManager:n},{win:s}){const r=s.CSSStyleDeclaration.prototype.setProperty;s.CSSStyleDeclaration.prototype.setProperty=new Proxy(r,{apply:D((o,a,c)=>{var u;const[h,p,m]=c;if(i.has(h))return r.apply(a,[h,p,m]);const{id:f,styleId:d}=qe((u=a.parentRule)==null?void 0:u.parentStyleSheet,t,n.styleMirror);return(f&&f!==-1||d&&d!==-1)&&e({id:f,styleId:d,set:{property:h,value:p,priority:m},index:Kn(a.parentRule)}),o.apply(a,c)})});const l=s.CSSStyleDeclaration.prototype.removeProperty;return s.CSSStyleDeclaration.prototype.removeProperty=new Proxy(l,{apply:D((o,a,c)=>{var u;const[h]=c;if(i.has(h))return l.apply(a,[h]);const{id:p,styleId:m}=qe((u=a.parentRule)==null?void 0:u.parentStyleSheet,t,n.styleMirror);return(p&&p!==-1||m&&m!==-1)&&e({id:p,styleId:m,remove:{property:h},index:Kn(a.parentRule)}),o.apply(a,c)})}),D(()=>{s.CSSStyleDeclaration.prototype.setProperty=r,s.CSSStyleDeclaration.prototype.removeProperty=l})}function Dy({mediaInteractionCb:e,blockClass:t,blockSelector:i,mirror:n,sampling:s,doc:r}){const l=D(a=>pi(D(c=>{const u=fi(c);if(!u||me(u,t,i,!0))return;const{currentTime:h,volume:p,muted:m,playbackRate:f,loop:d}=u;e({type:a,id:n.getId(u),currentTime:h,volume:p,muted:m,playbackRate:f,loop:d})}),s.media||500)),o=[ge("play",l(Tt.Play),r),ge("pause",l(Tt.Pause),r),ge("seeked",l(Tt.Seeked),r),ge("volumechange",l(Tt.VolumeChange),r),ge("ratechange",l(Tt.RateChange),r)];return D(()=>{o.forEach(a=>a())})}function By({fontCb:e,doc:t}){const i=t.defaultView;if(!i)return()=>{};const n=[],s=new WeakMap,r=i.FontFace;i.FontFace=function(o,a,c){const u=new r(o,a,c);return s.set(u,{family:o,buffer:typeof a!="string",descriptors:c,fontSource:typeof a=="string"?a:JSON.stringify(Array.from(new Uint8Array(a)))}),u};const l=lt(t.fonts,"add",function(o){return function(a){return setTimeout(D(()=>{const c=s.get(a);c&&(e(c),s.delete(a))}),0),o.apply(this,[a])}});return n.push(()=>{i.FontFace=r}),n.push(l),D(()=>{n.forEach(o=>o())})}function Qy(e){const{doc:t,mirror:i,blockClass:n,blockSelector:s,selectionCb:r}=e;let l=!0;const o=D(()=>{const a=t.getSelection();if(!a||l&&a!=null&&a.isCollapsed)return;l=a.isCollapsed||!1;const c=[],u=a.rangeCount||0;for(let h=0;h<u;h++){const p=a.getRangeAt(h),{startContainer:m,startOffset:f,endContainer:d,endOffset:S}=p;me(m,n,s,!0)||me(d,n,s,!0)||c.push({start:i.getId(m),startOffset:f,end:i.getId(d),endOffset:S})}r({ranges:c})});return o(),ge("selectionchange",o)}function jy({doc:e,customElementCb:t}){const i=e.defaultView;return!i||!i.customElements?()=>{}:lt(i.customElements,"define",function(n){return function(s,r,l){try{t({define:{name:s}})}catch{console.warn(`Custom element callback failed for ${s}`)}return n.apply(this,[s,r,l])}})}function Ay(e,t){const{mutationCb:i,mousemoveCb:n,mouseInteractionCb:s,scrollCb:r,viewportResizeCb:l,inputCb:o,mediaInteractionCb:a,styleSheetRuleCb:c,styleDeclarationCb:u,canvasMutationCb:h,fontCb:p,selectionCb:m,customElementCb:f}=e;e.mutationCb=(...d)=>{t.mutation&&t.mutation(...d),i(...d)},e.mousemoveCb=(...d)=>{t.mousemove&&t.mousemove(...d),n(...d)},e.mouseInteractionCb=(...d)=>{t.mouseInteraction&&t.mouseInteraction(...d),s(...d)},e.scrollCb=(...d)=>{t.scroll&&t.scroll(...d),r(...d)},e.viewportResizeCb=(...d)=>{t.viewportResize&&t.viewportResize(...d),l(...d)},e.inputCb=(...d)=>{t.input&&t.input(...d),o(...d)},e.mediaInteractionCb=(...d)=>{t.mediaInteaction&&t.mediaInteaction(...d),a(...d)},e.styleSheetRuleCb=(...d)=>{t.styleSheetRule&&t.styleSheetRule(...d),c(...d)},e.styleDeclarationCb=(...d)=>{t.styleDeclaration&&t.styleDeclaration(...d),u(...d)},e.canvasMutationCb=(...d)=>{t.canvasMutation&&t.canvasMutation(...d),h(...d)},e.fontCb=(...d)=>{t.font&&t.font(...d),p(...d)},e.selectionCb=(...d)=>{t.selection&&t.selection(...d),m(...d)},e.customElementCb=(...d)=>{t.customElement&&t.customElement(...d),f(...d)}}function _y(e,t={}){const i=e.doc.defaultView;if(!i)return()=>{};Ay(e,t);let n;e.recordDOM&&(n=Gc(e,e.doc));const s=Ky(e),r=My(e),l=Cc(e),o=Oy(e,{win:i}),a=zy(e),c=Dy(e);let u=()=>{},h=()=>{},p=()=>{},m=()=>{};e.recordDOM&&(u=Hy(e,{win:i}),h=Wc(e,e.doc),p=Py(e,{win:i}),e.collectFonts&&(m=By(e)));const f=Qy(e),d=jy(e),S=[];for(const I of e.plugins)S.push(I.observer(I.callback,i,I.options));return D(()=>{at.forEach(I=>I.reset()),n?.disconnect(),s(),r(),l(),o(),a(),c(),u(),h(),p(),m(),f(),d(),S.forEach(I=>I())})}function Mn(e){return typeof window[e]<"u"}function On(e){return!!(typeof window[e]<"u"&&window[e].prototype&&"insertRule"in window[e].prototype&&"deleteRule"in window[e].prototype)}class vc{constructor(t){C(this,"iframeIdToRemoteIdMap",new WeakMap),C(this,"iframeRemoteIdToIdMap",new WeakMap),this.generateIdFn=t}getId(t,i,n,s){const r=n||this.getIdToRemoteIdMap(t),l=s||this.getRemoteIdToIdMap(t);let o=r.get(i);return o||(o=this.generateIdFn(),r.set(i,o),l.set(o,i)),o}getIds(t,i){const n=this.getIdToRemoteIdMap(t),s=this.getRemoteIdToIdMap(t);return i.map(r=>this.getId(t,r,n,s))}getRemoteId(t,i,n){const s=n||this.getRemoteIdToIdMap(t);return typeof i!="number"?i:s.get(i)||-1}getRemoteIds(t,i){const n=this.getRemoteIdToIdMap(t);return i.map(s=>this.getRemoteId(t,s,n))}reset(t){if(!t){this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap;return}this.iframeIdToRemoteIdMap.delete(t),this.iframeRemoteIdToIdMap.delete(t)}getIdToRemoteIdMap(t){let i=this.iframeIdToRemoteIdMap.get(t);return i||(i=new Map,this.iframeIdToRemoteIdMap.set(t,i)),i}getRemoteIdToIdMap(t){let i=this.iframeRemoteIdToIdMap.get(t);return i||(i=new Map,this.iframeRemoteIdToIdMap.set(t,i)),i}}class $y{constructor(t){C(this,"iframes",new WeakMap),C(this,"crossOriginIframeMap",new WeakMap),C(this,"crossOriginIframeMirror",new vc(qo)),C(this,"crossOriginIframeStyleMirror"),C(this,"crossOriginIframeRootIdMap",new WeakMap),C(this,"mirror"),C(this,"mutationCb"),C(this,"wrappedEmit"),C(this,"loadListener"),C(this,"stylesheetManager"),C(this,"recordCrossOriginIframes"),this.mutationCb=t.mutationCb,this.wrappedEmit=t.wrappedEmit,this.stylesheetManager=t.stylesheetManager,this.recordCrossOriginIframes=t.recordCrossOriginIframes,this.crossOriginIframeStyleMirror=new vc(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)),this.mirror=t.mirror,this.recordCrossOriginIframes&&window.addEventListener("message",this.handleMessage.bind(this))}addIframe(t){this.iframes.set(t,!0),t.contentWindow&&this.crossOriginIframeMap.set(t.contentWindow,t)}addLoadListener(t){this.loadListener=t}attachIframe(t,i){var n,s;this.mutationCb({adds:[{parentId:this.mirror.getId(t),nextId:null,node:i}],removes:[],texts:[],attributes:[],isAttachIframe:!0}),this.recordCrossOriginIframes&&((n=t.contentWindow)==null||n.addEventListener("message",this.handleMessage.bind(this))),(s=this.loadListener)==null||s.call(this,t),t.contentDocument&&t.contentDocument.adoptedStyleSheets&&t.contentDocument.adoptedStyleSheets.length>0&&this.stylesheetManager.adoptStyleSheets(t.contentDocument.adoptedStyleSheets,this.mirror.getId(t.contentDocument))}handleMessage(t){const i=t;if(i.data.type!=="rrweb"||i.origin!==i.data.origin)return;const n=t.source;if(!n)return;const s=this.crossOriginIframeMap.get(n);if(!s)return;const r=this.transformCrossOriginEvent(s,i.data.event);r&&this.wrappedEmit(r,i.data.isCheckout)}transformCrossOriginEvent(t,i){var n;switch(i.type){case Q.FullSnapshot:{this.crossOriginIframeMirror.reset(t),this.crossOriginIframeStyleMirror.reset(t),this.replaceIdOnNode(i.data.node,t);const s=i.data.node.id;return this.crossOriginIframeRootIdMap.set(t,s),this.patchRootIdOnNode(i.data.node,s),{timestamp:i.timestamp,type:Q.IncrementalSnapshot,data:{source:P.Mutation,adds:[{parentId:this.mirror.getId(t),nextId:null,node:i.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}}}case Q.Meta:case Q.Load:case Q.DomContentLoaded:return!1;case Q.Plugin:return i;case Q.Custom:return this.replaceIds(i.data.payload,t,["id","parentId","previousId","nextId"]),i;case Q.IncrementalSnapshot:switch(i.data.source){case P.Mutation:return i.data.adds.forEach(s=>{this.replaceIds(s,t,["parentId","nextId","previousId"]),this.replaceIdOnNode(s.node,t);const r=this.crossOriginIframeRootIdMap.get(t);r&&this.patchRootIdOnNode(s.node,r)}),i.data.removes.forEach(s=>{this.replaceIds(s,t,["parentId","id"])}),i.data.attributes.forEach(s=>{this.replaceIds(s,t,["id"])}),i.data.texts.forEach(s=>{this.replaceIds(s,t,["id"])}),i;case P.Drag:case P.TouchMove:case P.MouseMove:return i.data.positions.forEach(s=>{this.replaceIds(s,t,["id"])}),i;case P.ViewportResize:return!1;case P.MediaInteraction:case P.MouseInteraction:case P.Scroll:case P.CanvasMutation:case P.Input:return this.replaceIds(i.data,t,["id"]),i;case P.StyleSheetRule:case P.StyleDeclaration:return this.replaceIds(i.data,t,["id"]),this.replaceStyleIds(i.data,t,["styleId"]),i;case P.Font:return i;case P.Selection:return i.data.ranges.forEach(s=>{this.replaceIds(s,t,["start","end"])}),i;case P.AdoptedStyleSheet:return this.replaceIds(i.data,t,["id"]),this.replaceStyleIds(i.data,t,["styleIds"]),(n=i.data.styles)==null||n.forEach(s=>{this.replaceStyleIds(s,t,["styleId"])}),i}}return!1}replace(t,i,n,s){for(const r of s)!Array.isArray(i[r])&&typeof i[r]!="number"||(Array.isArray(i[r])?i[r]=t.getIds(n,i[r]):i[r]=t.getId(n,i[r]));return i}replaceIds(t,i,n){return this.replace(this.crossOriginIframeMirror,t,i,n)}replaceStyleIds(t,i,n){return this.replace(this.crossOriginIframeStyleMirror,t,i,n)}replaceIdOnNode(t,i){this.replaceIds(t,i,["id","rootId"]),"childNodes"in t&&t.childNodes.forEach(n=>{this.replaceIdOnNode(n,i)})}patchRootIdOnNode(t,i){t.type!==gc.Document&&!t.rootId&&(t.rootId=i),"childNodes"in t&&t.childNodes.forEach(n=>{this.patchRootIdOnNode(n,i)})}}class qy{constructor(t){C(this,"shadowDoms",new WeakSet),C(this,"mutationCb"),C(this,"scrollCb"),C(this,"bypassOptions"),C(this,"mirror"),C(this,"restoreHandlers",[]),this.mutationCb=t.mutationCb,this.scrollCb=t.scrollCb,this.bypassOptions=t.bypassOptions,this.mirror=t.mirror,this.init()}init(){this.reset(),this.patchAttachShadow(Element,document)}addShadowRoot(t,i){if(!Bt(t)||this.shadowDoms.has(t))return;this.shadowDoms.add(t);const n=Gc(he(Y({},this.bypassOptions),{doc:i,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this}),t);this.restoreHandlers.push(()=>n.disconnect()),this.restoreHandlers.push(Cc(he(Y({},this.bypassOptions),{scrollCb:this.scrollCb,doc:t,mirror:this.mirror}))),setTimeout(()=>{t.adoptedStyleSheets&&t.adoptedStyleSheets.length>0&&this.bypassOptions.stylesheetManager.adoptStyleSheets(t.adoptedStyleSheets,this.mirror.getId(H.host(t))),this.restoreHandlers.push(Wc({mirror:this.mirror,stylesheetManager:this.bypassOptions.stylesheetManager},t))},0)}observeAttachShadow(t){!t.contentWindow||!t.contentDocument||this.patchAttachShadow(t.contentWindow.Element,t.contentDocument)}patchAttachShadow(t,i){const n=this;this.restoreHandlers.push(lt(t.prototype,"attachShadow",function(s){return function(r){const l=s.call(this,r),o=H.shadowRoot(this);return o&&yc(this)&&n.addShadowRoot(o,i),l}}))}reset(){this.restoreHandlers.forEach(t=>{try{t()}catch{}}),this.restoreHandlers=[],this.shadowDoms=new WeakSet}}for(var Lt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",eg=typeof Uint8Array>"u"?[]:new Uint8Array(256),En=0;En<Lt.length;En++)eg[Lt.charCodeAt(En)]=En;var tg=function(e){var t=new Uint8Array(e),i,n=t.length,s="";for(i=0;i<n;i+=3)s+=Lt[t[i]>>2],s+=Lt[(t[i]&3)<<4|t[i+1]>>4],s+=Lt[(t[i+1]&15)<<2|t[i+2]>>6],s+=Lt[t[i+2]&63];return n%3===2?s=s.substring(0,s.length-1)+"=":n%3===1&&(s=s.substring(0,s.length-2)+"=="),s};const kc=new Map;function ig(e,t){let i=kc.get(e);return i||(i=new Map,kc.set(e,i)),i.has(t)||i.set(t,[]),i.get(t)}const wc=(e,t,i)=>{if(!e||!(Tc(e,t)||typeof e=="object"))return;const n=e.constructor.name,s=ig(i,n);let r=s.indexOf(e);return r===-1&&(r=s.length,s.push(e)),r};function zn(e,t,i){if(e instanceof Array)return e.map(n=>zn(n,t,i));if(e===null)return e;if(e instanceof Float32Array||e instanceof Float64Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Int8Array||e instanceof Uint8ClampedArray)return{rr_type:e.constructor.name,args:[Object.values(e)]};if(e instanceof ArrayBuffer){const n=e.constructor.name,s=tg(e);return{rr_type:n,base64:s}}else{if(e instanceof DataView)return{rr_type:e.constructor.name,args:[zn(e.buffer,t,i),e.byteOffset,e.byteLength]};if(e instanceof HTMLImageElement){const n=e.constructor.name,{src:s}=e;return{rr_type:n,src:s}}else if(e instanceof HTMLCanvasElement){const n="HTMLImageElement",s=e.toDataURL();return{rr_type:n,src:s}}else{if(e instanceof ImageData)return{rr_type:e.constructor.name,args:[zn(e.data,t,i),e.width,e.height]};if(Tc(e,t)||typeof e=="object"){const n=e.constructor.name,s=wc(e,t,i);return{rr_type:n,index:s}}}}return e}const xc=(e,t,i)=>e.map(n=>zn(n,t,i)),Tc=(e,t)=>!!["WebGLActiveInfo","WebGLBuffer","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject","WebGLVertexArrayObjectOES"].filter(i=>typeof t[i]=="function").find(i=>e instanceof t[i]);function ng(e,t,i,n){const s=[],r=Object.getOwnPropertyNames(t.CanvasRenderingContext2D.prototype);for(const l of r)try{if(typeof t.CanvasRenderingContext2D.prototype[l]!="function")continue;const o=lt(t.CanvasRenderingContext2D.prototype,l,function(a){return function(...c){return me(this.canvas,i,n,!0)||setTimeout(()=>{const u=xc(c,t,this);e(this.canvas,{type:xt["2D"],property:l,args:u})},0),a.apply(this,c)}});s.push(o)}catch{const a=Fn(t.CanvasRenderingContext2D.prototype,l,{set(c){e(this.canvas,{type:xt["2D"],property:l,args:[c],setter:!0})}});s.push(a)}return()=>{s.forEach(l=>l())}}function sg(e){return e==="experimental-webgl"?"webgl":e}function Lc(e,t,i,n){const s=[];try{const r=lt(e.HTMLCanvasElement.prototype,"getContext",function(l){return function(o,...a){if(!me(this,t,i,!0)){const c=sg(o);if("__context"in this||(this.__context=c),n&&["webgl","webgl2"].includes(c))if(a[0]&&typeof a[0]=="object"){const u=a[0];u.preserveDrawingBuffer||(u.preserveDrawingBuffer=!0)}else a.splice(0,1,{preserveDrawingBuffer:!0})}return l.apply(this,[o,...a])}});s.push(r)}catch{console.error("failed to patch HTMLCanvasElement.prototype.getContext")}return()=>{s.forEach(r=>r())}}function Nc(e,t,i,n,s,r){const l=[],o=Object.getOwnPropertyNames(e);for(const a of o)if(!["isContextLost","canvas","drawingBufferWidth","drawingBufferHeight"].includes(a))try{if(typeof e[a]!="function")continue;const c=lt(e,a,function(u){return function(...h){const p=u.apply(this,h);if(wc(p,r,this),"tagName"in this.canvas&&!me(this.canvas,n,s,!0)){const m=xc(h,r,this),f={type:t,property:a,args:m};i(this.canvas,f)}return p}});l.push(c)}catch{const u=Fn(e,a,{set(h){i(this.canvas,{type:t,property:a,args:[h],setter:!0})}});l.push(u)}return l}function rg(e,t,i,n){const s=[];return s.push(...Nc(t.WebGLRenderingContext.prototype,xt.WebGL,e,i,n,t)),typeof t.WebGL2RenderingContext<"u"&&s.push(...Nc(t.WebGL2RenderingContext.prototype,xt.WebGL2,e,i,n,t)),()=>{s.forEach(r=>r())}}const Jc="KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIGxldCBsb2dEZWJ1ZyA9IGZhbHNlOwogIGNvbnN0IGRlYnVnID0gKC4uLmFyZ3MpID0+IHsKICAgIGlmIChsb2dEZWJ1ZykgewogICAgICBjb25zb2xlLmRlYnVnKC4uLmFyZ3MpOwogICAgfQogIH07CiAgd29ya2VyLm9ubWVzc2FnZSA9IGFzeW5jIGZ1bmN0aW9uKGUpIHsKICAgIGxvZ0RlYnVnID0gISFlLmRhdGEubG9nRGVidWc7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGR4LCBkeSwgZHcsIGRoLCBkYXRhVVJMT3B0aW9ucyB9ID0gZS5kYXRhOwogICAgICBjb25zdCB0cmFuc3BhcmVudEJhc2U2NCA9IGdldFRyYW5zcGFyZW50QmxvYkZvcigKICAgICAgICB3aWR0aCwKICAgICAgICBoZWlnaHQsCiAgICAgICAgZGF0YVVSTE9wdGlvbnMKICAgICAgKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgY29uc3QgY3R4ID0gb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGN0eC5kcmF3SW1hZ2UoYml0bWFwLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgYml0bWFwLmNsb3NlKCk7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IHR5cGUgPSBibG9iLnR5cGU7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICBpZiAoIWxhc3RCbG9iTWFwLmhhcyhpZCkgJiYgYXdhaXQgdHJhbnNwYXJlbnRCYXNlNjQgPT09IGJhc2U2NCkgewogICAgICAgIGRlYnVnKCJbaGlnaGxpZ2h0LXdvcmtlcl0gY2FudmFzIGJpdG1hcCBpcyB0cmFuc3BhcmVudCIsIHsKICAgICAgICAgIGlkLAogICAgICAgICAgYmFzZTY0CiAgICAgICAgfSk7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCwgc3RhdHVzOiAidHJhbnNwYXJlbnQiIH0pOwogICAgICB9CiAgICAgIGlmIChsYXN0QmxvYk1hcC5nZXQoaWQpID09PSBiYXNlNjQpIHsKICAgICAgICBkZWJ1ZygiW2hpZ2hsaWdodC13b3JrZXJdIGNhbnZhcyBiaXRtYXAgaXMgdW5jaGFuZ2VkIiwgewogICAgICAgICAgaWQsCiAgICAgICAgICBiYXNlNjQKICAgICAgICB9KTsKICAgICAgfQogICAgICBjb25zdCBtc2cgPSB7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0LAogICAgICAgIGR4LAogICAgICAgIGR5LAogICAgICAgIGR3LAogICAgICAgIGRoCiAgICAgIH07CiAgICAgIGRlYnVnKCJbaGlnaGxpZ2h0LXdvcmtlcl0gY2FudmFzIGJpdG1hcCBwcm9jZXNzZWQiLCBtc2cpOwogICAgICB3b3JrZXIucG9zdE1lc3NhZ2UobXNnKTsKICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgfSBlbHNlIHsKICAgICAgZGVidWcoIltoaWdobGlnaHQtd29ya2VyXSBubyBvZmZzY3JlZW5jYW52YXMgc3VwcG9ydCIsIHsKICAgICAgICBpZDogZS5kYXRhLmlkCiAgICAgIH0pOwogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCwgc3RhdHVzOiAidW5zdXBwb3J0ZWQiIH0pOwogICAgfQogIH07Cn0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYWdlLWJpdG1hcC1kYXRhLXVybC13b3JrZXItRHd0SzhBMHouanMubWFwCg==",og=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Yc=typeof self<"u"&&self.Blob&&new Blob([og(Jc)],{type:"text/javascript;charset=utf-8"});function lg(e){let t;try{if(t=Yc&&(self.URL||self.webkitURL).createObjectURL(Yc),!t)throw"";const i=new Worker(t,{name:e?.name});return i.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),i}catch{return new Worker("data:text/javascript;base64,"+Jc,{name:e?.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}class ag{constructor(t){C(this,"pendingCanvasMutations",new Map),C(this,"rafStamps",{latestId:0,invokeId:null}),C(this,"mirror"),C(this,"logger"),C(this,"worker"),C(this,"snapshotInProgressMap",new Map),C(this,"lastSnapshotTime",new Map),C(this,"options"),C(this,"mutationCb"),C(this,"resetObservers"),C(this,"frozen",!1),C(this,"locked",!1),C(this,"processMutation",(h,p)=>{(this.rafStamps.invokeId&&this.rafStamps.latestId!==this.rafStamps.invokeId||!this.rafStamps.invokeId)&&(this.rafStamps.invokeId=this.rafStamps.latestId),this.pendingCanvasMutations.has(h)||this.pendingCanvasMutations.set(h,[]),this.pendingCanvasMutations.get(h).push(p)});const{sampling:i,win:n,blockClass:s,blockSelector:r,recordCanvas:l,recordLocalVideos:o,recordRemoteVideos:a,initialSnapshotDelay:c,dataURLOptions:u}=t;this.mutationCb=t.mutationCb,this.mirror=t.mirror,this.logger=t.logger,this.worker=new lg,this.worker.onmessage=h=>{const{id:p}=h.data;if(this.snapshotInProgressMap.set(p,!1),!("base64"in h.data)){this.debug(null,"canvas worker received empty message",{id:p,data:h.data,status:h.data.status});return}const{base64:m,type:f,dx:d,dy:S,dw:I,dh:V}=h.data,R={id:p,type:xt["2D"],commands:[{property:"clearRect",args:[d,S,I,V]},{property:"drawImage",args:[{rr_type:"ImageBitmap",args:[{rr_type:"Blob",data:[{rr_type:"ArrayBuffer",base64:m}],type:f}]},d,S,I,V]}]};this.debug(null,"canvas worker recording mutation",R),this.mutationCb(R)},this.options=t,l&&i==="all"?(this.debug(null,"initializing canvas mutation observer",{sampling:i}),this.initCanvasMutationObserver(n,s,r)):l&&typeof i=="number"&&(this.debug(null,"initializing canvas fps observer",{sampling:i}),this.initCanvasFPSObserver(o,a,i,n,s,r,{initialSnapshotDelay:c,dataURLOptions:u},t.resizeFactor,t.maxSnapshotDimension))}reset(){this.pendingCanvasMutations.clear(),this.resetObservers&&this.resetObservers()}freeze(){this.frozen=!0}unfreeze(){this.frozen=!1}lock(){this.locked=!0}unlock(){this.locked=!1}debug(t,...i){if(!this.logger)return;const n=this.mirror.getId(t);let s="[highlight-canvas-manager]";t&&(s=`[highlight-canvas] [id:${n}]`,t.tagName.toLowerCase()==="canvas"&&(s+=` [ctx:${t.__context}]`)),this.logger.debug(s,t,...i)}snapshot(t){return ye(this,null,function*(){var i;const n=this.mirror.getId(t);if(this.snapshotInProgressMap.get(n)){this.debug(t,"snapshotting already in progress for",n);return}const s=1e3/(typeof this.options.samplingManual=="number"?this.options.samplingManual:1),r=this.lastSnapshotTime.get(n);if(!(r&&new Date().getTime()-r<s)){if(this.debug(t,"starting snapshotting"),t.width===0||t.height===0){this.debug(t,"not yet ready",{width:t.width,height:t.height});return}this.lastSnapshotTime.set(n,new Date().getTime()),this.snapshotInProgressMap.set(n,!0);try{if(this.options.clearWebGLBuffer!==!1&&["webgl","webgl2"].includes(t.__context)){const u=t.getContext(t.__context);((i=u?.getContextAttributes())==null?void 0:i.preserveDrawingBuffer)===!1&&(u.clear(u.COLOR_BUFFER_BIT),this.debug(t,"cleared webgl canvas to load it into memory",{attributes:u?.getContextAttributes()}))}if(t.width===0||t.height===0){this.debug(t,"not yet ready",{width:t.width,height:t.height});return}let l=this.options.resizeFactor||1;if(this.options.maxSnapshotDimension){const u=Math.max(t.width,t.height);l=Math.min(l,this.options.maxSnapshotDimension/u)}const o=t.width*l,a=t.height*l,c=yield createImageBitmap(t,{resizeWidth:o,resizeHeight:a});this.debug(t,"created image bitmap",{width:c.width,height:c.height}),this.worker.postMessage({id:n,bitmap:c,width:o,height:a,dx:0,dy:0,dw:t.width,dh:t.height,dataURLOptions:this.options.dataURLOptions,logDebug:!!this.logger},[c]),this.debug(t,"sent message")}catch(l){this.debug(t,"failed to snapshot",l)}finally{this.snapshotInProgressMap.set(n,!1)}}})}initCanvasFPSObserver(t,i,n,s,r,l,o,a,c){const u=Lc(s,r,l,!0),h=1e3/n;let p=0,m;const f=new Map,d=(R,G)=>{const X=[];R.querySelectorAll(G).forEach(w=>X.push(w));const v=document.createNodeIterator(R,Node.ELEMENT_NODE);let k;for(;k=v.nextNode();)k!=null&&k.shadowRoot&&X.push(...d(k.shadowRoot,G));return X},S=R=>{const G=[];return d(s.document,"canvas").forEach(X=>{if(!me(X,r,l,!0)){this.debug(X,"discovered canvas"),G.push(X);const v=this.mirror.getId(X);f.has(v)||f.set(v,R)}}),G},I=R=>{const G=[];return(t||i)&&d(s.document,"video").forEach(X=>{if(!(!i&&X.src!==""&&X.src.indexOf("blob:")===-1)&&!(!t&&(X.src===""||X.src.indexOf("blob:")!==-1))&&!me(X,r,l,!0)){G.push(X);const v=this.mirror.getId(X);f.has(v)||f.set(v,R)}}),G},V=R=>ye(this,null,function*(){if(p&&R-p<h){m=requestAnimationFrame(V);return}p=R;const G=v=>{const k=this.mirror.getId(v),w=f.get(k),g=!o.initialSnapshotDelay||R-w>o.initialSnapshotDelay;return this.debug(v,{delay:o.initialSnapshotDelay,delta:R-w,hadLoadingTime:g}),g},X=[];X.push(...S(R).filter(G).map(v=>this.snapshot(v))),X.push(...I(R).filter(G).map(v=>ye(this,null,function*(){this.debug(v,"starting video snapshotting");const k=this.mirror.getId(v);if(this.snapshotInProgressMap.get(k)){this.debug(v,"video snapshotting already in progress for",k);return}this.snapshotInProgressMap.set(k,!0);try{const{width:w,height:g}=v.getBoundingClientRect(),{actualWidth:W,actualHeight:J}={actualWidth:v.videoWidth,actualHeight:v.videoHeight},E=Math.max(W,J);if(E===0){this.debug(v,"not yet ready",{width:v.width,height:v.height,actualWidth:W,actualHeight:J,boxWidth:w,boxHeight:g});return}let $=a||1;c&&($=Math.min($,c/E));const b=W*$,y=J*$,T=yield createImageBitmap(v,{resizeWidth:b,resizeHeight:y}),F=Math.max(w,g)/E,K=W*F,N=J*F,A=(w-K)/2,j=(g-N)/2;this.debug(v,"created image bitmap",{actualWidth:W,actualHeight:J,boxWidth:w,boxHeight:g,outputWidth:K,outputHeight:N,resizeWidth:b,resizeHeight:y,scale:$,outputScale:F,offsetX:A,offsetY:j}),this.worker.postMessage({id:k,bitmap:T,width:b,height:y,dx:A,dy:j,dw:K,dh:N,dataURLOptions:o.dataURLOptions,logDebug:!!this.logger},[T]),this.debug(v,"send message")}catch(w){this.debug(v,"failed to snapshot",w)}finally{this.snapshotInProgressMap.set(k,!1)}}))),yield Promise.all(X).catch(console.error),m=requestAnimationFrame(V)});m=requestAnimationFrame(V),this.resetObservers=()=>{u(),m&&cancelAnimationFrame(m)}}initCanvasMutationObserver(t,i,n){this.startRAFTimestamping(),this.startPendingCanvasMutationFlusher();const s=Lc(t,i,n,!1),r=ng(this.processMutation.bind(this),t,i,n),l=rg(this.processMutation.bind(this),t,i,n);this.resetObservers=()=>{s(),r(),l()}}startPendingCanvasMutationFlusher(){requestAnimationFrame(()=>this.flushPendingCanvasMutations())}startRAFTimestamping(){const t=i=>{this.rafStamps.latestId=i,requestAnimationFrame(t)};requestAnimationFrame(t)}flushPendingCanvasMutations(){this.pendingCanvasMutations.forEach((t,i)=>{const n=this.mirror.getId(i);this.flushPendingCanvasMutationFor(i,n)}),requestAnimationFrame(()=>this.flushPendingCanvasMutations())}flushPendingCanvasMutationFor(t,i){if(this.frozen||this.locked)return;const n=this.pendingCanvasMutations.get(t);if(!n||i===-1)return;const s=n.map(l=>It(l,["type"])),{type:r}=n[0];this.mutationCb({id:i,type:r,commands:s}),this.pendingCanvasMutations.delete(t)}}class cg{constructor(t){C(this,"trackedLinkElements",new WeakSet),C(this,"mutationCb"),C(this,"adoptedStyleSheetCb"),C(this,"styleMirror",new wy),this.mutationCb=t.mutationCb,this.adoptedStyleSheetCb=t.adoptedStyleSheetCb}attachLinkElement(t,i){"_cssText"in i.attributes&&this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:i.id,attributes:i.attributes}]}),this.trackLinkElement(t)}trackLinkElement(t){this.trackedLinkElements.has(t)||(this.trackedLinkElements.add(t),this.trackStylesheetInLinkElement(t))}adoptStyleSheets(t,i){if(t.length===0)return;const n={id:i,styleIds:[]},s=[];for(const r of t){let l;this.styleMirror.has(r)?l=this.styleMirror.getId(r):(l=this.styleMirror.add(r),s.push({styleId:l,rules:Array.from(r.rules||CSSRule,(o,a)=>({rule:Bo(o,r.href),index:a}))})),n.styleIds.push(l)}s.length>0&&(n.styles=s),this.adoptedStyleSheetCb(n)}reset(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet}trackStylesheetInLinkElement(t){}}class ug{constructor(){C(this,"nodeMap",new WeakMap),C(this,"active",!1)}inOtherBuffer(t,i){const n=this.nodeMap.get(t);return n&&Array.from(n).some(s=>s!==i)}add(t,i){this.active||(this.active=!0,requestAnimationFrame(()=>{this.nodeMap=new WeakMap,this.active=!1})),this.nodeMap.set(t,(this.nodeMap.get(t)||new Set).add(i))}destroy(){}}let se,Hn,bi,Pn=!1;try{if(Array.from([1],e=>e*2)[0]!==2){const e=document.createElement("iframe");document.body.appendChild(e),Array.from=((Ko=e.contentWindow)==null?void 0:Ko.Array.from)||Array.from,document.body.removeChild(e)}}catch(e){console.debug("Unable to override Array.from",e)}const Le=cp();function Be(e={}){var t,i,n,s,r,l,o,a;const{emit:c,checkoutEveryNms:u,checkoutEveryNth:h,blockClass:p="highlight-block",blockSelector:m=null,ignoreClass:f="highlight-ignore",ignoreSelector:d=null,maskTextClass:S="highlight-mask",maskTextSelector:I=null,inlineStylesheet:V=!0,maskAllInputs:R,maskInputOptions:G,slimDOMOptions:X,maskInputFn:v,maskTextFn:k=Ss,hooks:w,packFn:g,sampling:W={},mousemoveWait:J,recordDOM:E=!0,recordCanvas:$=!1,recordCrossOriginIframes:b=!1,recordAfter:y=e.recordAfter==="DOMContentLoaded"?e.recordAfter:"load",userTriggeredOnInput:T=!1,collectFonts:F=!1,inlineImages:K=!1,inlineVideos:N=!1,plugins:A,keepIframeSrcFn:j=()=>!1,privacySetting:de="default",ignoreCSSAttributes:Se=new Set([]),errorHandler:ke,logger:ue}=e,Ne=Y(Y({},e.dataURLOptions),(i=(t=e.sampling)==null?void 0:t.canvas)==null?void 0:i.dataURLOptions);Fy(ke);const ut=b?window.parent===window:!0;let je=!1;if(!ut)try{window.parent.document&&(je=!1)}catch{je=!0}if(ut&&!c)throw new Error("emit function is required");if(!ut&&!je)return()=>{};J!==void 0&&W.mousemove===void 0&&(W.mousemove=J),Le.reset();const Xi=R===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:G!==void 0?G:{password:!0},Nt=X===!0||X==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:X==="all",headMetaDescKeywords:X==="all",headTitleMutations:X==="all"}:X||{};ky();let Vi,Jt=0;const Yt=_=>{for(const Je of A||[])Je.eventProcessor&&(_=Je.eventProcessor(_));return g&&!je&&(_=g(_)),_};se=(_,Je)=>{var re;const oe=_;if(oe.timestamp=Un(),(re=at[0])!=null&&re.isFrozen()&&oe.type!==Q.FullSnapshot&&!(oe.type===Q.IncrementalSnapshot&&oe.data.source===P.Mutation)&&at.forEach(Me=>Me.unfreeze()),ut)c?.(Yt(oe),Je);else if(je){const Me={type:"rrweb",event:Yt(oe),origin:window.location.origin,isCheckout:Je};window.parent.postMessage(Me,"*")}if(oe.type===Q.FullSnapshot)Vi=oe,Jt=0;else if(oe.type===Q.IncrementalSnapshot){if(oe.data.source===P.Mutation&&oe.data.isAttachIframe)return;Jt++;const Me=h&&Jt>=h,te=u&&oe.timestamp-Vi.timestamp>u;(Me||te)&&Hn(!0)}};const tt=_=>{se({type:Q.IncrementalSnapshot,data:Y({source:P.Mutation},_)})},ru=_=>se({type:Q.IncrementalSnapshot,data:Y({source:P.Scroll},_)}),ou=_=>se({type:Q.IncrementalSnapshot,data:Y({source:P.CanvasMutation},_)}),_g=_=>se({type:Q.IncrementalSnapshot,data:Y({source:P.AdoptedStyleSheet},_)}),dt=new cg({mutationCb:tt,adoptedStyleSheetCb:_g}),ht=new $y({mirror:Le,mutationCb:tt,stylesheetManager:dt,recordCrossOriginIframes:b,wrappedEmit:se});for(const _ of A||[])_.getMirror&&_.getMirror({nodeMirror:Le,crossOriginIframeMirror:ht.crossOriginIframeMirror,crossOriginIframeStyleMirror:ht.crossOriginIframeStyleMirror});const Pr=new ug;bi=new ag({recordCanvas:$,recordLocalVideos:K,recordRemoteVideos:N,mutationCb:ou,win:window,blockClass:p,blockSelector:m,mirror:Le,sampling:(n=W?.canvas)==null?void 0:n.fps,samplingManual:(s=W?.canvas)==null?void 0:s.fpsManual,clearWebGLBuffer:(r=W?.canvas)==null?void 0:r.clearWebGLBuffer,initialSnapshotDelay:(l=W?.canvas)==null?void 0:l.initialSnapshotDelay,dataURLOptions:Ne,resizeFactor:(o=W?.canvas)==null?void 0:o.resizeFactor,maxSnapshotDimension:(a=W?.canvas)==null?void 0:a.maxSnapshotDimension,logger:ue});const Bn=new qy({mutationCb:tt,scrollCb:ru,bypassOptions:{blockClass:p,blockSelector:m,maskTextClass:S,maskTextSelector:I,inlineStylesheet:V,maskInputOptions:Xi,dataURLOptions:Ne,maskTextFn:k,maskInputFn:v,recordCanvas:$,inlineImages:K,inlineVideos:N,privacySetting:de,sampling:W,slimDOMOptions:Nt,iframeManager:ht,stylesheetManager:dt,canvasManager:bi,keepIframeSrcFn:j,processedNodeManager:Pr},mirror:Le});Hn=(_=!1)=>{if(!E)return;se({type:Q.Meta,data:{href:window.location.href,width:dc(),height:uc()}},_),dt.reset(),Bn.init(),at.forEach(re=>re.lock());const Je=Mp(document,{mirror:Le,blockClass:p,blockSelector:m,maskTextClass:S,maskTextSelector:I,inlineStylesheet:V,maskAllInputs:Xi,maskTextFn:k,maskInputFn:v,slimDOM:Nt,dataURLOptions:Ne,recordCanvas:$,inlineImages:K,inlineVideos:N,privacySetting:de,onSerialize:re=>{mc(re,Le)&&ht.addIframe(re),fc(re,Le)&&dt.trackLinkElement(re),Nr(re)&&Bn.addShadowRoot(H.shadowRoot(re),document)},onIframeLoad:(re,oe)=>{ht.attachIframe(re,oe),Bn.observeAttachShadow(re)},onStylesheetLoad:(re,oe)=>{dt.attachLinkElement(re,oe)},keepIframeSrcFn:j});if(!Je)return console.warn("Failed to snapshot the document");se({type:Q.FullSnapshot,data:{node:Je,initialOffset:cc(window)}},_),at.forEach(re=>re.unlock()),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&dt.adoptStyleSheets(document.adoptedStyleSheets,Le.getId(document))};try{const _=[],Je=oe=>{var Me;return D(_y)({mutationCb:tt,mousemoveCb:(te,Dr)=>se({type:Q.IncrementalSnapshot,data:{source:Dr,positions:te}}),mouseInteractionCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.MouseInteraction},te)}),scrollCb:ru,viewportResizeCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.ViewportResize},te)}),inputCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.Input},te)}),mediaInteractionCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.MediaInteraction},te)}),styleSheetRuleCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.StyleSheetRule},te)}),styleDeclarationCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.StyleDeclaration},te)}),canvasMutationCb:ou,fontCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.Font},te)}),selectionCb:te=>{se({type:Q.IncrementalSnapshot,data:Y({source:P.Selection},te)})},customElementCb:te=>{se({type:Q.IncrementalSnapshot,data:Y({source:P.CustomElement},te)})},blockClass:p,ignoreClass:f,ignoreSelector:d,maskTextClass:S,maskTextSelector:I,maskInputOptions:Xi,inlineStylesheet:V,sampling:W,recordDOM:E,recordCanvas:$,inlineImages:K,inlineVideos:N,userTriggeredOnInput:T,collectFonts:F,doc:oe,maskInputFn:v,maskTextFn:k,keepIframeSrcFn:j,blockSelector:m,slimDOMOptions:Nt,dataURLOptions:Ne,mirror:Le,iframeManager:ht,stylesheetManager:dt,shadowDomManager:Bn,processedNodeManager:Pr,canvasManager:bi,ignoreCSSAttributes:Se,privacySetting:de,plugins:((Me=A?.filter(te=>te.observer))==null?void 0:Me.map(te=>({observer:te.observer,options:te.options,callback:Dr=>se({type:Q.Plugin,data:{plugin:te.name,payload:Dr}})})))||[]},w)};ht.addLoadListener(oe=>{try{_.push(Je(oe.contentDocument))}catch(Me){console.warn(Me)}});const re=()=>{Hn(),_.push(Je(document)),Pn=!0};return document.readyState==="interactive"||document.readyState==="complete"?re():(_.push(ge("DOMContentLoaded",()=>{se({type:Q.DomContentLoaded,data:{}}),y==="DOMContentLoaded"&&re()})),_.push(ge("load",()=>{se({type:Q.Load,data:{}}),y==="load"&&re()},window))),()=>{_.forEach(oe=>oe()),Pr.destroy(),Pn=!1,Uy()}}catch(_){console.warn(_)}}Be.addCustomEvent=(e,t)=>{Pn&&se({type:Q.Custom,data:{tag:e,payload:t}})},Be.freezePage=()=>{at.forEach(e=>e.freeze())},Be.takeFullSnapshot=e=>{if(!Pn)throw new Error("please take full snapshot after start recording");Hn(e)},Be.snapshotCanvas=e=>ye(void 0,null,function*(){if(!bi)throw new Error("canvas manager is not initialized");yield bi.snapshot(e)}),Be.mirror=Le;var Fc;(function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"})(Fc||(Fc={}));const{addCustomEvent:Uc}=Be,dg=(e,t,i)=>{switch(e){case"strict":return[!0,void 0];case"default":return[!0,void 0];case"none":return[!!t,he(Y({},i),{password:!0})]}},hg=e=>{const t=i=>{if(i.target){const n=i.target,s=Lo(n);e(s,i)}};return window.addEventListener("click",t),()=>window.removeEventListener("click",t)},pg=e=>{const t=i=>{if(i.target){const n=Lo(i.target);e(n)}};return window.addEventListener("focusin",t),()=>window.removeEventListener("focusin",t)},mg=e=>{let t,i;if(typeof document.hidden<"u"?(t="hidden",i="visibilitychange"):typeof document.msHidden<"u"?(t="msHidden",i="msvisibilitychange"):typeof document.webkitHidden<"u"&&(t="webkitHidden",i="webkitvisibilitychange"),i===void 0)return()=>{};if(t===void 0)return()=>{};const n=t,s=()=>{const l=document[n];e(!!l)};document.addEventListener(i,s);const r=i;return()=>document.removeEventListener(r,s)},fg=e=>{e(window.location.href);var t=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(r){setTimeout(()=>{var l,o;try{o=JSON.parse((l=r?.toString())!=null?l:"")}catch{return}(o.type==="track"||o.type==="identify")&&Yr(o)&&e(o)},100),t.call(this,r)};const i=r=>{if(r.key==="ajs_user_id"||r.key==="ajs_anonymous_id"||r.key==="ajs_user_traits"){const{userId:l,userTraits:o}=Kc();if(l){let a={};o&&(a=JSON.parse(o));const c={type:"identify",userId:l.toString(),traits:a};Yr(c)&&e(c)}}},{userId:n,userTraits:s}=Kc();if(n){let r={};s&&(r=JSON.parse(s));const l={type:"identify",userId:n.toString(),traits:r};Yr(l)&&e(l)}return window.addEventListener("storage",i),th(({keyName:r})=>{i({key:r})}),()=>{window.removeEventListener("storage",i),XMLHttpRequest.prototype.send=t}},Kc=()=>{const e=Ge("ajs_user_id"),t=Ge("ajs_user_traits"),i=Ge("ajs_anonymous_id");return{userId:e,userTraits:t,anonymousId:i}},Yr=e=>{if(!e)return!1;let t="";try{t=JSON.stringify(e)}catch{return!1}const i=bg(t),n=Ge(be.SEGMENT_LAST_SENT_HASH_KEY);return n===void 0||i!==n?(Ee(be.SEGMENT_LAST_SENT_HASH_KEY,i),!0):!1},bg=e=>{var t=0,i=e.length,n=0;if(i>0)for(;n<i;)t=(t<<5)-t+e.charCodeAt(n++)|0;return t.toString()},yg=(e,t)=>{const i=gg(e);let n=[];const s=!1,r=!0;for(let l=0;l<i.length;l++){let o=i[l].split("+");n=[],o.length>1&&(n=Sg(Oc,o)),o=o[o.length-1],o=o==="*"?"*":Ig(o),o in Ue||(Ue[o]=[]),Ue[o].push({mods:n,shortcut:i[l],key:i[l],method:t,keyup:s,keydown:r,scope:"all",splitKey:"+"})}Xg(document,"keydown",l=>{Gg(l)})};let Ze=[];function gg(e){typeof e!="string"&&(e=""),e=e.replace(/\s/g,"");const t=e.split(",");let i=t.lastIndexOf("");for(;i>=0;)t[i-1]+=",",t.splice(i,1),i=t.lastIndexOf("");return t}const Ue={},Fr=typeof navigator<"u"?navigator.userAgent.toLowerCase().indexOf("firefox")>0:!1,Zg={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":Fr?173:189,"=":Fr?61:187,";":Fr?59:186,"'":222,"[":219,"]":221,"\\":220},Mc={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},Ie={16:!1,18:!1,17:!1,91:!1},Oc={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},Ig=e=>Zg[e.toLowerCase()]||Oc[e.toLowerCase()]||e.toUpperCase().charCodeAt(0);function Sg(e,t){const i=t.slice(0,t.length-1);for(let n=0;n<i.length;n++)i[n]=e[i[n].toLowerCase()];return i}function Xg(e,t,i){e.addEventListener?e.addEventListener(t,i,!1):e.attachEvent&&e.attachEvent(`on${t}`,()=>{i(window.event)})}function Vg(e,t,i){let n;if(t.scope===i||t.scope==="all"){n=t.mods.length>0;for(const s in Ie)Object.prototype.hasOwnProperty.call(Ie,s)&&(!Ie[s]&&t.mods.indexOf(+s)>-1||Ie[s]&&t.mods.indexOf(+s)===-1)&&(n=!1);(t.mods.length===0&&!Ie[16]&&!Ie[18]&&!Ie[17]&&!Ie[91]||n||t.shortcut==="*")&&t.method(e,t)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function Gg(e){const t=Ue["*"];let i=e.keyCode||e.which||e.charCode;if((i===93||i===224)&&(i=91),Ze.indexOf(i)===-1&&i!==229&&Ze.push(i),["ctrlKey","altKey","shiftKey","metaKey"].forEach(n=>{const s=Mc[n];e[n]&&Ze.indexOf(s)===-1?Ze.push(s):!e[n]&&Ze.indexOf(s)>-1?Ze.splice(Ze.indexOf(s),1):n==="metaKey"&&e[n]&&Ze.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(Ze=Ze.slice(Ze.indexOf(s))))}),!(i in Ie&&(Ie[i]=!0,!t))){for(const n in Ie)Object.prototype.hasOwnProperty.call(Ie,n)&&(Ie[n]=e[Mc[n]]);if(e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(Ze.indexOf(17)===-1&&Ze.push(17),Ze.indexOf(18)===-1&&Ze.push(18),Ie[17]=!0,Ie[18]=!0),i in Ue){for(let n=0;n<Ue[i].length;n++)if((e.type==="keydown"&&Ue[i][n].keydown||e.type==="keyup"&&Ue[i][n].keyup)&&Ue[i][n].key){const s=Ue[i][n];Vg(e,s,"all")}}}}const Ec="iframe parent ready",zc="iframe ok",yi="highlightLogs",Cg=e=>{let t=Ge(yi)||"";t=t+"["+new Date().getTime()+"] "+e+`
|
|
351
|
-
`,Ee(
|
|
350
|
+
or you can use record.mirror to access the mirror instance during recording.`;let cc={map:{},getId(){return console.error(wt),-1},getNode(){return console.error(wt),null},removeNodeFromMap(){console.error(wt)},has(){return console.error(wt),!1},reset(){console.error(wt)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(cc=new Proxy(cc,{get(e,t,i){return t==="map"&&console.error(wt),Reflect.get(e,t,i)}}));function hi(e,t,i={}){let n=null,s=0;return function(...r){const l=Date.now();!s&&i.leading===!1&&(s=l);const o=t-(l-s),a=this;o<=0||o>t?(n&&(clearTimeout(n),n=null),s=l,e.apply(a,r)):!n&&i.trailing!==!1&&(n=setTimeout(()=>{s=i.leading===!1?0:Date.now(),n=null,e.apply(a,r)},o))}}function Fn(e,t,i,n,s=window){const r=s.Object.getOwnPropertyDescriptor(e,t);return s.Object.defineProperty(e,t,n?i:{set(l){setTimeout(()=>{i.set.call(this,l)},0),r&&r.set&&r.set.call(this,l)}}),()=>Fn(e,t,r||{},!0)}let Un=Date.now;/[1-9][0-9]{12}/.test(Date.now().toString())||(Un=()=>new Date().getTime());function uc(e){var t,i,n,s;const r=e.document;return{left:r.scrollingElement?r.scrollingElement.scrollLeft:e.pageXOffset!==void 0?e.pageXOffset:r.documentElement.scrollLeft||r?.body&&((t=H.parentElement(r.body))==null?void 0:t.scrollLeft)||((i=r?.body)==null?void 0:i.scrollLeft)||0,top:r.scrollingElement?r.scrollingElement.scrollTop:e.pageYOffset!==void 0?e.pageYOffset:r?.documentElement.scrollTop||r?.body&&((n=H.parentElement(r.body))==null?void 0:n.scrollTop)||((s=r?.body)==null?void 0:s.scrollTop)||0}}function dc(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function hc(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function pc(e){return e?e.nodeType===e.ELEMENT_NODE?e:H.parentElement(e):null}const vy=e=>{try{if(e instanceof HTMLElement)return e.tagName==="CANVAS"}catch{return!1}return!1};function me(e,t,i,n){if(!e)return!1;const s=pc(e);if(!s)return!1;try{if(typeof t=="string"){if(s.classList.contains(t)||n&&s.closest("."+t)!==null)return!0}else if(ji(s,t,n))return!0}catch{}return!!(i&&(s.matches(i)||n&&s.closest(i)!==null))}function ky(e,t){return t.getId(e)!==-1}function Tr(e,t,i){return e.tagName==="TITLE"&&i.headTitleMutations?!0:t.getId(e)===Bt}function mc(e,t){if(Pt(e))return!1;const i=t.getId(e);if(!t.has(i))return!0;const n=H.parentNode(e);return n&&n.nodeType===e.DOCUMENT_NODE?!1:n?mc(n,t):!0}function Lr(e){return!!e.changedTouches}function wy(e=window){"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach)}function fc(e,t){return!!(e.nodeName==="IFRAME"&&t.getMeta(e))}function bc(e,t){return!!(e.nodeName==="LINK"&&e.nodeType===e.ELEMENT_NODE&&e.getAttribute&&e.getAttribute("rel")==="stylesheet"&&t.getMeta(e))}function Nr(e){return e?e instanceof vr&&"shadowRoot"in e?!!e.shadowRoot:!!H.shadowRoot(e):!1}class xy{constructor(){C(this,"id",1),C(this,"styleIDMap",new WeakMap),C(this,"idStyleMap",new Map)}getId(t){var i;return(i=this.styleIDMap.get(t))!=null?i:-1}has(t){return this.styleIDMap.has(t)}add(t,i){if(this.has(t))return this.getId(t);let n;return i===void 0?n=this.id++:n=i,this.styleIDMap.set(t,n),this.idStyleMap.set(n,t),n}getStyle(t){return this.idStyleMap.get(t)||null}reset(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1}generateId(){return this.id++}}function yc(e){var t;let i=null;return"getRootNode"in e&&((t=H.getRootNode(e))==null?void 0:t.nodeType)===Node.DOCUMENT_FRAGMENT_NODE&&H.host(H.getRootNode(e))&&(i=H.host(H.getRootNode(e))),i}function Ty(e){let t=e,i;for(;i=yc(t);)t=i;return t}function Ly(e){const t=e.ownerDocument;if(!t)return!1;const i=Ty(e);return H.contains(t,i)}function gc(e){const t=e.ownerDocument;return t?H.contains(t,e)||Ly(e):!1}var Q=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(Q||{}),P=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e))(P||{}),Ve=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(Ve||{}),$e=(e=>(e[e.Mouse=0]="Mouse",e[e.Pen=1]="Pen",e[e.Touch=2]="Touch",e))($e||{}),xt=(e=>(e[e["2D"]=0]="2D",e[e.WebGL=1]="WebGL",e[e.WebGL2=2]="WebGL2",e))(xt||{}),Tt=(e=>(e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e[e.RateChange=4]="RateChange",e))(Tt||{}),Zc=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(Zc||{});function Ic(e){return"__ln"in e}class Ny{constructor(){C(this,"length",0),C(this,"head",null),C(this,"tail",null)}get(t){if(t>=this.length)throw new Error("Position outside of list range");let i=this.head;for(let n=0;n<t;n++)i=i?.next||null;return i}addNode(t){const i={value:t,previous:null,next:null};if(t.__ln=i,t.previousSibling&&Ic(t.previousSibling)){const n=t.previousSibling.__ln.next;i.next=n,i.previous=t.previousSibling.__ln,t.previousSibling.__ln.next=i,n&&(n.previous=i)}else if(t.nextSibling&&Ic(t.nextSibling)&&t.nextSibling.__ln.previous){const n=t.nextSibling.__ln.previous;i.previous=n,i.next=t.nextSibling.__ln,t.nextSibling.__ln.previous=i,n&&(n.next=i)}else this.head&&(this.head.previous=i),i.next=this.head,this.head=i;i.next===null&&(this.tail=i),this.length++}removeNode(t){const i=t.__ln;this.head&&(i.previous?(i.previous.next=i.next,i.next?i.next.previous=i.previous:this.tail=i.previous):(this.head=i.next,this.head?this.head.previous=null:this.tail=null),t.__ln&&delete t.__ln,this.length--)}}const Sc=(e,t)=>`${e}@${t}`;class Jy{constructor(){C(this,"frozen",!1),C(this,"locked",!1),C(this,"texts",[]),C(this,"attributes",[]),C(this,"attributeMap",new WeakMap),C(this,"removes",[]),C(this,"mapRemoves",[]),C(this,"movedMap",{}),C(this,"addedSet",new Set),C(this,"movedSet",new Set),C(this,"droppedSet",new Set),C(this,"removesSubTreeCache",new Set),C(this,"mutationCb"),C(this,"blockClass"),C(this,"blockSelector"),C(this,"maskTextClass"),C(this,"maskTextSelector"),C(this,"inlineStylesheet"),C(this,"maskInputOptions"),C(this,"maskTextFn"),C(this,"maskInputFn"),C(this,"keepIframeSrcFn"),C(this,"recordCanvas"),C(this,"inlineImages"),C(this,"inlineVideos"),C(this,"privacySetting"),C(this,"slimDOMOptions"),C(this,"dataURLOptions"),C(this,"doc"),C(this,"mirror"),C(this,"iframeManager"),C(this,"stylesheetManager"),C(this,"shadowDomManager"),C(this,"canvasManager"),C(this,"processedNodeManager"),C(this,"unattachedDoc"),C(this,"processMutations",t=>{t.forEach(this.processMutation),this.emit()}),C(this,"emit",()=>{if(this.frozen||this.locked)return;const t=[],i=new Set,n=new Ny,s=a=>{let c=a,u=Bt;for(;u===Bt;)c=c&&c.nextSibling,u=c&&this.mirror.getId(c);return u},r=a=>{const c=H.parentNode(a);if(!c||!gc(a))return;let u=!1;if(a.nodeType===Node.TEXT_NODE){const f=c.tagName;if(f==="TEXTAREA")return;f==="STYLE"&&this.addedSet.has(c)&&(u=!0)}const h=Pt(c)?this.mirror.getId(yc(a)):this.mirror.getId(c),p=s(a);if(h===-1||p===-1)return n.addNode(a);const m=Vt(a,{doc:this.doc,mirror:this.mirror,blockClass:this.blockClass,blockSelector:this.blockSelector,maskTextClass:this.maskTextClass,maskTextSelector:this.maskTextSelector,skipChild:!0,newlyAddedElement:!0,inlineStylesheet:this.inlineStylesheet,maskInputOptions:this.maskInputOptions,maskTextFn:this.maskTextFn,maskInputFn:this.maskInputFn,slimDOMOptions:this.slimDOMOptions,dataURLOptions:this.dataURLOptions,recordCanvas:this.recordCanvas,inlineImages:this.inlineImages,inlineVideos:this.inlineVideos,privacySetting:this.privacySetting,onSerialize:f=>{fc(f,this.mirror)&&this.iframeManager.addIframe(f),bc(f,this.mirror)&&this.stylesheetManager.trackLinkElement(f),Nr(a)&&this.shadowDomManager.addShadowRoot(H.shadowRoot(a),this.doc)},onIframeLoad:(f,d)=>{this.iframeManager.attachIframe(f,d),this.shadowDomManager.observeAttachShadow(f)},onStylesheetLoad:(f,d)=>{this.stylesheetManager.attachLinkElement(f,d)},cssCaptured:u});m&&(t.push({parentId:h,nextId:p,node:m}),i.add(m.id))};for(;this.mapRemoves.length;)this.mirror.removeNodeFromMap(this.mapRemoves.shift());for(const a of this.movedSet)Xc(this.removesSubTreeCache,a)&&!this.movedSet.has(H.parentNode(a))||r(a);for(const a of this.addedSet)!Vc(this.droppedSet,a)&&!Xc(this.removesSubTreeCache,a)||Vc(this.movedSet,a)?r(a):this.droppedSet.add(a);let l=null;for(;n.length;){let a=null;if(l){const c=this.mirror.getId(H.parentNode(l.value)),u=s(l.value);c!==-1&&u!==-1&&(a=l)}if(!a){let c=n.tail;for(;c;){const u=c;if(c=c.previous,u){const h=this.mirror.getId(H.parentNode(u.value));if(s(u.value)===-1)continue;if(h!==-1){a=u;break}else{const p=u.value,m=H.parentNode(p);if(m&&m.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const f=H.host(m);if(this.mirror.getId(f)!==-1){a=u;break}}}}}}if(!a){for(;n.head;)n.removeNode(n.head.value);break}l=a.previous,n.removeNode(a.value),r(a.value)}const o={texts:this.texts.map(a=>{var c,u;const h=a.node,p=H.parentNode(h);p&&p.tagName==="TEXTAREA"&&this.genTextAreaValueMutation(p);let m=a.value;const f=this.privacySetting==="strict",d=this.privacySetting==="default"&&$o(m),S=(u=(c=a.node)==null?void 0:c.parentElement)==null?void 0:u.getAttribute("data-hl-record");return(f||d)&&!S&&m&&(m=Ss(m)),{id:this.mirror.getId(h),value:m}}).filter(a=>!i.has(a.id)).filter(a=>this.mirror.has(a.id)),attributes:this.attributes.map(a=>{const{attributes:c}=a;if(typeof c.style=="string"){const u=JSON.stringify(a.styleDiff),h=JSON.stringify(a._unchangedStyles);u.length<c.style.length&&(u+h).split("var(").length===c.style.split("var(").length&&(c.style=a.styleDiff)}return{id:this.mirror.getId(a.node),attributes:c}}).filter(a=>!i.has(a.id)).filter(a=>this.mirror.has(a.id)),removes:this.removes,adds:t};!o.texts.length&&!o.attributes.length&&!o.removes.length&&!o.adds.length||(this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.removesSubTreeCache=new Set,this.movedMap={},this.mutationCb(o))}),C(this,"genTextAreaValueMutation",t=>{let i=this.attributeMap.get(t);i||(i={node:t,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(i),this.attributeMap.set(t,i));const n=Array.from(H.childNodes(t),s=>H.textContent(s)||"").join("");i.attributes.value=Hi({overwriteRecord:null,element:t,maskInputOptions:this.maskInputOptions,tagName:t.tagName,type:Pi(t),value:n,maskInputFn:this.maskInputFn})}),C(this,"processMutation",t=>{if(!Tr(t.target,this.mirror,this.slimDOMOptions))switch(t.type){case"characterData":{const i=H.textContent(t.target);!me(t.target,this.blockClass,this.blockSelector,!1)&&i!==t.oldValue&&this.texts.push({value:ol(t.target,this.maskTextClass,this.maskTextSelector,!0)&&i?this.maskTextFn?this.maskTextFn(i,pc(t.target)):i.replace(/[\S]/g,"*"):i,node:t.target});break}case"attributes":{const i=t.target;let n=t.attributeName,s=t.target.getAttribute(n);if(n==="value"){const l=Pi(i);s=Hi({element:i,maskInputOptions:this.maskInputOptions,tagName:i.tagName,type:l,value:s,overwriteRecord:i.getAttribute("data-hl-record"),maskInputFn:this.maskInputFn})}if(me(t.target,this.blockClass,this.blockSelector,!1)||s===t.oldValue)return;let r=this.attributeMap.get(t.target);if(i.tagName==="IFRAME"&&n==="src"&&!this.keepIframeSrcFn(s))if(!i.contentDocument)n="rr_src";else return;if(r||(r={node:t.target,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(r),this.attributeMap.set(t.target,r)),n==="type"&&i.tagName==="INPUT"&&(t.oldValue||"").toLowerCase()==="password"&&i.setAttribute("data-rr-is-password","true"),!sl(i.tagName,n)){if(t.target.tagName==="INPUT"){const l=t.target;if(l.type==="password"){r.attributes.value="*".repeat(l.value.length);break}}if(r.attributes[n]=nl(this.doc,St(i.tagName),St(n),s),n==="style"){if(!this.unattachedDoc)try{this.unattachedDoc=document.implementation.createHTMLDocument()}catch{this.unattachedDoc=this.doc}const l=this.unattachedDoc.createElement("span");t.oldValue&&l.setAttribute("style",t.oldValue);for(const o of Array.from(i.style)){const a=i.style.getPropertyValue(o),c=i.style.getPropertyPriority(o);a!==l.style.getPropertyValue(o)||c!==l.style.getPropertyPriority(o)?c===""?r.styleDiff[o]=a:r.styleDiff[o]=[a,c]:r._unchangedStyles[o]=[a,c]}for(const o of Array.from(l.style))i.style.getPropertyValue(o)===""&&(r.styleDiff[o]=!1)}else n==="open"&&i.tagName==="DIALOG"&&(i.matches("dialog:modal")?r.attributes.rr_open_mode="modal":r.attributes.rr_open_mode="non-modal")}break}case"childList":{if(me(t.target,this.blockClass,this.blockSelector,!0))return;if(t.target.tagName==="TEXTAREA"){this.genTextAreaValueMutation(t.target);return}t.addedNodes.forEach(i=>this.genAdds(i,t.target)),t.removedNodes.forEach(i=>{const n=this.mirror.getId(i),s=Pt(t.target)?this.mirror.getId(H.host(t.target)):this.mirror.getId(t.target);me(t.target,this.blockClass,this.blockSelector,!1)||Tr(i,this.mirror,this.slimDOMOptions)||!ky(i,this.mirror)||(this.addedSet.has(i)?(Jr(this.addedSet,i),this.droppedSet.add(i)):this.addedSet.has(t.target)&&n===-1||mc(t.target,this.mirror)||(this.movedSet.has(i)&&this.movedMap[Sc(n,s)]?Jr(this.movedSet,i):(this.removes.push({parentId:s,id:n,isShadow:Pt(t.target)&&Dt(t.target)?!0:void 0}),Yy(i,this.removesSubTreeCache))),this.mapRemoves.push(i))});break}}}),C(this,"genAdds",(t,i)=>{if(!this.processedNodeManager.inOtherBuffer(t,this)&&!(this.addedSet.has(t)||this.movedSet.has(t))){if(this.mirror.hasNode(t)){if(Tr(t,this.mirror,this.slimDOMOptions))return;this.movedSet.add(t);let n=null;i&&this.mirror.hasNode(i)&&(n=this.mirror.getId(i)),n&&n!==-1&&(this.movedMap[Sc(this.mirror.getId(t),n)]=!0)}else this.addedSet.add(t),this.droppedSet.delete(t);me(t,this.blockClass,this.blockSelector,!1)||(H.childNodes(t).forEach(n=>this.genAdds(n)),Nr(t)&&H.childNodes(H.shadowRoot(t)).forEach(n=>{this.processedNodeManager.add(n,this),this.genAdds(n,t)}))}})}init(t){["mutationCb","blockClass","blockSelector","maskTextClass","maskTextSelector","inlineStylesheet","maskInputOptions","maskTextFn","maskInputFn","keepIframeSrcFn","recordCanvas","inlineImages","inlineVideos","privacySetting","slimDOMOptions","dataURLOptions","doc","mirror","iframeManager","stylesheetManager","shadowDomManager","canvasManager","processedNodeManager"].forEach(i=>{this[i]=t[i]})}freeze(){this.frozen=!0,this.canvasManager.freeze()}unfreeze(){this.frozen=!1,this.canvasManager.unfreeze(),this.emit()}isFrozen(){return this.frozen}lock(){this.locked=!0,this.canvasManager.lock()}unlock(){this.locked=!1,this.canvasManager.unlock(),this.emit()}reset(){this.shadowDomManager.reset(),this.canvasManager.reset()}}function Jr(e,t){e.delete(t),H.childNodes(t).forEach(i=>Jr(e,i))}function Yy(e,t){const i=[e];for(;i.length;){const n=i.pop();t.has(n)||(t.add(n),H.childNodes(n).forEach(s=>i.push(s)))}}function Xc(e,t,i){return e.size===0?!1:Fy(e,t)}function Fy(e,t,i){const n=H.parentNode(t);return n?e.has(n):!1}function Vc(e,t){return e.size===0?!1:Gc(e,t)}function Gc(e,t){const i=H.parentNode(t);return i?e.has(i)?!0:Gc(e,i):!1}let pi;function Uy(e){pi=e}function Ky(){pi=void 0}const D=e=>pi?(...t)=>{try{return e(...t)}catch(i){if(pi&&pi(i)===!0)return;throw i}}:e,lt=[];function mi(e){try{if("composedPath"in e){const t=e.composedPath();if(t.length)return t[0]}else if("path"in e&&e.path.length)return e.path[0]}catch{}return e&&e.target}function Cc(e,t){const i=new Jy;lt.push(i),i.init(e);const n=new(ac())(D(i.processMutations.bind(i)));return n.observe(t,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),n}function My({mousemoveCb:e,sampling:t,doc:i,mirror:n}){if(t.mousemove===!1)return()=>{};const s=typeof t.mousemove=="number"?t.mousemove:50,r=typeof t.mousemoveCallback=="number"?t.mousemoveCallback:500;let l=[],o;const a=hi(D(h=>{const p=Date.now()-o;e(l.map(m=>(m.timeOffset-=p,m)),h),l=[],o=null}),r),c=D(hi(D(h=>{const p=mi(h),{clientX:m,clientY:f}=Lr(h)?h.changedTouches[0]:h;o||(o=Un()),l.push({x:m,y:f,id:n.getId(p),timeOffset:Un()-o}),a(typeof DragEvent<"u"&&h instanceof DragEvent?P.Drag:h instanceof MouseEvent?P.MouseMove:P.TouchMove)}),s,{trailing:!1})),u=[ge("mousemove",c,i),ge("touchmove",c,i),ge("drag",c,i)];return D(()=>{u.forEach(h=>h())})}function Oy({mouseInteractionCb:e,doc:t,mirror:i,blockClass:n,blockSelector:s,sampling:r}){if(r.mouseInteraction===!1)return()=>{};const l=r.mouseInteraction===!0||r.mouseInteraction===void 0?{}:r.mouseInteraction,o=[];let a=null;const c=u=>h=>{const p=mi(h);if(me(p,n,s,!0)||vy(p))return;let m=null,f=u;if("pointerType"in h){switch(h.pointerType){case"mouse":m=$e.Mouse;break;case"touch":m=$e.Touch;break;case"pen":m=$e.Pen;break}m===$e.Touch&&(Ve[u]===Ve.MouseDown?f="TouchStart":Ve[u]===Ve.MouseUp&&(f="TouchEnd"))}else Lr(h)&&(m=$e.Touch);m!==null?(a=m,(f.startsWith("Touch")&&m===$e.Touch||f.startsWith("Mouse")&&m===$e.Mouse)&&(m=null)):Ve[u]===Ve.Click&&(m=a,a=null);const d=Lr(h)?h.changedTouches[0]:h;if(!d)return;const S=i.getId(p),{clientX:I,clientY:V}=d;D(e)(Y({type:Ve[f],id:S,x:I,y:V},m!==null&&{pointerType:m}))};return Object.keys(Ve).filter(u=>Number.isNaN(Number(u))&&!u.endsWith("_Departed")&&l[u]!==!1).forEach(u=>{let h=St(u);const p=c(u);if(window.PointerEvent)switch(Ve[u]){case Ve.MouseDown:case Ve.MouseUp:h=h.replace("mouse","pointer");break;case Ve.TouchStart:case Ve.TouchEnd:return}o.push(ge(h,p,t))}),D(()=>{o.forEach(u=>u())})}function Rc({scrollCb:e,doc:t,mirror:i,blockClass:n,blockSelector:s,sampling:r}){const l=D(hi(D(o=>{const a=mi(o);if(!a||me(a,n,s,!0))return;const c=i.getId(a);if(a===t&&t.defaultView){const u=uc(t.defaultView);e({id:c,x:u.left,y:u.top})}else e({id:c,x:a.scrollLeft,y:a.scrollTop})}),r.scroll||100));return ge("scroll",l,t)}function Ey({viewportResizeCb:e},{win:t}){let i=-1,n=-1;const s=D(hi(D(()=>{const r=dc(),l=hc();(i!==r||n!==l)&&(e({width:Number(l),height:Number(r)}),i=r,n=l)}),200));return ge("resize",s,t)}const zy=["INPUT","TEXTAREA","SELECT"],Wc=new WeakMap;function Hy({inputCb:e,doc:t,mirror:i,blockClass:n,blockSelector:s,ignoreClass:r,ignoreSelector:l,maskInputOptions:o,maskInputFn:a,sampling:c,userTriggeredOnInput:u}){function h(I){let V=mi(I);const R=I.isTrusted,G=V&&V.tagName;if(V&&G==="OPTION"&&(V=H.parentElement(V)),!V||!G||zy.indexOf(G)<0||me(V,n,s,!0)||V.classList.contains(r)||l&&V.matches(l))return;let X=V.value,v=!1;const k=Pi(V)||"",w=V.getAttribute("data-hl-record");k==="radio"||k==="checkbox"?v=V.checked:qo({maskInputOptions:o,type:k,tagName:G,overwriteRecord:w})&&(X=Hi({element:V,maskInputOptions:o,tagName:G,type:k,value:X,overwriteRecord:w,maskInputFn:a})),p(V,u?{text:X,isChecked:v,userTriggered:R}:{text:X,isChecked:v});const g=V.name;k==="radio"&&g&&v&&t.querySelectorAll(`input[type="radio"][name="${g}"]`).forEach(W=>{if(W!==V){const J=W.value;p(W,u?{text:J,isChecked:!v,userTriggered:!1}:{text:J,isChecked:!v})}})}function p(I,V){const R=Wc.get(I);if(!R||R.text!==V.text||R.isChecked!==V.isChecked){Wc.set(I,V);const G=i.getId(I);D(e)(he(Y({},V),{id:G}))}}const m=(c.input==="last"?["change"]:["input","change"]).map(I=>ge(I,D(h),t)),f=t.defaultView;if(!f)return()=>{m.forEach(I=>I())};const d=f.Object.getOwnPropertyDescriptor(f.HTMLInputElement.prototype,"value"),S=[[f.HTMLInputElement.prototype,"value"],[f.HTMLInputElement.prototype,"checked"],[f.HTMLSelectElement.prototype,"value"],[f.HTMLTextAreaElement.prototype,"value"],[f.HTMLSelectElement.prototype,"selectedIndex"],[f.HTMLOptionElement.prototype,"selected"]];return d&&d.set&&m.push(...S.map(I=>Fn(I[0],I[1],{set(){D(h)({target:this,isTrusted:!1})}},!1,f))),D(()=>{m.forEach(I=>I())})}function Kn(e){const t=[];function i(n,s){if(Mn("CSSGroupingRule")&&n.parentRule instanceof CSSGroupingRule||Mn("CSSMediaRule")&&n.parentRule instanceof CSSMediaRule||Mn("CSSSupportsRule")&&n.parentRule instanceof CSSSupportsRule||Mn("CSSConditionRule")&&n.parentRule instanceof CSSConditionRule){const r=Array.from(n.parentRule.cssRules).indexOf(n);s.unshift(r)}else if(n.parentStyleSheet){const r=Array.from(n.parentStyleSheet.cssRules).indexOf(n);s.unshift(r)}return s}return i(e,t)}function qe(e,t,i){let n,s;return e?(e.ownerNode?n=t.getId(e.ownerNode):s=i.getId(e),{styleId:s,id:n}):{}}function Py({styleSheetRuleCb:e,mirror:t,stylesheetManager:i},{win:n}){if(!n.CSSStyleSheet||!n.CSSStyleSheet.prototype)return()=>{};const s=n.CSSStyleSheet.prototype.insertRule;n.CSSStyleSheet.prototype.insertRule=new Proxy(s,{apply:D((u,h,p)=>{const[m,f]=p,{id:d,styleId:S}=qe(h,t,i.styleMirror);return(d&&d!==-1||S&&S!==-1)&&e({id:d,styleId:S,adds:[{rule:m,index:f}]}),u.apply(h,p)})}),n.CSSStyleSheet.prototype.addRule=function(u,h,p=this.cssRules.length){const m=`${u} { ${h} }`;return n.CSSStyleSheet.prototype.insertRule.apply(this,[m,p])};const r=n.CSSStyleSheet.prototype.deleteRule;n.CSSStyleSheet.prototype.deleteRule=new Proxy(r,{apply:D((u,h,p)=>{const[m]=p,{id:f,styleId:d}=qe(h,t,i.styleMirror);return(f&&f!==-1||d&&d!==-1)&&e({id:f,styleId:d,removes:[{index:m}]}),u.apply(h,p)})}),n.CSSStyleSheet.prototype.removeRule=function(u){return n.CSSStyleSheet.prototype.deleteRule.apply(this,[u])};let l;n.CSSStyleSheet.prototype.replace&&(l=n.CSSStyleSheet.prototype.replace,n.CSSStyleSheet.prototype.replace=new Proxy(l,{apply:D((u,h,p)=>{const[m]=p,{id:f,styleId:d}=qe(h,t,i.styleMirror);return(f&&f!==-1||d&&d!==-1)&&e({id:f,styleId:d,replace:m}),u.apply(h,p)})}));let o;n.CSSStyleSheet.prototype.replaceSync&&(o=n.CSSStyleSheet.prototype.replaceSync,n.CSSStyleSheet.prototype.replaceSync=new Proxy(o,{apply:D((u,h,p)=>{const[m]=p,{id:f,styleId:d}=qe(h,t,i.styleMirror);return(f&&f!==-1||d&&d!==-1)&&e({id:f,styleId:d,replaceSync:m}),u.apply(h,p)})}));const a={};On("CSSGroupingRule")?a.CSSGroupingRule=n.CSSGroupingRule:(On("CSSMediaRule")&&(a.CSSMediaRule=n.CSSMediaRule),On("CSSConditionRule")&&(a.CSSConditionRule=n.CSSConditionRule),On("CSSSupportsRule")&&(a.CSSSupportsRule=n.CSSSupportsRule));const c={};return Object.entries(a).forEach(([u,h])=>{c[u]={insertRule:h.prototype.insertRule,deleteRule:h.prototype.deleteRule},h.prototype.insertRule=new Proxy(c[u].insertRule,{apply:D((p,m,f)=>{const[d,S]=f,{id:I,styleId:V}=qe(m.parentStyleSheet,t,i.styleMirror);return(I&&I!==-1||V&&V!==-1)&&e({id:I,styleId:V,adds:[{rule:d,index:[...Kn(m),S||0]}]}),p.apply(m,f)})}),h.prototype.deleteRule=new Proxy(c[u].deleteRule,{apply:D((p,m,f)=>{const[d]=f,{id:S,styleId:I}=qe(m.parentStyleSheet,t,i.styleMirror);return(S&&S!==-1||I&&I!==-1)&&e({id:S,styleId:I,removes:[{index:[...Kn(m),d]}]}),p.apply(m,f)})})}),D(()=>{n.CSSStyleSheet.prototype.insertRule=s,n.CSSStyleSheet.prototype.deleteRule=r,l&&(n.CSSStyleSheet.prototype.replace=l),o&&(n.CSSStyleSheet.prototype.replaceSync=o),Object.entries(a).forEach(([u,h])=>{h.prototype.insertRule=c[u].insertRule,h.prototype.deleteRule=c[u].deleteRule})})}function vc({mirror:e,stylesheetManager:t},i){var n,s,r;let l=null;i.nodeName==="#document"?l=e.getId(i):l=e.getId(H.host(i));const o=i.nodeName==="#document"?(n=i.defaultView)==null?void 0:n.Document:(r=(s=i.ownerDocument)==null?void 0:s.defaultView)==null?void 0:r.ShadowRoot,a=o!=null&&o.prototype?Object.getOwnPropertyDescriptor(o?.prototype,"adoptedStyleSheets"):void 0;return l===null||l===-1||!o||!a?()=>{}:(Object.defineProperty(i,"adoptedStyleSheets",{configurable:a.configurable,enumerable:a.enumerable,get(){var c;return(c=a.get)==null?void 0:c.call(this)},set(c){var u;const h=(u=a.set)==null?void 0:u.call(this,c);if(l!==null&&l!==-1)try{t.adoptStyleSheets(c,l)}catch{}return h}}),D(()=>{Object.defineProperty(i,"adoptedStyleSheets",{configurable:a.configurable,enumerable:a.enumerable,get:a.get,set:a.set})}))}function Dy({styleDeclarationCb:e,mirror:t,ignoreCSSAttributes:i,stylesheetManager:n},{win:s}){const r=s.CSSStyleDeclaration.prototype.setProperty;s.CSSStyleDeclaration.prototype.setProperty=new Proxy(r,{apply:D((o,a,c)=>{var u;const[h,p,m]=c;if(i.has(h))return r.apply(a,[h,p,m]);const{id:f,styleId:d}=qe((u=a.parentRule)==null?void 0:u.parentStyleSheet,t,n.styleMirror);return(f&&f!==-1||d&&d!==-1)&&e({id:f,styleId:d,set:{property:h,value:p,priority:m},index:Kn(a.parentRule)}),o.apply(a,c)})});const l=s.CSSStyleDeclaration.prototype.removeProperty;return s.CSSStyleDeclaration.prototype.removeProperty=new Proxy(l,{apply:D((o,a,c)=>{var u;const[h]=c;if(i.has(h))return l.apply(a,[h]);const{id:p,styleId:m}=qe((u=a.parentRule)==null?void 0:u.parentStyleSheet,t,n.styleMirror);return(p&&p!==-1||m&&m!==-1)&&e({id:p,styleId:m,remove:{property:h},index:Kn(a.parentRule)}),o.apply(a,c)})}),D(()=>{s.CSSStyleDeclaration.prototype.setProperty=r,s.CSSStyleDeclaration.prototype.removeProperty=l})}function By({mediaInteractionCb:e,blockClass:t,blockSelector:i,mirror:n,sampling:s,doc:r}){const l=D(a=>hi(D(c=>{const u=mi(c);if(!u||me(u,t,i,!0))return;const{currentTime:h,volume:p,muted:m,playbackRate:f,loop:d}=u;e({type:a,id:n.getId(u),currentTime:h,volume:p,muted:m,playbackRate:f,loop:d})}),s.media||500)),o=[ge("play",l(Tt.Play),r),ge("pause",l(Tt.Pause),r),ge("seeked",l(Tt.Seeked),r),ge("volumechange",l(Tt.VolumeChange),r),ge("ratechange",l(Tt.RateChange),r)];return D(()=>{o.forEach(a=>a())})}function Qy({fontCb:e,doc:t}){const i=t.defaultView;if(!i)return()=>{};const n=[],s=new WeakMap,r=i.FontFace;i.FontFace=function(o,a,c){const u=new r(o,a,c);return s.set(u,{family:o,buffer:typeof a!="string",descriptors:c,fontSource:typeof a=="string"?a:JSON.stringify(Array.from(new Uint8Array(a)))}),u};const l=ot(t.fonts,"add",function(o){return function(a){return setTimeout(D(()=>{const c=s.get(a);c&&(e(c),s.delete(a))}),0),o.apply(this,[a])}});return n.push(()=>{i.FontFace=r}),n.push(l),D(()=>{n.forEach(o=>o())})}function jy(e){const{doc:t,mirror:i,blockClass:n,blockSelector:s,selectionCb:r}=e;let l=!0;const o=D(()=>{const a=t.getSelection();if(!a||l&&a!=null&&a.isCollapsed)return;l=a.isCollapsed||!1;const c=[],u=a.rangeCount||0;for(let h=0;h<u;h++){const p=a.getRangeAt(h),{startContainer:m,startOffset:f,endContainer:d,endOffset:S}=p;me(m,n,s,!0)||me(d,n,s,!0)||c.push({start:i.getId(m),startOffset:f,end:i.getId(d),endOffset:S})}r({ranges:c})});return o(),ge("selectionchange",o)}function Ay({doc:e,customElementCb:t}){const i=e.defaultView;return!i||!i.customElements?()=>{}:ot(i.customElements,"define",function(n){return function(s,r,l){try{t({define:{name:s}})}catch{console.warn(`Custom element callback failed for ${s}`)}return n.apply(this,[s,r,l])}})}function _y(e,t){const{mutationCb:i,mousemoveCb:n,mouseInteractionCb:s,scrollCb:r,viewportResizeCb:l,inputCb:o,mediaInteractionCb:a,styleSheetRuleCb:c,styleDeclarationCb:u,canvasMutationCb:h,fontCb:p,selectionCb:m,customElementCb:f}=e;e.mutationCb=(...d)=>{t.mutation&&t.mutation(...d),i(...d)},e.mousemoveCb=(...d)=>{t.mousemove&&t.mousemove(...d),n(...d)},e.mouseInteractionCb=(...d)=>{t.mouseInteraction&&t.mouseInteraction(...d),s(...d)},e.scrollCb=(...d)=>{t.scroll&&t.scroll(...d),r(...d)},e.viewportResizeCb=(...d)=>{t.viewportResize&&t.viewportResize(...d),l(...d)},e.inputCb=(...d)=>{t.input&&t.input(...d),o(...d)},e.mediaInteractionCb=(...d)=>{t.mediaInteaction&&t.mediaInteaction(...d),a(...d)},e.styleSheetRuleCb=(...d)=>{t.styleSheetRule&&t.styleSheetRule(...d),c(...d)},e.styleDeclarationCb=(...d)=>{t.styleDeclaration&&t.styleDeclaration(...d),u(...d)},e.canvasMutationCb=(...d)=>{t.canvasMutation&&t.canvasMutation(...d),h(...d)},e.fontCb=(...d)=>{t.font&&t.font(...d),p(...d)},e.selectionCb=(...d)=>{t.selection&&t.selection(...d),m(...d)},e.customElementCb=(...d)=>{t.customElement&&t.customElement(...d),f(...d)}}function $y(e,t={}){const i=e.doc.defaultView;if(!i)return()=>{};_y(e,t);let n;e.recordDOM&&(n=Cc(e,e.doc));const s=My(e),r=Oy(e),l=Rc(e),o=Ey(e,{win:i}),a=Hy(e),c=By(e);let u=()=>{},h=()=>{},p=()=>{},m=()=>{};e.recordDOM&&(u=Py(e,{win:i}),h=vc(e,e.doc),p=Dy(e,{win:i}),e.collectFonts&&(m=Qy(e)));const f=jy(e),d=Ay(e),S=[];for(const I of e.plugins)S.push(I.observer(I.callback,i,I.options));return D(()=>{lt.forEach(I=>I.reset()),n?.disconnect(),s(),r(),l(),o(),a(),c(),u(),h(),p(),m(),f(),d(),S.forEach(I=>I())})}function Mn(e){return typeof window[e]<"u"}function On(e){return!!(typeof window[e]<"u"&&window[e].prototype&&"insertRule"in window[e].prototype&&"deleteRule"in window[e].prototype)}class kc{constructor(t){C(this,"iframeIdToRemoteIdMap",new WeakMap),C(this,"iframeRemoteIdToIdMap",new WeakMap),this.generateIdFn=t}getId(t,i,n,s){const r=n||this.getIdToRemoteIdMap(t),l=s||this.getRemoteIdToIdMap(t);let o=r.get(i);return o||(o=this.generateIdFn(),r.set(i,o),l.set(o,i)),o}getIds(t,i){const n=this.getIdToRemoteIdMap(t),s=this.getRemoteIdToIdMap(t);return i.map(r=>this.getId(t,r,n,s))}getRemoteId(t,i,n){const s=n||this.getRemoteIdToIdMap(t);return typeof i!="number"?i:s.get(i)||-1}getRemoteIds(t,i){const n=this.getRemoteIdToIdMap(t);return i.map(s=>this.getRemoteId(t,s,n))}reset(t){if(!t){this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap;return}this.iframeIdToRemoteIdMap.delete(t),this.iframeRemoteIdToIdMap.delete(t)}getIdToRemoteIdMap(t){let i=this.iframeIdToRemoteIdMap.get(t);return i||(i=new Map,this.iframeIdToRemoteIdMap.set(t,i)),i}getRemoteIdToIdMap(t){let i=this.iframeRemoteIdToIdMap.get(t);return i||(i=new Map,this.iframeRemoteIdToIdMap.set(t,i)),i}}class qy{constructor(t){C(this,"iframes",new WeakMap),C(this,"crossOriginIframeMap",new WeakMap),C(this,"crossOriginIframeMirror",new kc(el)),C(this,"crossOriginIframeStyleMirror"),C(this,"crossOriginIframeRootIdMap",new WeakMap),C(this,"mirror"),C(this,"mutationCb"),C(this,"wrappedEmit"),C(this,"loadListener"),C(this,"stylesheetManager"),C(this,"recordCrossOriginIframes"),this.mutationCb=t.mutationCb,this.wrappedEmit=t.wrappedEmit,this.stylesheetManager=t.stylesheetManager,this.recordCrossOriginIframes=t.recordCrossOriginIframes,this.crossOriginIframeStyleMirror=new kc(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)),this.mirror=t.mirror,this.recordCrossOriginIframes&&window.addEventListener("message",this.handleMessage.bind(this))}addIframe(t){this.iframes.set(t,!0),t.contentWindow&&this.crossOriginIframeMap.set(t.contentWindow,t)}addLoadListener(t){this.loadListener=t}attachIframe(t,i){var n,s;this.mutationCb({adds:[{parentId:this.mirror.getId(t),nextId:null,node:i}],removes:[],texts:[],attributes:[],isAttachIframe:!0}),this.recordCrossOriginIframes&&((n=t.contentWindow)==null||n.addEventListener("message",this.handleMessage.bind(this))),(s=this.loadListener)==null||s.call(this,t),t.contentDocument&&t.contentDocument.adoptedStyleSheets&&t.contentDocument.adoptedStyleSheets.length>0&&this.stylesheetManager.adoptStyleSheets(t.contentDocument.adoptedStyleSheets,this.mirror.getId(t.contentDocument))}handleMessage(t){const i=t;if(i.data.type!=="rrweb"||i.origin!==i.data.origin)return;const n=t.source;if(!n)return;const s=this.crossOriginIframeMap.get(n);if(!s)return;const r=this.transformCrossOriginEvent(s,i.data.event);r&&this.wrappedEmit(r,i.data.isCheckout)}transformCrossOriginEvent(t,i){var n;switch(i.type){case Q.FullSnapshot:{this.crossOriginIframeMirror.reset(t),this.crossOriginIframeStyleMirror.reset(t),this.replaceIdOnNode(i.data.node,t);const s=i.data.node.id;return this.crossOriginIframeRootIdMap.set(t,s),this.patchRootIdOnNode(i.data.node,s),{timestamp:i.timestamp,type:Q.IncrementalSnapshot,data:{source:P.Mutation,adds:[{parentId:this.mirror.getId(t),nextId:null,node:i.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}}}case Q.Meta:case Q.Load:case Q.DomContentLoaded:return!1;case Q.Plugin:return i;case Q.Custom:return this.replaceIds(i.data.payload,t,["id","parentId","previousId","nextId"]),i;case Q.IncrementalSnapshot:switch(i.data.source){case P.Mutation:return i.data.adds.forEach(s=>{this.replaceIds(s,t,["parentId","nextId","previousId"]),this.replaceIdOnNode(s.node,t);const r=this.crossOriginIframeRootIdMap.get(t);r&&this.patchRootIdOnNode(s.node,r)}),i.data.removes.forEach(s=>{this.replaceIds(s,t,["parentId","id"])}),i.data.attributes.forEach(s=>{this.replaceIds(s,t,["id"])}),i.data.texts.forEach(s=>{this.replaceIds(s,t,["id"])}),i;case P.Drag:case P.TouchMove:case P.MouseMove:return i.data.positions.forEach(s=>{this.replaceIds(s,t,["id"])}),i;case P.ViewportResize:return!1;case P.MediaInteraction:case P.MouseInteraction:case P.Scroll:case P.CanvasMutation:case P.Input:return this.replaceIds(i.data,t,["id"]),i;case P.StyleSheetRule:case P.StyleDeclaration:return this.replaceIds(i.data,t,["id"]),this.replaceStyleIds(i.data,t,["styleId"]),i;case P.Font:return i;case P.Selection:return i.data.ranges.forEach(s=>{this.replaceIds(s,t,["start","end"])}),i;case P.AdoptedStyleSheet:return this.replaceIds(i.data,t,["id"]),this.replaceStyleIds(i.data,t,["styleIds"]),(n=i.data.styles)==null||n.forEach(s=>{this.replaceStyleIds(s,t,["styleId"])}),i}}return!1}replace(t,i,n,s){for(const r of s)!Array.isArray(i[r])&&typeof i[r]!="number"||(Array.isArray(i[r])?i[r]=t.getIds(n,i[r]):i[r]=t.getId(n,i[r]));return i}replaceIds(t,i,n){return this.replace(this.crossOriginIframeMirror,t,i,n)}replaceStyleIds(t,i,n){return this.replace(this.crossOriginIframeStyleMirror,t,i,n)}replaceIdOnNode(t,i){this.replaceIds(t,i,["id","rootId"]),"childNodes"in t&&t.childNodes.forEach(n=>{this.replaceIdOnNode(n,i)})}patchRootIdOnNode(t,i){t.type!==Zc.Document&&!t.rootId&&(t.rootId=i),"childNodes"in t&&t.childNodes.forEach(n=>{this.patchRootIdOnNode(n,i)})}}class eg{constructor(t){C(this,"shadowDoms",new WeakSet),C(this,"mutationCb"),C(this,"scrollCb"),C(this,"bypassOptions"),C(this,"mirror"),C(this,"restoreHandlers",[]),this.mutationCb=t.mutationCb,this.scrollCb=t.scrollCb,this.bypassOptions=t.bypassOptions,this.mirror=t.mirror,this.init()}init(){this.reset(),this.patchAttachShadow(Element,document)}addShadowRoot(t,i){if(!Dt(t)||this.shadowDoms.has(t))return;this.shadowDoms.add(t);const n=Cc(he(Y({},this.bypassOptions),{doc:i,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this}),t);this.restoreHandlers.push(()=>n.disconnect()),this.restoreHandlers.push(Rc(he(Y({},this.bypassOptions),{scrollCb:this.scrollCb,doc:t,mirror:this.mirror}))),setTimeout(()=>{t.adoptedStyleSheets&&t.adoptedStyleSheets.length>0&&this.bypassOptions.stylesheetManager.adoptStyleSheets(t.adoptedStyleSheets,this.mirror.getId(H.host(t))),this.restoreHandlers.push(vc({mirror:this.mirror,stylesheetManager:this.bypassOptions.stylesheetManager},t))},0)}observeAttachShadow(t){!t.contentWindow||!t.contentDocument||this.patchAttachShadow(t.contentWindow.Element,t.contentDocument)}patchAttachShadow(t,i){const n=this;this.restoreHandlers.push(ot(t.prototype,"attachShadow",function(s){return function(r){const l=s.call(this,r),o=H.shadowRoot(this);return o&&gc(this)&&n.addShadowRoot(o,i),l}}))}reset(){this.restoreHandlers.forEach(t=>{try{t()}catch{}}),this.restoreHandlers=[],this.shadowDoms=new WeakSet}}for(var Lt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",tg=typeof Uint8Array>"u"?[]:new Uint8Array(256),En=0;En<Lt.length;En++)tg[Lt.charCodeAt(En)]=En;var ig=function(e){var t=new Uint8Array(e),i,n=t.length,s="";for(i=0;i<n;i+=3)s+=Lt[t[i]>>2],s+=Lt[(t[i]&3)<<4|t[i+1]>>4],s+=Lt[(t[i+1]&15)<<2|t[i+2]>>6],s+=Lt[t[i+2]&63];return n%3===2?s=s.substring(0,s.length-1)+"=":n%3===1&&(s=s.substring(0,s.length-2)+"=="),s};const wc=new Map;function ng(e,t){let i=wc.get(e);return i||(i=new Map,wc.set(e,i)),i.has(t)||i.set(t,[]),i.get(t)}const xc=(e,t,i)=>{if(!e||!(Lc(e,t)||typeof e=="object"))return;const n=e.constructor.name,s=ng(i,n);let r=s.indexOf(e);return r===-1&&(r=s.length,s.push(e)),r};function zn(e,t,i){if(e instanceof Array)return e.map(n=>zn(n,t,i));if(e===null)return e;if(e instanceof Float32Array||e instanceof Float64Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Int8Array||e instanceof Uint8ClampedArray)return{rr_type:e.constructor.name,args:[Object.values(e)]};if(e instanceof ArrayBuffer){const n=e.constructor.name,s=ig(e);return{rr_type:n,base64:s}}else{if(e instanceof DataView)return{rr_type:e.constructor.name,args:[zn(e.buffer,t,i),e.byteOffset,e.byteLength]};if(e instanceof HTMLImageElement){const n=e.constructor.name,{src:s}=e;return{rr_type:n,src:s}}else if(e instanceof HTMLCanvasElement){const n="HTMLImageElement",s=e.toDataURL();return{rr_type:n,src:s}}else{if(e instanceof ImageData)return{rr_type:e.constructor.name,args:[zn(e.data,t,i),e.width,e.height]};if(Lc(e,t)||typeof e=="object"){const n=e.constructor.name,s=xc(e,t,i);return{rr_type:n,index:s}}}}return e}const Tc=(e,t,i)=>e.map(n=>zn(n,t,i)),Lc=(e,t)=>!!["WebGLActiveInfo","WebGLBuffer","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject","WebGLVertexArrayObjectOES"].filter(i=>typeof t[i]=="function").find(i=>e instanceof t[i]);function sg(e,t,i,n){const s=[],r=Object.getOwnPropertyNames(t.CanvasRenderingContext2D.prototype);for(const l of r)try{if(typeof t.CanvasRenderingContext2D.prototype[l]!="function")continue;const o=ot(t.CanvasRenderingContext2D.prototype,l,function(a){return function(...c){return me(this.canvas,i,n,!0)||setTimeout(()=>{const u=Tc(c,t,this);e(this.canvas,{type:xt["2D"],property:l,args:u})},0),a.apply(this,c)}});s.push(o)}catch{const a=Fn(t.CanvasRenderingContext2D.prototype,l,{set(c){e(this.canvas,{type:xt["2D"],property:l,args:[c],setter:!0})}});s.push(a)}return()=>{s.forEach(l=>l())}}function rg(e){return e==="experimental-webgl"?"webgl":e}function Nc(e,t,i,n){const s=[];try{const r=ot(e.HTMLCanvasElement.prototype,"getContext",function(l){return function(o,...a){if(!me(this,t,i,!0)){const c=rg(o);if("__context"in this||(this.__context=c),n&&["webgl","webgl2"].includes(c))if(a[0]&&typeof a[0]=="object"){const u=a[0];u.preserveDrawingBuffer||(u.preserveDrawingBuffer=!0)}else a.splice(0,1,{preserveDrawingBuffer:!0})}return l.apply(this,[o,...a])}});s.push(r)}catch{console.error("failed to patch HTMLCanvasElement.prototype.getContext")}return()=>{s.forEach(r=>r())}}function Jc(e,t,i,n,s,r){const l=[],o=Object.getOwnPropertyNames(e);for(const a of o)if(!["isContextLost","canvas","drawingBufferWidth","drawingBufferHeight"].includes(a))try{if(typeof e[a]!="function")continue;const c=ot(e,a,function(u){return function(...h){const p=u.apply(this,h);if(xc(p,r,this),"tagName"in this.canvas&&!me(this.canvas,n,s,!0)){const m=Tc(h,r,this),f={type:t,property:a,args:m};i(this.canvas,f)}return p}});l.push(c)}catch{const u=Fn(e,a,{set(h){i(this.canvas,{type:t,property:a,args:[h],setter:!0})}});l.push(u)}return l}function og(e,t,i,n){const s=[];return s.push(...Jc(t.WebGLRenderingContext.prototype,xt.WebGL,e,i,n,t)),typeof t.WebGL2RenderingContext<"u"&&s.push(...Jc(t.WebGL2RenderingContext.prototype,xt.WebGL2,e,i,n,t)),()=>{s.forEach(r=>r())}}const Yc="KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIGxldCBsb2dEZWJ1ZyA9IGZhbHNlOwogIGNvbnN0IGRlYnVnID0gKC4uLmFyZ3MpID0+IHsKICAgIGlmIChsb2dEZWJ1ZykgewogICAgICBjb25zb2xlLmRlYnVnKC4uLmFyZ3MpOwogICAgfQogIH07CiAgd29ya2VyLm9ubWVzc2FnZSA9IGFzeW5jIGZ1bmN0aW9uKGUpIHsKICAgIGxvZ0RlYnVnID0gISFlLmRhdGEubG9nRGVidWc7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGR4LCBkeSwgZHcsIGRoLCBkYXRhVVJMT3B0aW9ucyB9ID0gZS5kYXRhOwogICAgICBjb25zdCB0cmFuc3BhcmVudEJhc2U2NCA9IGdldFRyYW5zcGFyZW50QmxvYkZvcigKICAgICAgICB3aWR0aCwKICAgICAgICBoZWlnaHQsCiAgICAgICAgZGF0YVVSTE9wdGlvbnMKICAgICAgKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgY29uc3QgY3R4ID0gb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGN0eC5kcmF3SW1hZ2UoYml0bWFwLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgYml0bWFwLmNsb3NlKCk7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IHR5cGUgPSBibG9iLnR5cGU7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICBpZiAoIWxhc3RCbG9iTWFwLmhhcyhpZCkgJiYgYXdhaXQgdHJhbnNwYXJlbnRCYXNlNjQgPT09IGJhc2U2NCkgewogICAgICAgIGRlYnVnKCJbaGlnaGxpZ2h0LXdvcmtlcl0gY2FudmFzIGJpdG1hcCBpcyB0cmFuc3BhcmVudCIsIHsKICAgICAgICAgIGlkLAogICAgICAgICAgYmFzZTY0CiAgICAgICAgfSk7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCwgc3RhdHVzOiAidHJhbnNwYXJlbnQiIH0pOwogICAgICB9CiAgICAgIGlmIChsYXN0QmxvYk1hcC5nZXQoaWQpID09PSBiYXNlNjQpIHsKICAgICAgICBkZWJ1ZygiW2hpZ2hsaWdodC13b3JrZXJdIGNhbnZhcyBiaXRtYXAgaXMgdW5jaGFuZ2VkIiwgewogICAgICAgICAgaWQsCiAgICAgICAgICBiYXNlNjQKICAgICAgICB9KTsKICAgICAgfQogICAgICBjb25zdCBtc2cgPSB7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0LAogICAgICAgIGR4LAogICAgICAgIGR5LAogICAgICAgIGR3LAogICAgICAgIGRoCiAgICAgIH07CiAgICAgIGRlYnVnKCJbaGlnaGxpZ2h0LXdvcmtlcl0gY2FudmFzIGJpdG1hcCBwcm9jZXNzZWQiLCBtc2cpOwogICAgICB3b3JrZXIucG9zdE1lc3NhZ2UobXNnKTsKICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgfSBlbHNlIHsKICAgICAgZGVidWcoIltoaWdobGlnaHQtd29ya2VyXSBubyBvZmZzY3JlZW5jYW52YXMgc3VwcG9ydCIsIHsKICAgICAgICBpZDogZS5kYXRhLmlkCiAgICAgIH0pOwogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCwgc3RhdHVzOiAidW5zdXBwb3J0ZWQiIH0pOwogICAgfQogIH07Cn0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYWdlLWJpdG1hcC1kYXRhLXVybC13b3JrZXItRHd0SzhBMHouanMubWFwCg==",lg=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Fc=typeof self<"u"&&self.Blob&&new Blob([lg(Yc)],{type:"text/javascript;charset=utf-8"});function ag(e){let t;try{if(t=Fc&&(self.URL||self.webkitURL).createObjectURL(Fc),!t)throw"";const i=new Worker(t,{name:e?.name});return i.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),i}catch{return new Worker("data:text/javascript;base64,"+Yc,{name:e?.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}class cg{constructor(t){C(this,"pendingCanvasMutations",new Map),C(this,"rafStamps",{latestId:0,invokeId:null}),C(this,"mirror"),C(this,"logger"),C(this,"worker"),C(this,"snapshotInProgressMap",new Map),C(this,"lastSnapshotTime",new Map),C(this,"options"),C(this,"mutationCb"),C(this,"resetObservers"),C(this,"frozen",!1),C(this,"locked",!1),C(this,"processMutation",(h,p)=>{(this.rafStamps.invokeId&&this.rafStamps.latestId!==this.rafStamps.invokeId||!this.rafStamps.invokeId)&&(this.rafStamps.invokeId=this.rafStamps.latestId),this.pendingCanvasMutations.has(h)||this.pendingCanvasMutations.set(h,[]),this.pendingCanvasMutations.get(h).push(p)});const{sampling:i,win:n,blockClass:s,blockSelector:r,recordCanvas:l,recordLocalVideos:o,recordRemoteVideos:a,initialSnapshotDelay:c,dataURLOptions:u}=t;this.mutationCb=t.mutationCb,this.mirror=t.mirror,this.logger=t.logger,this.worker=new ag,this.worker.onmessage=h=>{const{id:p}=h.data;if(this.snapshotInProgressMap.set(p,!1),!("base64"in h.data)){this.debug(null,"canvas worker received empty message",{id:p,data:h.data,status:h.data.status});return}const{base64:m,type:f,dx:d,dy:S,dw:I,dh:V}=h.data,R={id:p,type:xt["2D"],commands:[{property:"clearRect",args:[d,S,I,V]},{property:"drawImage",args:[{rr_type:"ImageBitmap",args:[{rr_type:"Blob",data:[{rr_type:"ArrayBuffer",base64:m}],type:f}]},d,S,I,V]}]};this.debug(null,"canvas worker recording mutation",R),this.mutationCb(R)},this.options=t,l&&i==="all"?(this.debug(null,"initializing canvas mutation observer",{sampling:i}),this.initCanvasMutationObserver(n,s,r)):l&&typeof i=="number"&&(this.debug(null,"initializing canvas fps observer",{sampling:i}),this.initCanvasFPSObserver(o,a,i,n,s,r,{initialSnapshotDelay:c,dataURLOptions:u},t.resizeFactor,t.maxSnapshotDimension))}reset(){this.pendingCanvasMutations.clear(),this.resetObservers&&this.resetObservers()}freeze(){this.frozen=!0}unfreeze(){this.frozen=!1}lock(){this.locked=!0}unlock(){this.locked=!1}debug(t,...i){if(!this.logger)return;const n=this.mirror.getId(t);let s="[highlight-canvas-manager]";t&&(s=`[highlight-canvas] [id:${n}]`,t.tagName.toLowerCase()==="canvas"&&(s+=` [ctx:${t.__context}]`)),this.logger.debug(s,t,...i)}snapshot(t){return ye(this,null,function*(){var i;const n=this.mirror.getId(t);if(this.snapshotInProgressMap.get(n)){this.debug(t,"snapshotting already in progress for",n);return}const s=1e3/(typeof this.options.samplingManual=="number"?this.options.samplingManual:1),r=this.lastSnapshotTime.get(n);if(!(r&&new Date().getTime()-r<s)){if(this.debug(t,"starting snapshotting"),t.width===0||t.height===0){this.debug(t,"not yet ready",{width:t.width,height:t.height});return}this.lastSnapshotTime.set(n,new Date().getTime()),this.snapshotInProgressMap.set(n,!0);try{if(this.options.clearWebGLBuffer!==!1&&["webgl","webgl2"].includes(t.__context)){const u=t.getContext(t.__context);((i=u?.getContextAttributes())==null?void 0:i.preserveDrawingBuffer)===!1&&(u.clear(u.COLOR_BUFFER_BIT),this.debug(t,"cleared webgl canvas to load it into memory",{attributes:u?.getContextAttributes()}))}if(t.width===0||t.height===0){this.debug(t,"not yet ready",{width:t.width,height:t.height});return}let l=this.options.resizeFactor||1;if(this.options.maxSnapshotDimension){const u=Math.max(t.width,t.height);l=Math.min(l,this.options.maxSnapshotDimension/u)}const o=t.width*l,a=t.height*l,c=yield createImageBitmap(t,{resizeWidth:o,resizeHeight:a});this.debug(t,"created image bitmap",{width:c.width,height:c.height}),this.worker.postMessage({id:n,bitmap:c,width:o,height:a,dx:0,dy:0,dw:t.width,dh:t.height,dataURLOptions:this.options.dataURLOptions,logDebug:!!this.logger},[c]),this.debug(t,"sent message")}catch(l){this.debug(t,"failed to snapshot",l)}finally{this.snapshotInProgressMap.set(n,!1)}}})}initCanvasFPSObserver(t,i,n,s,r,l,o,a,c){const u=Nc(s,r,l,!0),h=1e3/n;let p=0,m;const f=new Map,d=(R,G)=>{const X=[];R.querySelectorAll(G).forEach(w=>X.push(w));const v=document.createNodeIterator(R,Node.ELEMENT_NODE);let k;for(;k=v.nextNode();)k!=null&&k.shadowRoot&&X.push(...d(k.shadowRoot,G));return X},S=R=>{const G=[];return d(s.document,"canvas").forEach(X=>{if(!me(X,r,l,!0)){this.debug(X,"discovered canvas"),G.push(X);const v=this.mirror.getId(X);f.has(v)||f.set(v,R)}}),G},I=R=>{const G=[];return(t||i)&&d(s.document,"video").forEach(X=>{if(!(!i&&X.src!==""&&X.src.indexOf("blob:")===-1)&&!(!t&&(X.src===""||X.src.indexOf("blob:")!==-1))&&!me(X,r,l,!0)){G.push(X);const v=this.mirror.getId(X);f.has(v)||f.set(v,R)}}),G},V=R=>ye(this,null,function*(){if(p&&R-p<h){m=requestAnimationFrame(V);return}p=R;const G=v=>{const k=this.mirror.getId(v),w=f.get(k),g=!o.initialSnapshotDelay||R-w>o.initialSnapshotDelay;return this.debug(v,{delay:o.initialSnapshotDelay,delta:R-w,hadLoadingTime:g}),g},X=[];X.push(...S(R).filter(G).map(v=>this.snapshot(v))),X.push(...I(R).filter(G).map(v=>ye(this,null,function*(){this.debug(v,"starting video snapshotting");const k=this.mirror.getId(v);if(this.snapshotInProgressMap.get(k)){this.debug(v,"video snapshotting already in progress for",k);return}this.snapshotInProgressMap.set(k,!0);try{const{width:w,height:g}=v.getBoundingClientRect(),{actualWidth:W,actualHeight:J}={actualWidth:v.videoWidth,actualHeight:v.videoHeight},E=Math.max(W,J);if(E===0){this.debug(v,"not yet ready",{width:v.width,height:v.height,actualWidth:W,actualHeight:J,boxWidth:w,boxHeight:g});return}let $=a||1;c&&($=Math.min($,c/E));const b=W*$,y=J*$,T=yield createImageBitmap(v,{resizeWidth:b,resizeHeight:y}),F=Math.max(w,g)/E,K=W*F,N=J*F,A=(w-K)/2,j=(g-N)/2;this.debug(v,"created image bitmap",{actualWidth:W,actualHeight:J,boxWidth:w,boxHeight:g,outputWidth:K,outputHeight:N,resizeWidth:b,resizeHeight:y,scale:$,outputScale:F,offsetX:A,offsetY:j}),this.worker.postMessage({id:k,bitmap:T,width:b,height:y,dx:A,dy:j,dw:K,dh:N,dataURLOptions:o.dataURLOptions,logDebug:!!this.logger},[T]),this.debug(v,"send message")}catch(w){this.debug(v,"failed to snapshot",w)}finally{this.snapshotInProgressMap.set(k,!1)}}))),yield Promise.all(X).catch(console.error),m=requestAnimationFrame(V)});m=requestAnimationFrame(V),this.resetObservers=()=>{u(),m&&cancelAnimationFrame(m)}}initCanvasMutationObserver(t,i,n){this.startRAFTimestamping(),this.startPendingCanvasMutationFlusher();const s=Nc(t,i,n,!1),r=sg(this.processMutation.bind(this),t,i,n),l=og(this.processMutation.bind(this),t,i,n);this.resetObservers=()=>{s(),r(),l()}}startPendingCanvasMutationFlusher(){requestAnimationFrame(()=>this.flushPendingCanvasMutations())}startRAFTimestamping(){const t=i=>{this.rafStamps.latestId=i,requestAnimationFrame(t)};requestAnimationFrame(t)}flushPendingCanvasMutations(){this.pendingCanvasMutations.forEach((t,i)=>{const n=this.mirror.getId(i);this.flushPendingCanvasMutationFor(i,n)}),requestAnimationFrame(()=>this.flushPendingCanvasMutations())}flushPendingCanvasMutationFor(t,i){if(this.frozen||this.locked)return;const n=this.pendingCanvasMutations.get(t);if(!n||i===-1)return;const s=n.map(l=>It(l,["type"])),{type:r}=n[0];this.mutationCb({id:i,type:r,commands:s}),this.pendingCanvasMutations.delete(t)}}class ug{constructor(t){C(this,"trackedLinkElements",new WeakSet),C(this,"mutationCb"),C(this,"adoptedStyleSheetCb"),C(this,"styleMirror",new xy),this.mutationCb=t.mutationCb,this.adoptedStyleSheetCb=t.adoptedStyleSheetCb}attachLinkElement(t,i){"_cssText"in i.attributes&&this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:i.id,attributes:i.attributes}]}),this.trackLinkElement(t)}trackLinkElement(t){this.trackedLinkElements.has(t)||(this.trackedLinkElements.add(t),this.trackStylesheetInLinkElement(t))}adoptStyleSheets(t,i){if(t.length===0)return;const n={id:i,styleIds:[]},s=[];for(const r of t){let l;this.styleMirror.has(r)?l=this.styleMirror.getId(r):(l=this.styleMirror.add(r),s.push({styleId:l,rules:Array.from(r.rules||CSSRule,(o,a)=>({rule:Qo(o,r.href),index:a}))})),n.styleIds.push(l)}s.length>0&&(n.styles=s),this.adoptedStyleSheetCb(n)}reset(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet}trackStylesheetInLinkElement(t){}}class dg{constructor(){C(this,"nodeMap",new WeakMap),C(this,"active",!1)}inOtherBuffer(t,i){const n=this.nodeMap.get(t);return n&&Array.from(n).some(s=>s!==i)}add(t,i){this.active||(this.active=!0,requestAnimationFrame(()=>{this.nodeMap=new WeakMap,this.active=!1})),this.nodeMap.set(t,(this.nodeMap.get(t)||new Set).add(i))}destroy(){}}let se,Hn,fi,Pn=!1;try{if(Array.from([1],e=>e*2)[0]!==2){const e=document.createElement("iframe");document.body.appendChild(e),Array.from=((Mo=e.contentWindow)==null?void 0:Mo.Array.from)||Array.from,document.body.removeChild(e)}}catch(e){console.debug("Unable to override Array.from",e)}const Le=up();function Be(e={}){var t,i,n,s,r,l,o,a;const{emit:c,checkoutEveryNms:u,checkoutEveryNth:h,blockClass:p="highlight-block",blockSelector:m=null,ignoreClass:f="highlight-ignore",ignoreSelector:d=null,maskTextClass:S="highlight-mask",maskTextSelector:I=null,inlineStylesheet:V=!0,maskAllInputs:R,maskInputOptions:G,slimDOMOptions:X,maskInputFn:v,maskTextFn:k=Ss,hooks:w,packFn:g,sampling:W={},mousemoveWait:J,recordDOM:E=!0,recordCanvas:$=!1,recordCrossOriginIframes:b=!1,recordAfter:y=e.recordAfter==="DOMContentLoaded"?e.recordAfter:"load",userTriggeredOnInput:T=!1,collectFonts:F=!1,inlineImages:K=!1,inlineVideos:N=!1,plugins:A,keepIframeSrcFn:j=()=>!1,privacySetting:de="default",ignoreCSSAttributes:Se=new Set([]),errorHandler:ke,logger:ue}=e,Ne=Y(Y({},e.dataURLOptions),(i=(t=e.sampling)==null?void 0:t.canvas)==null?void 0:i.dataURLOptions);Uy(ke);const ct=b?window.parent===window:!0;let je=!1;if(!ct)try{window.parent.document&&(je=!1)}catch{je=!0}if(ct&&!c)throw new Error("emit function is required");if(!ct&&!je)return()=>{};J!==void 0&&W.mousemove===void 0&&(W.mousemove=J),Le.reset();const Si=R===!0?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:G!==void 0?G:{password:!0},Nt=X===!0||X==="all"?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:X==="all",headMetaDescKeywords:X==="all",headTitleMutations:X==="all"}:X||{};wy();let Xi,Jt=0;const Yt=_=>{for(const Je of A||[])Je.eventProcessor&&(_=Je.eventProcessor(_));return g&&!je&&(_=g(_)),_};se=(_,Je)=>{var re;const oe=_;if(oe.timestamp=Un(),(re=lt[0])!=null&&re.isFrozen()&&oe.type!==Q.FullSnapshot&&!(oe.type===Q.IncrementalSnapshot&&oe.data.source===P.Mutation)&<.forEach(Me=>Me.unfreeze()),ct)c?.(Yt(oe),Je);else if(je){const Me={type:"rrweb",event:Yt(oe),origin:window.location.origin,isCheckout:Je};window.parent.postMessage(Me,"*")}if(oe.type===Q.FullSnapshot)Xi=oe,Jt=0;else if(oe.type===Q.IncrementalSnapshot){if(oe.data.source===P.Mutation&&oe.data.isAttachIframe)return;Jt++;const Me=h&&Jt>=h,te=u&&oe.timestamp-Xi.timestamp>u;(Me||te)&&Hn(!0)}};const tt=_=>{se({type:Q.IncrementalSnapshot,data:Y({source:P.Mutation},_)})},ou=_=>se({type:Q.IncrementalSnapshot,data:Y({source:P.Scroll},_)}),lu=_=>se({type:Q.IncrementalSnapshot,data:Y({source:P.CanvasMutation},_)}),$g=_=>se({type:Q.IncrementalSnapshot,data:Y({source:P.AdoptedStyleSheet},_)}),ut=new ug({mutationCb:tt,adoptedStyleSheetCb:$g}),dt=new qy({mirror:Le,mutationCb:tt,stylesheetManager:ut,recordCrossOriginIframes:b,wrappedEmit:se});for(const _ of A||[])_.getMirror&&_.getMirror({nodeMirror:Le,crossOriginIframeMirror:dt.crossOriginIframeMirror,crossOriginIframeStyleMirror:dt.crossOriginIframeStyleMirror});const Pr=new dg;fi=new cg({recordCanvas:$,recordLocalVideos:K,recordRemoteVideos:N,mutationCb:lu,win:window,blockClass:p,blockSelector:m,mirror:Le,sampling:(n=W?.canvas)==null?void 0:n.fps,samplingManual:(s=W?.canvas)==null?void 0:s.fpsManual,clearWebGLBuffer:(r=W?.canvas)==null?void 0:r.clearWebGLBuffer,initialSnapshotDelay:(l=W?.canvas)==null?void 0:l.initialSnapshotDelay,dataURLOptions:Ne,resizeFactor:(o=W?.canvas)==null?void 0:o.resizeFactor,maxSnapshotDimension:(a=W?.canvas)==null?void 0:a.maxSnapshotDimension,logger:ue});const Bn=new eg({mutationCb:tt,scrollCb:ou,bypassOptions:{blockClass:p,blockSelector:m,maskTextClass:S,maskTextSelector:I,inlineStylesheet:V,maskInputOptions:Si,dataURLOptions:Ne,maskTextFn:k,maskInputFn:v,recordCanvas:$,inlineImages:K,inlineVideos:N,privacySetting:de,sampling:W,slimDOMOptions:Nt,iframeManager:dt,stylesheetManager:ut,canvasManager:fi,keepIframeSrcFn:j,processedNodeManager:Pr},mirror:Le});Hn=(_=!1)=>{if(!E)return;se({type:Q.Meta,data:{href:window.location.href,width:hc(),height:dc()}},_),ut.reset(),Bn.init(),lt.forEach(re=>re.lock());const Je=Op(document,{mirror:Le,blockClass:p,blockSelector:m,maskTextClass:S,maskTextSelector:I,inlineStylesheet:V,maskAllInputs:Si,maskTextFn:k,maskInputFn:v,slimDOM:Nt,dataURLOptions:Ne,recordCanvas:$,inlineImages:K,inlineVideos:N,privacySetting:de,onSerialize:re=>{fc(re,Le)&&dt.addIframe(re),bc(re,Le)&&ut.trackLinkElement(re),Nr(re)&&Bn.addShadowRoot(H.shadowRoot(re),document)},onIframeLoad:(re,oe)=>{dt.attachIframe(re,oe),Bn.observeAttachShadow(re)},onStylesheetLoad:(re,oe)=>{ut.attachLinkElement(re,oe)},keepIframeSrcFn:j});if(!Je)return console.warn("Failed to snapshot the document");se({type:Q.FullSnapshot,data:{node:Je,initialOffset:uc(window)}},_),lt.forEach(re=>re.unlock()),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&ut.adoptStyleSheets(document.adoptedStyleSheets,Le.getId(document))};try{const _=[],Je=oe=>{var Me;return D($y)({mutationCb:tt,mousemoveCb:(te,Dr)=>se({type:Q.IncrementalSnapshot,data:{source:Dr,positions:te}}),mouseInteractionCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.MouseInteraction},te)}),scrollCb:ou,viewportResizeCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.ViewportResize},te)}),inputCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.Input},te)}),mediaInteractionCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.MediaInteraction},te)}),styleSheetRuleCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.StyleSheetRule},te)}),styleDeclarationCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.StyleDeclaration},te)}),canvasMutationCb:lu,fontCb:te=>se({type:Q.IncrementalSnapshot,data:Y({source:P.Font},te)}),selectionCb:te=>{se({type:Q.IncrementalSnapshot,data:Y({source:P.Selection},te)})},customElementCb:te=>{se({type:Q.IncrementalSnapshot,data:Y({source:P.CustomElement},te)})},blockClass:p,ignoreClass:f,ignoreSelector:d,maskTextClass:S,maskTextSelector:I,maskInputOptions:Si,inlineStylesheet:V,sampling:W,recordDOM:E,recordCanvas:$,inlineImages:K,inlineVideos:N,userTriggeredOnInput:T,collectFonts:F,doc:oe,maskInputFn:v,maskTextFn:k,keepIframeSrcFn:j,blockSelector:m,slimDOMOptions:Nt,dataURLOptions:Ne,mirror:Le,iframeManager:dt,stylesheetManager:ut,shadowDomManager:Bn,processedNodeManager:Pr,canvasManager:fi,ignoreCSSAttributes:Se,privacySetting:de,plugins:((Me=A?.filter(te=>te.observer))==null?void 0:Me.map(te=>({observer:te.observer,options:te.options,callback:Dr=>se({type:Q.Plugin,data:{plugin:te.name,payload:Dr}})})))||[]},w)};dt.addLoadListener(oe=>{try{_.push(Je(oe.contentDocument))}catch(Me){console.warn(Me)}});const re=()=>{Hn(),_.push(Je(document)),Pn=!0};return document.readyState==="interactive"||document.readyState==="complete"?re():(_.push(ge("DOMContentLoaded",()=>{se({type:Q.DomContentLoaded,data:{}}),y==="DOMContentLoaded"&&re()})),_.push(ge("load",()=>{se({type:Q.Load,data:{}}),y==="load"&&re()},window))),()=>{_.forEach(oe=>oe()),Pr.destroy(),Pn=!1,Ky()}}catch(_){console.warn(_)}}Be.addCustomEvent=(e,t)=>{Pn&&se({type:Q.Custom,data:{tag:e,payload:t}})},Be.freezePage=()=>{lt.forEach(e=>e.freeze())},Be.takeFullSnapshot=e=>{if(!Pn)throw new Error("please take full snapshot after start recording");Hn(e)},Be.snapshotCanvas=e=>ye(void 0,null,function*(){if(!fi)throw new Error("canvas manager is not initialized");yield fi.snapshot(e)}),Be.mirror=Le;var Uc;(function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"})(Uc||(Uc={}));const{addCustomEvent:Kc}=Be,hg=(e,t,i)=>{switch(e){case"strict":return[!0,void 0];case"default":return[!0,void 0];case"none":return[!!t,he(Y({},i),{password:!0})]}},pg=e=>{const t=i=>{if(i.target){const n=i.target,s=No(n);e(s,i)}};return window.addEventListener("click",t),()=>window.removeEventListener("click",t)},mg=e=>{const t=i=>{if(i.target){const n=No(i.target);e(n)}};return window.addEventListener("focusin",t),()=>window.removeEventListener("focusin",t)},fg=e=>{let t,i;if(typeof document.hidden<"u"?(t="hidden",i="visibilitychange"):typeof document.msHidden<"u"?(t="msHidden",i="msvisibilitychange"):typeof document.webkitHidden<"u"&&(t="webkitHidden",i="webkitvisibilitychange"),i===void 0)return()=>{};if(t===void 0)return()=>{};const n=t,s=()=>{const l=document[n];e(!!l)};document.addEventListener(i,s);const r=i;return()=>document.removeEventListener(r,s)},bg=e=>{e(window.location.href);var t=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(r){setTimeout(()=>{var l,o;try{o=JSON.parse((l=r?.toString())!=null?l:"")}catch{return}(o.type==="track"||o.type==="identify")&&Yr(o)&&e(o)},100),t.call(this,r)};const i=r=>{if(r.key==="ajs_user_id"||r.key==="ajs_anonymous_id"||r.key==="ajs_user_traits"){const{userId:l,userTraits:o}=Mc();if(l){let a={};o&&(a=JSON.parse(o));const c={type:"identify",userId:l.toString(),traits:a};Yr(c)&&e(c)}}},{userId:n,userTraits:s}=Mc();if(n){let r={};s&&(r=JSON.parse(s));const l={type:"identify",userId:n.toString(),traits:r};Yr(l)&&e(l)}return window.addEventListener("storage",i),ih(({keyName:r})=>{i({key:r})}),()=>{window.removeEventListener("storage",i),XMLHttpRequest.prototype.send=t}},Mc=()=>{const e=Ge("ajs_user_id"),t=Ge("ajs_user_traits"),i=Ge("ajs_anonymous_id");return{userId:e,userTraits:t,anonymousId:i}},Yr=e=>{if(!e)return!1;let t="";try{t=JSON.stringify(e)}catch{return!1}const i=yg(t),n=Ge(be.SEGMENT_LAST_SENT_HASH_KEY);return n===void 0||i!==n?(Ee(be.SEGMENT_LAST_SENT_HASH_KEY,i),!0):!1},yg=e=>{var t=0,i=e.length,n=0;if(i>0)for(;n<i;)t=(t<<5)-t+e.charCodeAt(n++)|0;return t.toString()},gg=(e,t)=>{const i=Zg(e);let n=[];const s=!1,r=!0;for(let l=0;l<i.length;l++){let o=i[l].split("+");n=[],o.length>1&&(n=Xg(Ec,o)),o=o[o.length-1],o=o==="*"?"*":Sg(o),o in Ue||(Ue[o]=[]),Ue[o].push({mods:n,shortcut:i[l],key:i[l],method:t,keyup:s,keydown:r,scope:"all",splitKey:"+"})}Vg(document,"keydown",l=>{Cg(l)})};let Ze=[];function Zg(e){typeof e!="string"&&(e=""),e=e.replace(/\s/g,"");const t=e.split(",");let i=t.lastIndexOf("");for(;i>=0;)t[i-1]+=",",t.splice(i,1),i=t.lastIndexOf("");return t}const Ue={},Fr=typeof navigator<"u"?navigator.userAgent.toLowerCase().indexOf("firefox")>0:!1,Ig={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":Fr?173:189,"=":Fr?61:187,";":Fr?59:186,"'":222,"[":219,"]":221,"\\":220},Oc={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},Ie={16:!1,18:!1,17:!1,91:!1},Ec={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},Sg=e=>Ig[e.toLowerCase()]||Ec[e.toLowerCase()]||e.toUpperCase().charCodeAt(0);function Xg(e,t){const i=t.slice(0,t.length-1);for(let n=0;n<i.length;n++)i[n]=e[i[n].toLowerCase()];return i}function Vg(e,t,i){e.addEventListener?e.addEventListener(t,i,!1):e.attachEvent&&e.attachEvent(`on${t}`,()=>{i(window.event)})}function Gg(e,t,i){let n;if(t.scope===i||t.scope==="all"){n=t.mods.length>0;for(const s in Ie)Object.prototype.hasOwnProperty.call(Ie,s)&&(!Ie[s]&&t.mods.indexOf(+s)>-1||Ie[s]&&t.mods.indexOf(+s)===-1)&&(n=!1);(t.mods.length===0&&!Ie[16]&&!Ie[18]&&!Ie[17]&&!Ie[91]||n||t.shortcut==="*")&&t.method(e,t)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function Cg(e){const t=Ue["*"];let i=e.keyCode||e.which||e.charCode;if((i===93||i===224)&&(i=91),Ze.indexOf(i)===-1&&i!==229&&Ze.push(i),["ctrlKey","altKey","shiftKey","metaKey"].forEach(n=>{const s=Oc[n];e[n]&&Ze.indexOf(s)===-1?Ze.push(s):!e[n]&&Ze.indexOf(s)>-1?Ze.splice(Ze.indexOf(s),1):n==="metaKey"&&e[n]&&Ze.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(Ze=Ze.slice(Ze.indexOf(s))))}),!(i in Ie&&(Ie[i]=!0,!t))){for(const n in Ie)Object.prototype.hasOwnProperty.call(Ie,n)&&(Ie[n]=e[Oc[n]]);if(e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(Ze.indexOf(17)===-1&&Ze.push(17),Ze.indexOf(18)===-1&&Ze.push(18),Ie[17]=!0,Ie[18]=!0),i in Ue){for(let n=0;n<Ue[i].length;n++)if((e.type==="keydown"&&Ue[i][n].keydown||e.type==="keyup"&&Ue[i][n].keyup)&&Ue[i][n].key){const s=Ue[i][n];Gg(e,s,"all")}}}}const zc="iframe parent ready",Hc="iframe ok",bi="highlightLogs",Rg=e=>{let t=Ge(bi)||"";t=t+"["+new Date().getTime()+"] "+e+`
|
|
351
|
+
`,Ee(bi,t)},Wg=()=>Ge(bi)||"",vg=e=>{if(!e)return;let t=Ge(bi)||"";t&&(t.startsWith(e)?(t=t.slice(e.length),Ee(bi,t)):Rg("Unable to clear logs "+e.replace(`
|
|
352
352
|
`," ")+" from "+t.replace(`
|
|
353
|
-
`," ")))};var Ce=Uint8Array,ve=Uint16Array,Ur=Int32Array,Kr=new Ce([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Mr=new Ce([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Hc=new Ce([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Pc=function(e,t){for(var i=new ve(31),n=0;n<31;++n)i[n]=t+=1<<e[n-1];for(var s=new Ur(i[30]),n=1;n<30;++n)for(var r=i[n];r<i[n+1];++r)s[r]=r-i[n]<<5|n;return{b:i,r:s}},Dc=Pc(Kr,2),vg=Dc.b,Or=Dc.r;vg[28]=258,Or[258]=28;for(var kg=Pc(Mr,0),Bc=kg.r,Qc=new ve(32768),ne=0;ne<32768;++ne){var et=(ne&43690)>>1|(ne&21845)<<1;et=(et&52428)>>2|(et&13107)<<2,et=(et&61680)>>4|(et&3855)<<4,Qc[ne]=((et&65280)>>8|(et&255)<<8)>>1}for(var gi=function(e,t,i){for(var n=e.length,s=0,r=new ve(t);s<n;++s)e[s]&&++r[e[s]-1];var l=new ve(t);for(s=1;s<t;++s)l[s]=l[s-1]+r[s-1]<<1;var o;for(o=new ve(n),s=0;s<n;++s)e[s]&&(o[s]=Qc[l[e[s]-1]++]>>15-e[s]);return o},ct=new Ce(288),ne=0;ne<144;++ne)ct[ne]=8;for(var ne=144;ne<256;++ne)ct[ne]=9;for(var ne=256;ne<280;++ne)ct[ne]=7;for(var ne=280;ne<288;++ne)ct[ne]=8;for(var Dn=new Ce(32),ne=0;ne<32;++ne)Dn[ne]=5;var wg=gi(ct,9),xg=gi(Dn,5),jc=function(e){return(e+7)/8|0},Ac=function(e,t,i){return(i==null||i>e.length)&&(i=e.length),new Ce(e.subarray(t,i))},Qe=function(e,t,i){i<<=t&7;var n=t/8|0;e[n]|=i,e[n+1]|=i>>8},Zi=function(e,t,i){i<<=t&7;var n=t/8|0;e[n]|=i,e[n+1]|=i>>8,e[n+2]|=i>>16},Er=function(e,t){for(var i=[],n=0;n<e.length;++n)e[n]&&i.push({s:n,f:e[n]});var s=i.length,r=i.slice();if(!s)return{t:eu,l:0};if(s==1){var l=new Ce(i[0].s+1);return l[i[0].s]=1,{t:l,l:1}}i.sort(function(X,v){return X.f-v.f}),i.push({s:-1,f:25001});var o=i[0],a=i[1],c=0,u=1,h=2;for(i[0]={s:-1,f:o.f+a.f,l:o,r:a};u!=s-1;)o=i[i[c].f<i[h].f?c++:h++],a=i[c!=u&&i[c].f<i[h].f?c++:h++],i[u++]={s:-1,f:o.f+a.f,l:o,r:a};for(var p=r[0].s,n=1;n<s;++n)r[n].s>p&&(p=r[n].s);var m=new ve(p+1),f=zr(i[u-1],m,0);if(f>t){var n=0,d=0,S=f-t,I=1<<S;for(r.sort(function(v,k){return m[k.s]-m[v.s]||v.f-k.f});n<s;++n){var V=r[n].s;if(m[V]>t)d+=I-(1<<f-m[V]),m[V]=t;else break}for(d>>=S;d>0;){var R=r[n].s;m[R]<t?d-=1<<t-m[R]++-1:++n}for(;n>=0&&d;--n){var G=r[n].s;m[G]==t&&(--m[G],++d)}f=t}return{t:new Ce(m),l:f}},zr=function(e,t,i){return e.s==-1?Math.max(zr(e.l,t,i+1),zr(e.r,t,i+1)):t[e.s]=i},_c=function(e){for(var t=e.length;t&&!e[--t];);for(var i=new ve(++t),n=0,s=e[0],r=1,l=function(a){i[n++]=a},o=1;o<=t;++o)if(e[o]==s&&o!=t)++r;else{if(!s&&r>2){for(;r>138;r-=138)l(32754);r>2&&(l(r>10?r-11<<5|28690:r-3<<5|12305),r=0)}else if(r>3){for(l(s),--r;r>6;r-=6)l(8304);r>2&&(l(r-3<<5|8208),r=0)}for(;r--;)l(s);r=1,s=e[o]}return{c:i.subarray(0,n),n:t}},Ii=function(e,t){for(var i=0,n=0;n<t.length;++n)i+=e[n]*t[n];return i},$c=function(e,t,i){var n=i.length,s=jc(t+2);e[s]=n&255,e[s+1]=n>>8,e[s+2]=e[s]^255,e[s+3]=e[s+1]^255;for(var r=0;r<n;++r)e[s+r+4]=i[r];return(s+4+n)*8},qc=function(e,t,i,n,s,r,l,o,a,c,u){Qe(t,u++,i),++s[256];for(var h=Er(s,15),p=h.t,m=h.l,f=Er(r,15),d=f.t,S=f.l,I=_c(p),V=I.c,R=I.n,G=_c(d),X=G.c,v=G.n,k=new ve(19),w=0;w<V.length;++w)++k[V[w]&31];for(var w=0;w<X.length;++w)++k[X[w]&31];for(var g=Er(k,7),W=g.t,J=g.l,E=19;E>4&&!W[Hc[E-1]];--E);var $=c+5<<3,b=Ii(s,ct)+Ii(r,Dn)+l,y=Ii(s,p)+Ii(r,d)+l+14+3*E+Ii(k,W)+2*k[16]+3*k[17]+7*k[18];if(a>=0&&$<=b&&$<=y)return $c(t,u,e.subarray(a,a+c));var T,F,K,N;if(Qe(t,u,1+(y<b)),u+=2,y<b){T=gi(p,m),F=p,K=gi(d,S),N=d;var A=gi(W,J);Qe(t,u,R-257),Qe(t,u+5,v-1),Qe(t,u+10,E-4),u+=14;for(var w=0;w<E;++w)Qe(t,u+3*w,W[Hc[w]]);u+=3*E;for(var j=[V,X],de=0;de<2;++de)for(var Se=j[de],w=0;w<Se.length;++w){var ke=Se[w]&31;Qe(t,u,A[ke]),u+=W[ke],ke>15&&(Qe(t,u,Se[w]>>5&127),u+=Se[w]>>12)}}else T=wg,F=ct,K=xg,N=Dn;for(var w=0;w<o;++w){var ue=n[w];if(ue>255){var ke=ue>>18&31;Zi(t,u,T[ke+257]),u+=F[ke+257],ke>7&&(Qe(t,u,ue>>23&31),u+=Kr[ke]);var Ne=ue&31;Zi(t,u,K[Ne]),u+=N[Ne],Ne>3&&(Zi(t,u,ue>>5&8191),u+=Mr[Ne])}else Zi(t,u,T[ue]),u+=F[ue]}return Zi(t,u,T[256]),u+F[256]},Tg=new Ur([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),eu=new Ce(0),Lg=function(e,t,i,n,s,r){var l=r.z||e.length,o=new Ce(n+l+5*(1+Math.ceil(l/7e3))+s),a=o.subarray(n,o.length-s),c=r.l,u=(r.r||0)&7;if(t){u&&(a[0]=r.r>>3);for(var h=Tg[t-1],p=h>>13,m=h&8191,f=(1<<i)-1,d=r.p||new ve(32768),S=r.h||new ve(f+1),I=Math.ceil(i/3),V=2*I,R=function(tt){return(e[tt]^e[tt+1]<<I^e[tt+2]<<V)&f},G=new Ur(25e3),X=new ve(288),v=new ve(32),k=0,w=0,g=r.i||0,W=0,J=r.w||0,E=0;g+2<l;++g){var $=R(g),b=g&32767,y=S[$];if(d[b]=y,S[$]=b,J<=g){var T=l-g;if((k>7e3||W>24576)&&(T>423||!c)){u=qc(e,a,0,G,X,v,w,W,E,g-E,u),W=k=w=0,E=g;for(var F=0;F<286;++F)X[F]=0;for(var F=0;F<30;++F)v[F]=0}var K=2,N=0,A=m,j=b-y&32767;if(T>2&&$==R(g-j))for(var de=Math.min(p,T)-1,Se=Math.min(32767,g),ke=Math.min(258,T);j<=Se&&--A&&b!=y;){if(e[g+K]==e[g+K-j]){for(var ue=0;ue<ke&&e[g+ue]==e[g+ue-j];++ue);if(ue>K){if(K=ue,N=j,ue>de)break;for(var Ne=Math.min(j,ue-2),ut=0,F=0;F<Ne;++F){var je=g-j+F&32767,Xi=d[je],Nt=je-Xi&32767;Nt>ut&&(ut=Nt,y=je)}}}b=y,y=d[b],j+=b-y&32767}if(N){G[W++]=268435456|Or[K]<<18|Bc[N];var Vi=Or[K]&31,Jt=Bc[N]&31;w+=Kr[Vi]+Mr[Jt],++X[257+Vi],++v[Jt],J=g+K,++k}else G[W++]=e[g],++X[e[g]]}}for(g=Math.max(g,J);g<l;++g)G[W++]=e[g],++X[e[g]];u=qc(e,a,c,G,X,v,w,W,E,g-E,u),c||(r.r=u&7|a[u/8|0]<<3,u-=7,r.h=S,r.p=d,r.i=g,r.w=J)}else{for(var g=r.w||0;g<l+c;g+=65535){var Yt=g+65535;Yt>=l&&(a[u/8|0]=c,Yt=l),u=$c(a,u+1,e.subarray(g,Yt))}r.i=l}return Ac(o,0,n+jc(u)+s)},Ng=function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var i=t,n=9;--n;)i=(i&1&&-306674912)^i>>>1;e[t]=i}return e}(),Jg=function(){var e=-1;return{p:function(t){for(var i=e,n=0;n<t.length;++n)i=Ng[i&255^t[n]]^i>>>8;e=i},d:function(){return~e}}},Yg=function(e,t,i,n,s){if(!s&&(s={l:1},t.dictionary)){var r=t.dictionary.subarray(-32768),l=new Ce(r.length+e.length);l.set(r),l.set(e,r.length),e=l,s.w=r.length}return Lg(e,t.level==null?6:t.level,t.mem==null?s.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,i,n,s)},Hr=function(e,t,i){for(;i;++t)e[t]=i,i>>>=8},Fg=function(e,t){var i=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:t.level==9?2:0,e[9]=3,t.mtime!=0&&Hr(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),i){e[3]=8;for(var n=0;n<=i.length;++n)e[n+10]=i.charCodeAt(n)}},Ug=function(e){return 10+(e.filename?e.filename.length+1:0)};function Kg(e,t){t||(t={});var i=Jg(),n=e.length;i.p(e);var s=Yg(e,t,Ug(t),8),r=s.length;return Fg(s,t),Hr(s,r-8,i.d()),Hr(s,r-4,n),s}var tu=typeof TextEncoder<"u"&&new TextEncoder,Mg=typeof TextDecoder<"u"&&new TextDecoder;try{Mg.decode(eu,{stream:!0})}catch{}function Og(e,t){var i;if(tu)return tu.encode(e);for(var n=e.length,s=new Ce(e.length+(e.length>>1)),r=0,l=function(u){s[r++]=u},i=0;i<n;++i){if(r+5>s.length){var o=new Ce(r+8+(n-i<<1));o.set(s),s=o}var a=e.charCodeAt(i);a<128||t?l(a):a<2048?(l(192|a>>6),l(128|a&63)):a>55295&&a<57344?(a=65536+(a&1047552)|e.charCodeAt(++i)&1023,l(240|a>>18),l(128|a>>12&63),l(128|a>>6&63),l(128|a&63)):(l(224|a>>12),l(128|a>>6&63),l(128|a&63))}return Ac(s,0,r)}function Eg(e){return ye(this,null,function*(){const t=Og(JSON.stringify(e)),i=Kg(t),n=yield new Promise(s=>{const r=new FileReader;r.onload=()=>s(r.result),r.readAsDataURL(new Blob([new Uint8Array(i)]))});return{compressedBase64:n.slice(n.indexOf(",")+1),compressedSize:i.length,bufferLength:t.length}})}const iu="dmFyIFVyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxWcj1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgcXI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIEJlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIHRuPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbm49T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgaHQ9KEYsQiwkKT0+QiBpbiBGP1VyKEYsQix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6JH0pOkZbQl09JCxEPShGLEIpPT57Zm9yKHZhciAkIGluIEJ8fChCPXt9KSl0bi5jYWxsKEIsJCkmJmh0KEYsJCxCWyRdKTtpZihCZSlmb3IodmFyICQgb2YgQmUoQikpbm4uY2FsbChCLCQpJiZodChGLCQsQlskXSk7cmV0dXJuIEZ9LCRlPShGLEIpPT5WcihGLHFyKEIpKTt2YXIgZ2U9KEYsQik9Pnt2YXIgJD17fTtmb3IodmFyIGVlIGluIEYpdG4uY2FsbChGLGVlKSYmQi5pbmRleE9mKGVlKTwwJiYoJFtlZV09RltlZV0pO2lmKEYhPW51bGwmJkJlKWZvcih2YXIgZWUgb2YgQmUoRikpQi5pbmRleE9mKGVlKTwwJiZubi5jYWxsKEYsZWUpJiYoJFtlZV09RltlZV0pO3JldHVybiAkfTt2YXIgZnQ9KEYsQiwkKT0+aHQoRix0eXBlb2YgQiE9InN5bWJvbCI/QisiIjpCLCQpO3ZhciBKPShGLEIsJCk9Pm5ldyBQcm9taXNlKChlZSxPZSk9Pnt2YXIgVWU9c2U9Pnt0cnl7RWUoJC5uZXh0KHNlKSl9Y2F0Y2goX2Upe09lKF9lKX19LGxlPXNlPT57dHJ5e0VlKCQudGhyb3coc2UpKX1jYXRjaChfZSl7T2UoX2UpfX0sRWU9c2U9PnNlLmRvbmU/ZWUoc2UudmFsdWUpOlByb21pc2UucmVzb2x2ZShzZS52YWx1ZSkudGhlbihVZSxsZSk7RWUoKCQ9JC5hcHBseShGLEIpKS5uZXh0KCkpfSk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IEY9SlNPTixCPWU9PmUudG9VcHBlckNhc2UoKSwkPWU9Pntjb25zdCB0PXt9O3JldHVybiBlLmZvckVhY2goKG4saSk9Pnt0W2ldPW59KSx0fSxlZT0oZSx0LG4pPT5lLmRvY3VtZW50P2U6e2RvY3VtZW50OmUsdmFyaWFibGVzOnQscmVxdWVzdEhlYWRlcnM6bixzaWduYWw6dm9pZCAwfSxPZT0oZSx0LG4pPT5lLnF1ZXJ5P2U6e3F1ZXJ5OmUsdmFyaWFibGVzOnQscmVxdWVzdEhlYWRlcnM6bixzaWduYWw6dm9pZCAwfSxVZT0oZSx0KT0+ZS5kb2N1bWVudHM/ZTp7ZG9jdW1lbnRzOmUscmVxdWVzdEhlYWRlcnM6dCxzaWduYWw6dm9pZCAwfTtmdW5jdGlvbiBsZShlLHQpe2lmKCEhIWUpdGhyb3cgbmV3IEVycm9yKHQpfWZ1bmN0aW9uIEVlKGUpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsfWZ1bmN0aW9uIHNlKGUsdCl7aWYoISEhZSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW52YXJpYW50IHRyaWdnZXJlZC4iKX1jb25zdCBfZT0vXHJcbnxbXG5ccl0vZztmdW5jdGlvbiBWZShlLHQpe2xldCBuPTAsaT0xO2Zvcihjb25zdCByIG9mIGUuYm9keS5tYXRjaEFsbChfZSkpe2lmKHR5cGVvZiByLmluZGV4PT0ibnVtYmVyInx8c2UoITEpLHIuaW5kZXg+PXQpYnJlYWs7bj1yLmluZGV4K3JbMF0ubGVuZ3RoLGkrPTF9cmV0dXJue2xpbmU6aSxjb2x1bW46dCsxLW59fWZ1bmN0aW9uIHJuKGUpe3JldHVybiBkdChlLnNvdXJjZSxWZShlLnNvdXJjZSxlLnN0YXJ0KSl9ZnVuY3Rpb24gZHQoZSx0KXtjb25zdCBuPWUubG9jYXRpb25PZmZzZXQuY29sdW1uLTEsaT0iIi5wYWRTdGFydChuKStlLmJvZHkscj10LmxpbmUtMSxzPWUubG9jYXRpb25PZmZzZXQubGluZS0xLG89dC5saW5lK3MsYz10LmxpbmU9PT0xP246MCxoPXQuY29sdW1uK2MsZD1gJHtlLm5hbWV9OiR7b306JHtofQpgLHU9aS5zcGxpdCgvXHJcbnxbXG5ccl0vZykseT11W3JdO2lmKHkubGVuZ3RoPjEyMCl7Y29uc3QgZz1NYXRoLmZsb29yKGgvODApLGI9aCU4MCxtPVtdO2ZvcihsZXQgTj0wO048eS5sZW5ndGg7Tis9ODApbS5wdXNoKHkuc2xpY2UoTixOKzgwKSk7cmV0dXJuIGQrcHQoW1tgJHtvfSB8YCxtWzBdXSwuLi5tLnNsaWNlKDEsZysxKS5tYXAoTj0+WyJ8IixOXSksWyJ8IiwiXiIucGFkU3RhcnQoYildLFsifCIsbVtnKzFdXV0pfXJldHVybiBkK3B0KFtbYCR7by0xfSB8YCx1W3ItMV1dLFtgJHtvfSB8YCx5XSxbInwiLCJeIi5wYWRTdGFydChoKV0sW2Ake28rMX0gfGAsdVtyKzFdXV0pfWZ1bmN0aW9uIHB0KGUpe2NvbnN0IHQ9ZS5maWx0ZXIoKFtpLHJdKT0+ciE9PXZvaWQgMCksbj1NYXRoLm1heCguLi50Lm1hcCgoW2ldKT0+aS5sZW5ndGgpKTtyZXR1cm4gdC5tYXAoKFtpLHJdKT0+aS5wYWRTdGFydChuKSsocj8iICIrcjoiIikpLmpvaW4oYApgKX1mdW5jdGlvbiBzbihlKXtjb25zdCB0PWVbMF07cmV0dXJuIHQ9PW51bGx8fCJraW5kImluIHR8fCJsZW5ndGgiaW4gdD97bm9kZXM6dCxzb3VyY2U6ZVsxXSxwb3NpdGlvbnM6ZVsyXSxwYXRoOmVbM10sb3JpZ2luYWxFcnJvcjplWzRdLGV4dGVuc2lvbnM6ZVs1XX06dH1jbGFzcyBxZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQsLi4ubil7dmFyIGkscixzO2NvbnN0e25vZGVzOm8sc291cmNlOmMscG9zaXRpb25zOmgscGF0aDpkLG9yaWdpbmFsRXJyb3I6dSxleHRlbnNpb25zOnl9PXNuKG4pO3N1cGVyKHQpLHRoaXMubmFtZT0iR3JhcGhRTEVycm9yIix0aGlzLnBhdGg9ZCE9bnVsbD9kOnZvaWQgMCx0aGlzLm9yaWdpbmFsRXJyb3I9dSE9bnVsbD91OnZvaWQgMCx0aGlzLm5vZGVzPW10KEFycmF5LmlzQXJyYXkobyk/bzpvP1tvXTp2b2lkIDApO2NvbnN0IGc9bXQoKGk9dGhpcy5ub2Rlcyk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm1hcChtPT5tLmxvYykuZmlsdGVyKG09Pm0hPW51bGwpKTt0aGlzLnNvdXJjZT1jIT1udWxsP2M6Zz09bnVsbHx8KHI9Z1swXSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLnNvdXJjZSx0aGlzLnBvc2l0aW9ucz1oIT1udWxsP2g6Zz09bnVsbD92b2lkIDA6Zy5tYXAobT0+bS5zdGFydCksdGhpcy5sb2NhdGlvbnM9aCYmYz9oLm1hcChtPT5WZShjLG0pKTpnPT1udWxsP3ZvaWQgMDpnLm1hcChtPT5WZShtLnNvdXJjZSxtLnN0YXJ0KSk7Y29uc3QgYj1FZSh1PT1udWxsP3ZvaWQgMDp1LmV4dGVuc2lvbnMpP3U9PW51bGw/dm9pZCAwOnUuZXh0ZW5zaW9uczp2b2lkIDA7dGhpcy5leHRlbnNpb25zPShzPXkhPW51bGw/eTpiKSE9PW51bGwmJnMhPT12b2lkIDA/czpPYmplY3QuY3JlYXRlKG51bGwpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse21lc3NhZ2U6e3dyaXRhYmxlOiEwLGVudW1lcmFibGU6ITB9LG5hbWU6e2VudW1lcmFibGU6ITF9LG5vZGVzOntlbnVtZXJhYmxlOiExfSxzb3VyY2U6e2VudW1lcmFibGU6ITF9LHBvc2l0aW9uczp7ZW51bWVyYWJsZTohMX0sb3JpZ2luYWxFcnJvcjp7ZW51bWVyYWJsZTohMX19KSx1IT1udWxsJiZ1LnN0YWNrP09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJzdGFjayIse3ZhbHVlOnUuc3RhY2ssd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk6RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxxZSk6T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInN0YWNrIix7dmFsdWU6RXJyb3IoKS5zdGFjayx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJHcmFwaFFMRXJyb3IifXRvU3RyaW5nKCl7bGV0IHQ9dGhpcy5tZXNzYWdlO2lmKHRoaXMubm9kZXMpZm9yKGNvbnN0IG4gb2YgdGhpcy5ub2RlcyluLmxvYyYmKHQrPWAKCmArcm4obi5sb2MpKTtlbHNlIGlmKHRoaXMuc291cmNlJiZ0aGlzLmxvY2F0aW9ucylmb3IoY29uc3QgbiBvZiB0aGlzLmxvY2F0aW9ucyl0Kz1gCgpgK2R0KHRoaXMuc291cmNlLG4pO3JldHVybiB0fXRvSlNPTigpe2NvbnN0IHQ9e21lc3NhZ2U6dGhpcy5tZXNzYWdlfTtyZXR1cm4gdGhpcy5sb2NhdGlvbnMhPW51bGwmJih0LmxvY2F0aW9ucz10aGlzLmxvY2F0aW9ucyksdGhpcy5wYXRoIT1udWxsJiYodC5wYXRoPXRoaXMucGF0aCksdGhpcy5leHRlbnNpb25zIT1udWxsJiZPYmplY3Qua2V5cyh0aGlzLmV4dGVuc2lvbnMpLmxlbmd0aD4wJiYodC5leHRlbnNpb25zPXRoaXMuZXh0ZW5zaW9ucyksdH19ZnVuY3Rpb24gbXQoZSl7cmV0dXJuIGU9PT12b2lkIDB8fGUubGVuZ3RoPT09MD92b2lkIDA6ZX1mdW5jdGlvbiBHKGUsdCxuKXtyZXR1cm4gbmV3IHFlKGBTeW50YXggRXJyb3I6ICR7bn1gLHtzb3VyY2U6ZSxwb3NpdGlvbnM6W3RdfSl9Y2xhc3Mgb257Y29uc3RydWN0b3IodCxuLGkpe3RoaXMuc3RhcnQ9dC5zdGFydCx0aGlzLmVuZD1uLmVuZCx0aGlzLnN0YXJ0VG9rZW49dCx0aGlzLmVuZFRva2VuPW4sdGhpcy5zb3VyY2U9aX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJMb2NhdGlvbiJ9dG9KU09OKCl7cmV0dXJue3N0YXJ0OnRoaXMuc3RhcnQsZW5kOnRoaXMuZW5kfX19Y2xhc3MgeXR7Y29uc3RydWN0b3IodCxuLGkscixzLG8pe3RoaXMua2luZD10LHRoaXMuc3RhcnQ9bix0aGlzLmVuZD1pLHRoaXMubGluZT1yLHRoaXMuY29sdW1uPXMsdGhpcy52YWx1ZT1vLHRoaXMucHJldj1udWxsLHRoaXMubmV4dD1udWxsfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIlRva2VuIn10b0pTT04oKXtyZXR1cm57a2luZDp0aGlzLmtpbmQsdmFsdWU6dGhpcy52YWx1ZSxsaW5lOnRoaXMubGluZSxjb2x1bW46dGhpcy5jb2x1bW59fX1jb25zdCB2dD17TmFtZTpbXSxEb2N1bWVudDpbImRlZmluaXRpb25zIl0sT3BlcmF0aW9uRGVmaW5pdGlvbjpbIm5hbWUiLCJ2YXJpYWJsZURlZmluaXRpb25zIiwiZGlyZWN0aXZlcyIsInNlbGVjdGlvblNldCJdLFZhcmlhYmxlRGVmaW5pdGlvbjpbInZhcmlhYmxlIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImRpcmVjdGl2ZXMiXSxWYXJpYWJsZTpbIm5hbWUiXSxTZWxlY3Rpb25TZXQ6WyJzZWxlY3Rpb25zIl0sRmllbGQ6WyJhbGlhcyIsIm5hbWUiLCJhcmd1bWVudHMiLCJkaXJlY3RpdmVzIiwic2VsZWN0aW9uU2V0Il0sQXJndW1lbnQ6WyJuYW1lIiwidmFsdWUiXSxGcmFnbWVudFNwcmVhZDpbIm5hbWUiLCJkaXJlY3RpdmVzIl0sSW5saW5lRnJhZ21lbnQ6WyJ0eXBlQ29uZGl0aW9uIiwiZGlyZWN0aXZlcyIsInNlbGVjdGlvblNldCJdLEZyYWdtZW50RGVmaW5pdGlvbjpbIm5hbWUiLCJ2YXJpYWJsZURlZmluaXRpb25zIiwidHlwZUNvbmRpdGlvbiIsImRpcmVjdGl2ZXMiLCJzZWxlY3Rpb25TZXQiXSxJbnRWYWx1ZTpbXSxGbG9hdFZhbHVlOltdLFN0cmluZ1ZhbHVlOltdLEJvb2xlYW5WYWx1ZTpbXSxOdWxsVmFsdWU6W10sRW51bVZhbHVlOltdLExpc3RWYWx1ZTpbInZhbHVlcyJdLE9iamVjdFZhbHVlOlsiZmllbGRzIl0sT2JqZWN0RmllbGQ6WyJuYW1lIiwidmFsdWUiXSxEaXJlY3RpdmU6WyJuYW1lIiwiYXJndW1lbnRzIl0sTmFtZWRUeXBlOlsibmFtZSJdLExpc3RUeXBlOlsidHlwZSJdLE5vbk51bGxUeXBlOlsidHlwZSJdLFNjaGVtYURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsImRpcmVjdGl2ZXMiLCJvcGVyYXRpb25UeXBlcyJdLE9wZXJhdGlvblR5cGVEZWZpbml0aW9uOlsidHlwZSJdLFNjYWxhclR5cGVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiZGlyZWN0aXZlcyJdLE9iamVjdFR5cGVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiaW50ZXJmYWNlcyIsImRpcmVjdGl2ZXMiLCJmaWVsZHMiXSxGaWVsZERlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJhcmd1bWVudHMiLCJ0eXBlIiwiZGlyZWN0aXZlcyJdLElucHV0VmFsdWVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImRpcmVjdGl2ZXMiXSxJbnRlcmZhY2VUeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImludGVyZmFjZXMiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sVW5pb25UeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImRpcmVjdGl2ZXMiLCJ0eXBlcyJdLEVudW1UeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImRpcmVjdGl2ZXMiLCJ2YWx1ZXMiXSxFbnVtVmFsdWVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiZGlyZWN0aXZlcyJdLElucHV0T2JqZWN0VHlwZURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sRGlyZWN0aXZlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImFyZ3VtZW50cyIsImxvY2F0aW9ucyJdLFNjaGVtYUV4dGVuc2lvbjpbImRpcmVjdGl2ZXMiLCJvcGVyYXRpb25UeXBlcyJdLFNjYWxhclR5cGVFeHRlbnNpb246WyJuYW1lIiwiZGlyZWN0aXZlcyJdLE9iamVjdFR5cGVFeHRlbnNpb246WyJuYW1lIiwiaW50ZXJmYWNlcyIsImRpcmVjdGl2ZXMiLCJmaWVsZHMiXSxJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uOlsibmFtZSIsImludGVyZmFjZXMiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sVW5pb25UeXBlRXh0ZW5zaW9uOlsibmFtZSIsImRpcmVjdGl2ZXMiLCJ0eXBlcyJdLEVudW1UeXBlRXh0ZW5zaW9uOlsibmFtZSIsImRpcmVjdGl2ZXMiLCJ2YWx1ZXMiXSxJbnB1dE9iamVjdFR5cGVFeHRlbnNpb246WyJuYW1lIiwiZGlyZWN0aXZlcyIsImZpZWxkcyJdfSxhbj1uZXcgU2V0KE9iamVjdC5rZXlzKHZ0KSk7ZnVuY3Rpb24gZ3QoZSl7Y29uc3QgdD1lPT1udWxsP3ZvaWQgMDplLmtpbmQ7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIiYmYW4uaGFzKHQpfXZhciBoZTsoZnVuY3Rpb24oZSl7ZS5RVUVSWT0icXVlcnkiLGUuTVVUQVRJT049Im11dGF0aW9uIixlLlNVQlNDUklQVElPTj0ic3Vic2NyaXB0aW9uIn0pKGhlfHwoaGU9e30pKTt2YXIgamU7KGZ1bmN0aW9uKGUpe2UuUVVFUlk9IlFVRVJZIixlLk1VVEFUSU9OPSJNVVRBVElPTiIsZS5TVUJTQ1JJUFRJT049IlNVQlNDUklQVElPTiIsZS5GSUVMRD0iRklFTEQiLGUuRlJBR01FTlRfREVGSU5JVElPTj0iRlJBR01FTlRfREVGSU5JVElPTiIsZS5GUkFHTUVOVF9TUFJFQUQ9IkZSQUdNRU5UX1NQUkVBRCIsZS5JTkxJTkVfRlJBR01FTlQ9IklOTElORV9GUkFHTUVOVCIsZS5WQVJJQUJMRV9ERUZJTklUSU9OPSJWQVJJQUJMRV9ERUZJTklUSU9OIixlLlNDSEVNQT0iU0NIRU1BIixlLlNDQUxBUj0iU0NBTEFSIixlLk9CSkVDVD0iT0JKRUNUIixlLkZJRUxEX0RFRklOSVRJT049IkZJRUxEX0RFRklOSVRJT04iLGUuQVJHVU1FTlRfREVGSU5JVElPTj0iQVJHVU1FTlRfREVGSU5JVElPTiIsZS5JTlRFUkZBQ0U9IklOVEVSRkFDRSIsZS5VTklPTj0iVU5JT04iLGUuRU5VTT0iRU5VTSIsZS5FTlVNX1ZBTFVFPSJFTlVNX1ZBTFVFIixlLklOUFVUX09CSkVDVD0iSU5QVVRfT0JKRUNUIixlLklOUFVUX0ZJRUxEX0RFRklOSVRJT049IklOUFVUX0ZJRUxEX0RFRklOSVRJT04ifSkoamV8fChqZT17fSkpO3ZhciBUOyhmdW5jdGlvbihlKXtlLk5BTUU9Ik5hbWUiLGUuRE9DVU1FTlQ9IkRvY3VtZW50IixlLk9QRVJBVElPTl9ERUZJTklUSU9OPSJPcGVyYXRpb25EZWZpbml0aW9uIixlLlZBUklBQkxFX0RFRklOSVRJT049IlZhcmlhYmxlRGVmaW5pdGlvbiIsZS5TRUxFQ1RJT05fU0VUPSJTZWxlY3Rpb25TZXQiLGUuRklFTEQ9IkZpZWxkIixlLkFSR1VNRU5UPSJBcmd1bWVudCIsZS5GUkFHTUVOVF9TUFJFQUQ9IkZyYWdtZW50U3ByZWFkIixlLklOTElORV9GUkFHTUVOVD0iSW5saW5lRnJhZ21lbnQiLGUuRlJBR01FTlRfREVGSU5JVElPTj0iRnJhZ21lbnREZWZpbml0aW9uIixlLlZBUklBQkxFPSJWYXJpYWJsZSIsZS5JTlQ9IkludFZhbHVlIixlLkZMT0FUPSJGbG9hdFZhbHVlIixlLlNUUklORz0iU3RyaW5nVmFsdWUiLGUuQk9PTEVBTj0iQm9vbGVhblZhbHVlIixlLk5VTEw9Ik51bGxWYWx1ZSIsZS5FTlVNPSJFbnVtVmFsdWUiLGUuTElTVD0iTGlzdFZhbHVlIixlLk9CSkVDVD0iT2JqZWN0VmFsdWUiLGUuT0JKRUNUX0ZJRUxEPSJPYmplY3RGaWVsZCIsZS5ESVJFQ1RJVkU9IkRpcmVjdGl2ZSIsZS5OQU1FRF9UWVBFPSJOYW1lZFR5cGUiLGUuTElTVF9UWVBFPSJMaXN0VHlwZSIsZS5OT05fTlVMTF9UWVBFPSJOb25OdWxsVHlwZSIsZS5TQ0hFTUFfREVGSU5JVElPTj0iU2NoZW1hRGVmaW5pdGlvbiIsZS5PUEVSQVRJT05fVFlQRV9ERUZJTklUSU9OPSJPcGVyYXRpb25UeXBlRGVmaW5pdGlvbiIsZS5TQ0FMQVJfVFlQRV9ERUZJTklUSU9OPSJTY2FsYXJUeXBlRGVmaW5pdGlvbiIsZS5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OPSJPYmplY3RUeXBlRGVmaW5pdGlvbiIsZS5GSUVMRF9ERUZJTklUSU9OPSJGaWVsZERlZmluaXRpb24iLGUuSU5QVVRfVkFMVUVfREVGSU5JVElPTj0iSW5wdXRWYWx1ZURlZmluaXRpb24iLGUuSU5URVJGQUNFX1RZUEVfREVGSU5JVElPTj0iSW50ZXJmYWNlVHlwZURlZmluaXRpb24iLGUuVU5JT05fVFlQRV9ERUZJTklUSU9OPSJVbmlvblR5cGVEZWZpbml0aW9uIixlLkVOVU1fVFlQRV9ERUZJTklUSU9OPSJFbnVtVHlwZURlZmluaXRpb24iLGUuRU5VTV9WQUxVRV9ERUZJTklUSU9OPSJFbnVtVmFsdWVEZWZpbml0aW9uIixlLklOUFVUX09CSkVDVF9UWVBFX0RFRklOSVRJT049IklucHV0T2JqZWN0VHlwZURlZmluaXRpb24iLGUuRElSRUNUSVZFX0RFRklOSVRJT049IkRpcmVjdGl2ZURlZmluaXRpb24iLGUuU0NIRU1BX0VYVEVOU0lPTj0iU2NoZW1hRXh0ZW5zaW9uIixlLlNDQUxBUl9UWVBFX0VYVEVOU0lPTj0iU2NhbGFyVHlwZUV4dGVuc2lvbiIsZS5PQkpFQ1RfVFlQRV9FWFRFTlNJT049Ik9iamVjdFR5cGVFeHRlbnNpb24iLGUuSU5URVJGQUNFX1RZUEVfRVhURU5TSU9OPSJJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uIixlLlVOSU9OX1RZUEVfRVhURU5TSU9OPSJVbmlvblR5cGVFeHRlbnNpb24iLGUuRU5VTV9UWVBFX0VYVEVOU0lPTj0iRW51bVR5cGVFeHRlbnNpb24iLGUuSU5QVVRfT0JKRUNUX1RZUEVfRVhURU5TSU9OPSJJbnB1dE9iamVjdFR5cGVFeHRlbnNpb24ifSkoVHx8KFQ9e30pKTtmdW5jdGlvbiBHZShlKXtyZXR1cm4gZT09PTl8fGU9PT0zMn1mdW5jdGlvbiBUZShlKXtyZXR1cm4gZT49NDgmJmU8PTU3fWZ1bmN0aW9uIEV0KGUpe3JldHVybiBlPj05NyYmZTw9MTIyfHxlPj02NSYmZTw9OTB9ZnVuY3Rpb24gX3QoZSl7cmV0dXJuIEV0KGUpfHxlPT09OTV9ZnVuY3Rpb24gY24oZSl7cmV0dXJuIEV0KGUpfHxUZShlKXx8ZT09PTk1fWZ1bmN0aW9uIHVuKGUpe3ZhciB0O2xldCBuPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLGk9bnVsbCxyPS0xO2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7KytvKXt2YXIgcztjb25zdCBjPWVbb10saD1sbihjKTtoIT09Yy5sZW5ndGgmJihpPShzPWkpIT09bnVsbCYmcyE9PXZvaWQgMD9zOm8scj1vLG8hPT0wJiZoPG4mJihuPWgpKX1yZXR1cm4gZS5tYXAoKG8sYyk9PmM9PT0wP286by5zbGljZShuKSkuc2xpY2UoKHQ9aSkhPT1udWxsJiZ0IT09dm9pZCAwP3Q6MCxyKzEpfWZ1bmN0aW9uIGxuKGUpe2xldCB0PTA7Zm9yKDt0PGUubGVuZ3RoJiZHZShlLmNoYXJDb2RlQXQodCkpOykrK3Q7cmV0dXJuIHR9ZnVuY3Rpb24gaG4oZSx0KXtjb25zdCBuPWUucmVwbGFjZSgvIiIiL2csJ1xcIiIiJyksaT1uLnNwbGl0KC9cclxufFtcblxyXS9nKSxyPWkubGVuZ3RoPT09MSxzPWkubGVuZ3RoPjEmJmkuc2xpY2UoMSkuZXZlcnkoYj0+Yi5sZW5ndGg9PT0wfHxHZShiLmNoYXJDb2RlQXQoMCkpKSxvPW4uZW5kc1dpdGgoJ1xcIiIiJyksYz1lLmVuZHNXaXRoKCciJykmJiFvLGg9ZS5lbmRzV2l0aCgiXFwiKSxkPWN8fGgsdT0hcnx8ZS5sZW5ndGg+NzB8fGR8fHN8fG87bGV0IHk9IiI7Y29uc3QgZz1yJiZHZShlLmNoYXJDb2RlQXQoMCkpO3JldHVybih1JiYhZ3x8cykmJih5Kz1gCmApLHkrPW4sKHV8fGQpJiYoeSs9YApgKSwnIiIiJyt5KyciIiInfXZhciBsOyhmdW5jdGlvbihlKXtlLlNPRj0iPFNPRj4iLGUuRU9GPSI8RU9GPiIsZS5CQU5HPSIhIixlLkRPTExBUj0iJCIsZS5BTVA9IiYiLGUuUEFSRU5fTD0iKCIsZS5QQVJFTl9SPSIpIixlLlNQUkVBRD0iLi4uIixlLkNPTE9OPSI6IixlLkVRVUFMUz0iPSIsZS5BVD0iQCIsZS5CUkFDS0VUX0w9IlsiLGUuQlJBQ0tFVF9SPSJdIixlLkJSQUNFX0w9InsiLGUuUElQRT0ifCIsZS5CUkFDRV9SPSJ9IixlLk5BTUU9Ik5hbWUiLGUuSU5UPSJJbnQiLGUuRkxPQVQ9IkZsb2F0IixlLlNUUklORz0iU3RyaW5nIixlLkJMT0NLX1NUUklORz0iQmxvY2tTdHJpbmciLGUuQ09NTUVOVD0iQ29tbWVudCJ9KShsfHwobD17fSkpO2NsYXNzIGZue2NvbnN0cnVjdG9yKHQpe2NvbnN0IG49bmV3IHl0KGwuU09GLDAsMCwwLDApO3RoaXMuc291cmNlPXQsdGhpcy5sYXN0VG9rZW49bix0aGlzLnRva2VuPW4sdGhpcy5saW5lPTEsdGhpcy5saW5lU3RhcnQ9MH1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJMZXhlciJ9YWR2YW5jZSgpe3JldHVybiB0aGlzLmxhc3RUb2tlbj10aGlzLnRva2VuLHRoaXMudG9rZW49dGhpcy5sb29rYWhlYWQoKX1sb29rYWhlYWQoKXtsZXQgdD10aGlzLnRva2VuO2lmKHQua2luZCE9PWwuRU9GKWRvIGlmKHQubmV4dCl0PXQubmV4dDtlbHNle2NvbnN0IG49cG4odGhpcyx0LmVuZCk7dC5uZXh0PW4sbi5wcmV2PXQsdD1ufXdoaWxlKHQua2luZD09PWwuQ09NTUVOVCk7cmV0dXJuIHR9fWZ1bmN0aW9uIGRuKGUpe3JldHVybiBlPT09bC5CQU5HfHxlPT09bC5ET0xMQVJ8fGU9PT1sLkFNUHx8ZT09PWwuUEFSRU5fTHx8ZT09PWwuUEFSRU5fUnx8ZT09PWwuU1BSRUFEfHxlPT09bC5DT0xPTnx8ZT09PWwuRVFVQUxTfHxlPT09bC5BVHx8ZT09PWwuQlJBQ0tFVF9MfHxlPT09bC5CUkFDS0VUX1J8fGU9PT1sLkJSQUNFX0x8fGU9PT1sLlBJUEV8fGU9PT1sLkJSQUNFX1J9ZnVuY3Rpb24gZmUoZSl7cmV0dXJuIGU+PTAmJmU8PTU1Mjk1fHxlPj01NzM0NCYmZTw9MTExNDExMX1mdW5jdGlvbiB3ZShlLHQpe3JldHVybiBUdChlLmNoYXJDb2RlQXQodCkpJiZidChlLmNoYXJDb2RlQXQodCsxKSl9ZnVuY3Rpb24gVHQoZSl7cmV0dXJuIGU+PTU1Mjk2JiZlPD01NjMxOX1mdW5jdGlvbiBidChlKXtyZXR1cm4gZT49NTYzMjAmJmU8PTU3MzQzfWZ1bmN0aW9uIGNlKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LmNvZGVQb2ludEF0KHQpO2lmKG49PT12b2lkIDApcmV0dXJuIGwuRU9GO2lmKG4+PTMyJiZuPD0xMjYpe2NvbnN0IGk9U3RyaW5nLmZyb21Db2RlUG9pbnQobik7cmV0dXJuIGk9PT0nIic/YCciJ2A6YCIke2l9ImB9cmV0dXJuIlUrIituLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnBhZFN0YXJ0KDQsIjAiKX1mdW5jdGlvbiBVKGUsdCxuLGkscil7Y29uc3Qgcz1lLmxpbmUsbz0xK24tZS5saW5lU3RhcnQ7cmV0dXJuIG5ldyB5dCh0LG4saSxzLG8scil9ZnVuY3Rpb24gcG4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10O2Zvcig7cjxpOyl7Y29uc3Qgcz1uLmNoYXJDb2RlQXQocik7c3dpdGNoKHMpe2Nhc2UgNjUyNzk6Y2FzZSA5OmNhc2UgMzI6Y2FzZSA0NDorK3I7Y29udGludWU7Y2FzZSAxMDorK3IsKytlLmxpbmUsZS5saW5lU3RhcnQ9cjtjb250aW51ZTtjYXNlIDEzOm4uY2hhckNvZGVBdChyKzEpPT09MTA/cis9MjorK3IsKytlLmxpbmUsZS5saW5lU3RhcnQ9cjtjb250aW51ZTtjYXNlIDM1OnJldHVybiBtbihlLHIpO2Nhc2UgMzM6cmV0dXJuIFUoZSxsLkJBTkcscixyKzEpO2Nhc2UgMzY6cmV0dXJuIFUoZSxsLkRPTExBUixyLHIrMSk7Y2FzZSAzODpyZXR1cm4gVShlLGwuQU1QLHIscisxKTtjYXNlIDQwOnJldHVybiBVKGUsbC5QQVJFTl9MLHIscisxKTtjYXNlIDQxOnJldHVybiBVKGUsbC5QQVJFTl9SLHIscisxKTtjYXNlIDQ2OmlmKG4uY2hhckNvZGVBdChyKzEpPT09NDYmJm4uY2hhckNvZGVBdChyKzIpPT09NDYpcmV0dXJuIFUoZSxsLlNQUkVBRCxyLHIrMyk7YnJlYWs7Y2FzZSA1ODpyZXR1cm4gVShlLGwuQ09MT04scixyKzEpO2Nhc2UgNjE6cmV0dXJuIFUoZSxsLkVRVUFMUyxyLHIrMSk7Y2FzZSA2NDpyZXR1cm4gVShlLGwuQVQscixyKzEpO2Nhc2UgOTE6cmV0dXJuIFUoZSxsLkJSQUNLRVRfTCxyLHIrMSk7Y2FzZSA5MzpyZXR1cm4gVShlLGwuQlJBQ0tFVF9SLHIscisxKTtjYXNlIDEyMzpyZXR1cm4gVShlLGwuQlJBQ0VfTCxyLHIrMSk7Y2FzZSAxMjQ6cmV0dXJuIFUoZSxsLlBJUEUscixyKzEpO2Nhc2UgMTI1OnJldHVybiBVKGUsbC5CUkFDRV9SLHIscisxKTtjYXNlIDM0OnJldHVybiBuLmNoYXJDb2RlQXQocisxKT09PTM0JiZuLmNoYXJDb2RlQXQocisyKT09PTM0P1RuKGUscik6dm4oZSxyKX1pZihUZShzKXx8cz09PTQ1KXJldHVybiB5bihlLHIscyk7aWYoX3QocykpcmV0dXJuIGJuKGUscik7dGhyb3cgRyhlLnNvdXJjZSxyLHM9PT0zOT9gVW5leHBlY3RlZCBzaW5nbGUgcXVvdGUgY2hhcmFjdGVyICgnKSwgZGlkIHlvdSBtZWFuIHRvIHVzZSBhIGRvdWJsZSBxdW90ZSAoIik/YDpmZShzKXx8d2UobixyKT9gVW5leHBlY3RlZCBjaGFyYWN0ZXI6ICR7Y2UoZSxyKX0uYDpgSW52YWxpZCBjaGFyYWN0ZXI6ICR7Y2UoZSxyKX0uYCl9cmV0dXJuIFUoZSxsLkVPRixpLGkpfWZ1bmN0aW9uIG1uKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LGk9bi5sZW5ndGg7bGV0IHI9dCsxO2Zvcig7cjxpOyl7Y29uc3Qgcz1uLmNoYXJDb2RlQXQocik7aWYocz09PTEwfHxzPT09MTMpYnJlYWs7aWYoZmUocykpKytyO2Vsc2UgaWYod2UobixyKSlyKz0yO2Vsc2UgYnJlYWt9cmV0dXJuIFUoZSxsLkNPTU1FTlQsdCxyLG4uc2xpY2UodCsxLHIpKX1mdW5jdGlvbiB5bihlLHQsbil7Y29uc3QgaT1lLnNvdXJjZS5ib2R5O2xldCByPXQscz1uLG89ITE7aWYocz09PTQ1JiYocz1pLmNoYXJDb2RlQXQoKytyKSkscz09PTQ4KXtpZihzPWkuY2hhckNvZGVBdCgrK3IpLFRlKHMpKXRocm93IEcoZS5zb3VyY2UscixgSW52YWxpZCBudW1iZXIsIHVuZXhwZWN0ZWQgZGlnaXQgYWZ0ZXIgMDogJHtjZShlLHIpfS5gKX1lbHNlIHI9emUoZSxyLHMpLHM9aS5jaGFyQ29kZUF0KHIpO2lmKHM9PT00NiYmKG89ITAscz1pLmNoYXJDb2RlQXQoKytyKSxyPXplKGUscixzKSxzPWkuY2hhckNvZGVBdChyKSksKHM9PT02OXx8cz09PTEwMSkmJihvPSEwLHM9aS5jaGFyQ29kZUF0KCsrciksKHM9PT00M3x8cz09PTQ1KSYmKHM9aS5jaGFyQ29kZUF0KCsrcikpLHI9emUoZSxyLHMpLHM9aS5jaGFyQ29kZUF0KHIpKSxzPT09NDZ8fF90KHMpKXRocm93IEcoZS5zb3VyY2UscixgSW52YWxpZCBudW1iZXIsIGV4cGVjdGVkIGRpZ2l0IGJ1dCBnb3Q6ICR7Y2UoZSxyKX0uYCk7cmV0dXJuIFUoZSxvP2wuRkxPQVQ6bC5JTlQsdCxyLGkuc2xpY2UodCxyKSl9ZnVuY3Rpb24gemUoZSx0LG4pe2lmKCFUZShuKSl0aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgbnVtYmVyLCBleHBlY3RlZCBkaWdpdCBidXQgZ290OiAke2NlKGUsdCl9LmApO2NvbnN0IGk9ZS5zb3VyY2UuYm9keTtsZXQgcj10KzE7Zm9yKDtUZShpLmNoYXJDb2RlQXQocikpOykrK3I7cmV0dXJuIHJ9ZnVuY3Rpb24gdm4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10KzEscz1yLG89IiI7Zm9yKDtyPGk7KXtjb25zdCBjPW4uY2hhckNvZGVBdChyKTtpZihjPT09MzQpcmV0dXJuIG8rPW4uc2xpY2UocyxyKSxVKGUsbC5TVFJJTkcsdCxyKzEsbyk7aWYoYz09PTkyKXtvKz1uLnNsaWNlKHMscik7Y29uc3QgaD1uLmNoYXJDb2RlQXQocisxKT09PTExNz9uLmNoYXJDb2RlQXQocisyKT09PTEyMz9nbihlLHIpOkVuKGUscik6X24oZSxyKTtvKz1oLnZhbHVlLHIrPWguc2l6ZSxzPXI7Y29udGludWV9aWYoYz09PTEwfHxjPT09MTMpYnJlYWs7aWYoZmUoYykpKytyO2Vsc2UgaWYod2UobixyKSlyKz0yO2Vsc2UgdGhyb3cgRyhlLnNvdXJjZSxyLGBJbnZhbGlkIGNoYXJhY3RlciB3aXRoaW4gU3RyaW5nOiAke2NlKGUscil9LmApfXRocm93IEcoZS5zb3VyY2UsciwiVW50ZXJtaW5hdGVkIHN0cmluZy4iKX1mdW5jdGlvbiBnbihlLHQpe2NvbnN0IG49ZS5zb3VyY2UuYm9keTtsZXQgaT0wLHI9Mztmb3IoO3I8MTI7KXtjb25zdCBzPW4uY2hhckNvZGVBdCh0K3IrKyk7aWYocz09PTEyNSl7aWYocjw1fHwhZmUoaSkpYnJlYWs7cmV0dXJue3ZhbHVlOlN0cmluZy5mcm9tQ29kZVBvaW50KGkpLHNpemU6cn19aWYoaT1pPDw0fGJlKHMpLGk8MClicmVha310aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0K3IpfSIuYCl9ZnVuY3Rpb24gRW4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1OdChuLHQrMik7aWYoZmUoaSkpcmV0dXJue3ZhbHVlOlN0cmluZy5mcm9tQ29kZVBvaW50KGkpLHNpemU6Nn07aWYoVHQoaSkmJm4uY2hhckNvZGVBdCh0KzYpPT09OTImJm4uY2hhckNvZGVBdCh0KzcpPT09MTE3KXtjb25zdCByPU50KG4sdCs4KTtpZihidChyKSlyZXR1cm57dmFsdWU6U3RyaW5nLmZyb21Db2RlUG9pbnQoaSxyKSxzaXplOjEyfX10aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0KzYpfSIuYCl9ZnVuY3Rpb24gTnQoZSx0KXtyZXR1cm4gYmUoZS5jaGFyQ29kZUF0KHQpKTw8MTJ8YmUoZS5jaGFyQ29kZUF0KHQrMSkpPDw4fGJlKGUuY2hhckNvZGVBdCh0KzIpKTw8NHxiZShlLmNoYXJDb2RlQXQodCszKSl9ZnVuY3Rpb24gYmUoZSl7cmV0dXJuIGU+PTQ4JiZlPD01Nz9lLTQ4OmU+PTY1JiZlPD03MD9lLTU1OmU+PTk3JiZlPD0xMDI/ZS04NzotMX1mdW5jdGlvbiBfbihlLHQpe2NvbnN0IG49ZS5zb3VyY2UuYm9keTtzd2l0Y2gobi5jaGFyQ29kZUF0KHQrMSkpe2Nhc2UgMzQ6cmV0dXJue3ZhbHVlOiciJyxzaXplOjJ9O2Nhc2UgOTI6cmV0dXJue3ZhbHVlOiJcXCIsc2l6ZToyfTtjYXNlIDQ3OnJldHVybnt2YWx1ZToiLyIsc2l6ZToyfTtjYXNlIDk4OnJldHVybnt2YWx1ZToiXGIiLHNpemU6Mn07Y2FzZSAxMDI6cmV0dXJue3ZhbHVlOiJcZiIsc2l6ZToyfTtjYXNlIDExMDpyZXR1cm57dmFsdWU6YApgLHNpemU6Mn07Y2FzZSAxMTQ6cmV0dXJue3ZhbHVlOiJcciIsc2l6ZToyfTtjYXNlIDExNjpyZXR1cm57dmFsdWU6IgkiLHNpemU6Mn19dGhyb3cgRyhlLnNvdXJjZSx0LGBJbnZhbGlkIGNoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0KzIpfSIuYCl9ZnVuY3Rpb24gVG4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj1lLmxpbmVTdGFydCxzPXQrMyxvPXMsYz0iIjtjb25zdCBoPVtdO2Zvcig7czxpOyl7Y29uc3QgZD1uLmNoYXJDb2RlQXQocyk7aWYoZD09PTM0JiZuLmNoYXJDb2RlQXQocysxKT09PTM0JiZuLmNoYXJDb2RlQXQocysyKT09PTM0KXtjKz1uLnNsaWNlKG8scyksaC5wdXNoKGMpO2NvbnN0IHU9VShlLGwuQkxPQ0tfU1RSSU5HLHQscyszLHVuKGgpLmpvaW4oYApgKSk7cmV0dXJuIGUubGluZSs9aC5sZW5ndGgtMSxlLmxpbmVTdGFydD1yLHV9aWYoZD09PTkyJiZuLmNoYXJDb2RlQXQocysxKT09PTM0JiZuLmNoYXJDb2RlQXQocysyKT09PTM0JiZuLmNoYXJDb2RlQXQocyszKT09PTM0KXtjKz1uLnNsaWNlKG8scyksbz1zKzEscys9NDtjb250aW51ZX1pZihkPT09MTB8fGQ9PT0xMyl7Yys9bi5zbGljZShvLHMpLGgucHVzaChjKSxkPT09MTMmJm4uY2hhckNvZGVBdChzKzEpPT09MTA/cys9MjorK3MsYz0iIixvPXMscj1zO2NvbnRpbnVlfWlmKGZlKGQpKSsrcztlbHNlIGlmKHdlKG4scykpcys9MjtlbHNlIHRocm93IEcoZS5zb3VyY2UscyxgSW52YWxpZCBjaGFyYWN0ZXIgd2l0aGluIFN0cmluZzogJHtjZShlLHMpfS5gKX10aHJvdyBHKGUuc291cmNlLHMsIlVudGVybWluYXRlZCBzdHJpbmcuIil9ZnVuY3Rpb24gYm4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10KzE7Zm9yKDtyPGk7KXtjb25zdCBzPW4uY2hhckNvZGVBdChyKTtpZihjbihzKSkrK3I7ZWxzZSBicmVha31yZXR1cm4gVShlLGwuTkFNRSx0LHIsbi5zbGljZSh0LHIpKX1jb25zdCBObj0xMCx4dD0yO2Z1bmN0aW9uIEhlKGUpe3JldHVybiBEZShlLFtdKX1mdW5jdGlvbiBEZShlLHQpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZSJzdHJpbmciOnJldHVybiBKU09OLnN0cmluZ2lmeShlKTtjYXNlImZ1bmN0aW9uIjpyZXR1cm4gZS5uYW1lP2BbZnVuY3Rpb24gJHtlLm5hbWV9XWA6IltmdW5jdGlvbl0iO2Nhc2Uib2JqZWN0IjpyZXR1cm4geG4oZSx0KTtkZWZhdWx0OnJldHVybiBTdHJpbmcoZSl9fWZ1bmN0aW9uIHhuKGUsdCl7aWYoZT09PW51bGwpcmV0dXJuIm51bGwiO2lmKHQuaW5jbHVkZXMoZSkpcmV0dXJuIltDaXJjdWxhcl0iO2NvbnN0IG49Wy4uLnQsZV07aWYoQW4oZSkpe2NvbnN0IGk9ZS50b0pTT04oKTtpZihpIT09ZSlyZXR1cm4gdHlwZW9mIGk9PSJzdHJpbmciP2k6RGUoaSxuKX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIFNuKGUsbik7cmV0dXJuIEluKGUsbil9ZnVuY3Rpb24gQW4oZSl7cmV0dXJuIHR5cGVvZiBlLnRvSlNPTj09ImZ1bmN0aW9uIn1mdW5jdGlvbiBJbihlLHQpe2NvbnN0IG49T2JqZWN0LmVudHJpZXMoZSk7cmV0dXJuIG4ubGVuZ3RoPT09MD8ie30iOnQubGVuZ3RoPnh0PyJbIitPbihlKSsiXSI6InsgIituLm1hcCgoW3Isc10pPT5yKyI6ICIrRGUocyx0KSkuam9pbigiLCAiKSsiIH0ifWZ1bmN0aW9uIFNuKGUsdCl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiJbXSI7aWYodC5sZW5ndGg+eHQpcmV0dXJuIltBcnJheV0iO2NvbnN0IG49TWF0aC5taW4oTm4sZS5sZW5ndGgpLGk9ZS5sZW5ndGgtbixyPVtdO2ZvcihsZXQgcz0wO3M8bjsrK3Mpci5wdXNoKERlKGVbc10sdCkpO3JldHVybiBpPT09MT9yLnB1c2goIi4uLiAxIG1vcmUgaXRlbSIpOmk+MSYmci5wdXNoKGAuLi4gJHtpfSBtb3JlIGl0ZW1zYCksIlsiK3Iuam9pbigiLCAiKSsiXSJ9ZnVuY3Rpb24gT24oZSl7Y29uc3QgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkucmVwbGFjZSgvXlxbb2JqZWN0IC8sIiIpLnJlcGxhY2UoL10kLywiIik7aWYodD09PSJPYmplY3QiJiZ0eXBlb2YgZS5jb25zdHJ1Y3Rvcj09ImZ1bmN0aW9uIil7Y29uc3Qgbj1lLmNvbnN0cnVjdG9yLm5hbWU7aWYodHlwZW9mIG49PSJzdHJpbmciJiZuIT09IiIpcmV0dXJuIG59cmV0dXJuIHR9Y29uc3Qgd249Z2xvYmFsVGhpcy5wcm9jZXNzJiZwcm9jZXNzLmVudi5OT0RFX0VOVj09PSJwcm9kdWN0aW9uIj9mdW5jdGlvbih0LG4pe3JldHVybiB0IGluc3RhbmNlb2Ygbn06ZnVuY3Rpb24odCxuKXtpZih0IGluc3RhbmNlb2YgbilyZXR1cm4hMDtpZih0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsKXt2YXIgaTtjb25zdCByPW4ucHJvdG90eXBlW1N5bWJvbC50b1N0cmluZ1RhZ10scz1TeW1ib2wudG9TdHJpbmdUYWcgaW4gdD90W1N5bWJvbC50b1N0cmluZ1RhZ106KGk9dC5jb25zdHJ1Y3Rvcik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm5hbWU7aWYocj09PXMpe2NvbnN0IG89SGUodCk7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlICR7cn0gIiR7b30iIGZyb20gYW5vdGhlciBtb2R1bGUgb3IgcmVhbG0uCgpFbnN1cmUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBpbnN0YW5jZSBvZiAiZ3JhcGhxbCIgaW4gdGhlIG5vZGVfbW9kdWxlcwpkaXJlY3RvcnkuIElmIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiAiZ3JhcGhxbCIgYXJlIHRoZSBkZXBlbmRlbmNpZXMgb2Ygb3RoZXIKcmVsaWVkIG9uIG1vZHVsZXMsIHVzZSAicmVzb2x1dGlvbnMiIHRvIGVuc3VyZSBvbmx5IG9uZSB2ZXJzaW9uIGlzIGluc3RhbGxlZC4KCmh0dHBzOi8veWFybnBrZy5jb20vZW4vZG9jcy9zZWxlY3RpdmUtdmVyc2lvbi1yZXNvbHV0aW9ucwoKRHVwbGljYXRlICJncmFwaHFsIiBtb2R1bGVzIGNhbm5vdCBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUgc2luY2UgZGlmZmVyZW50CnZlcnNpb25zIG1heSBoYXZlIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYW5kIGJlaGF2aW9yLiBUaGUgZGF0YSBmcm9tIG9uZQp2ZXJzaW9uIHVzZWQgaW4gdGhlIGZ1bmN0aW9uIGZyb20gYW5vdGhlciBjb3VsZCBwcm9kdWNlIGNvbmZ1c2luZyBhbmQKc3B1cmlvdXMgcmVzdWx0cy5gKX19cmV0dXJuITF9O2NsYXNzIEF0e2NvbnN0cnVjdG9yKHQsbj0iR3JhcGhRTCByZXF1ZXN0IixpPXtsaW5lOjEsY29sdW1uOjF9KXt0eXBlb2YgdD09InN0cmluZyJ8fGxlKCExLGBCb2R5IG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkOiAke0hlKHQpfS5gKSx0aGlzLmJvZHk9dCx0aGlzLm5hbWU9bix0aGlzLmxvY2F0aW9uT2Zmc2V0PWksdGhpcy5sb2NhdGlvbk9mZnNldC5saW5lPjB8fGxlKCExLCJsaW5lIGluIGxvY2F0aW9uT2Zmc2V0IGlzIDEtaW5kZXhlZCBhbmQgbXVzdCBiZSBwb3NpdGl2ZS4iKSx0aGlzLmxvY2F0aW9uT2Zmc2V0LmNvbHVtbj4wfHxsZSghMSwiY29sdW1uIGluIGxvY2F0aW9uT2Zmc2V0IGlzIDEtaW5kZXhlZCBhbmQgbXVzdCBiZSBwb3NpdGl2ZS4iKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJTb3VyY2UifX1mdW5jdGlvbiBEbihlKXtyZXR1cm4gd24oZSxBdCl9ZnVuY3Rpb24gSXQoZSx0KXtjb25zdCBuPW5ldyBrbihlLHQpLGk9bi5wYXJzZURvY3VtZW50KCk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJ0b2tlbkNvdW50Iix7ZW51bWVyYWJsZTohMSx2YWx1ZTpuLnRva2VuQ291bnR9KSxpfWNsYXNzIGtue2NvbnN0cnVjdG9yKHQsbj17fSl7Y29uc3QgaT1Ebih0KT90Om5ldyBBdCh0KTt0aGlzLl9sZXhlcj1uZXcgZm4oaSksdGhpcy5fb3B0aW9ucz1uLHRoaXMuX3Rva2VuQ291bnRlcj0wfWdldCB0b2tlbkNvdW50KCl7cmV0dXJuIHRoaXMuX3Rva2VuQ291bnRlcn1wYXJzZU5hbWUoKXtjb25zdCB0PXRoaXMuZXhwZWN0VG9rZW4obC5OQU1FKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5OQU1FLHZhbHVlOnQudmFsdWV9KX1wYXJzZURvY3VtZW50KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpULkRPQ1VNRU5ULGRlZmluaXRpb25zOnRoaXMubWFueShsLlNPRix0aGlzLnBhcnNlRGVmaW5pdGlvbixsLkVPRil9KX1wYXJzZURlZmluaXRpb24oKXtpZih0aGlzLnBlZWsobC5CUkFDRV9MKSlyZXR1cm4gdGhpcy5wYXJzZU9wZXJhdGlvbkRlZmluaXRpb24oKTtjb25zdCB0PXRoaXMucGVla0Rlc2NyaXB0aW9uKCksbj10P3RoaXMuX2xleGVyLmxvb2thaGVhZCgpOnRoaXMuX2xleGVyLnRva2VuO2lmKG4ua2luZD09PWwuTkFNRSl7c3dpdGNoKG4udmFsdWUpe2Nhc2Uic2NoZW1hIjpyZXR1cm4gdGhpcy5wYXJzZVNjaGVtYURlZmluaXRpb24oKTtjYXNlInNjYWxhciI6cmV0dXJuIHRoaXMucGFyc2VTY2FsYXJUeXBlRGVmaW5pdGlvbigpO2Nhc2UidHlwZSI6cmV0dXJuIHRoaXMucGFyc2VPYmplY3RUeXBlRGVmaW5pdGlvbigpO2Nhc2UiaW50ZXJmYWNlIjpyZXR1cm4gdGhpcy5wYXJzZUludGVyZmFjZVR5cGVEZWZpbml0aW9uKCk7Y2FzZSJ1bmlvbiI6cmV0dXJuIHRoaXMucGFyc2VVbmlvblR5cGVEZWZpbml0aW9uKCk7Y2FzZSJlbnVtIjpyZXR1cm4gdGhpcy5wYXJzZUVudW1UeXBlRGVmaW5pdGlvbigpO2Nhc2UiaW5wdXQiOnJldHVybiB0aGlzLnBhcnNlSW5wdXRPYmplY3RUeXBlRGVmaW5pdGlvbigpO2Nhc2UiZGlyZWN0aXZlIjpyZXR1cm4gdGhpcy5wYXJzZURpcmVjdGl2ZURlZmluaXRpb24oKX1pZih0KXRocm93IEcodGhpcy5fbGV4ZXIuc291cmNlLHRoaXMuX2xleGVyLnRva2VuLnN0YXJ0LCJVbmV4cGVjdGVkIGRlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbnMgYXJlIHN1cHBvcnRlZCBvbmx5IG9uIHR5cGUgZGVmaW5pdGlvbnMuIik7c3dpdGNoKG4udmFsdWUpe2Nhc2UicXVlcnkiOmNhc2UibXV0YXRpb24iOmNhc2Uic3Vic2NyaXB0aW9uIjpyZXR1cm4gdGhpcy5wYXJzZU9wZXJhdGlvbkRlZmluaXRpb24oKTtjYXNlImZyYWdtZW50IjpyZXR1cm4gdGhpcy5wYXJzZUZyYWdtZW50RGVmaW5pdGlvbigpO2Nhc2UiZXh0ZW5kIjpyZXR1cm4gdGhpcy5wYXJzZVR5cGVTeXN0ZW1FeHRlbnNpb24oKX19dGhyb3cgdGhpcy51bmV4cGVjdGVkKG4pfXBhcnNlT3BlcmF0aW9uRGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47aWYodGhpcy5wZWVrKGwuQlJBQ0VfTCkpcmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuT1BFUkFUSU9OX0RFRklOSVRJT04sb3BlcmF0aW9uOmhlLlFVRVJZLG5hbWU6dm9pZCAwLHZhcmlhYmxlRGVmaW5pdGlvbnM6W10sZGlyZWN0aXZlczpbXSxzZWxlY3Rpb25TZXQ6dGhpcy5wYXJzZVNlbGVjdGlvblNldCgpfSk7Y29uc3Qgbj10aGlzLnBhcnNlT3BlcmF0aW9uVHlwZSgpO2xldCBpO3JldHVybiB0aGlzLnBlZWsobC5OQU1FKSYmKGk9dGhpcy5wYXJzZU5hbWUoKSksdGhpcy5ub2RlKHQse2tpbmQ6VC5PUEVSQVRJT05fREVGSU5JVElPTixvcGVyYXRpb246bixuYW1lOmksdmFyaWFibGVEZWZpbml0aW9uczp0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9ucygpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KX1wYXJzZU9wZXJhdGlvblR5cGUoKXtjb25zdCB0PXRoaXMuZXhwZWN0VG9rZW4obC5OQU1FKTtzd2l0Y2godC52YWx1ZSl7Y2FzZSJxdWVyeSI6cmV0dXJuIGhlLlFVRVJZO2Nhc2UibXV0YXRpb24iOnJldHVybiBoZS5NVVRBVElPTjtjYXNlInN1YnNjcmlwdGlvbiI6cmV0dXJuIGhlLlNVQlNDUklQVElPTn10aHJvdyB0aGlzLnVuZXhwZWN0ZWQodCl9cGFyc2VWYXJpYWJsZURlZmluaXRpb25zKCl7cmV0dXJuIHRoaXMub3B0aW9uYWxNYW55KGwuUEFSRU5fTCx0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9uLGwuUEFSRU5fUil9cGFyc2VWYXJpYWJsZURlZmluaXRpb24oKXtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuX2xleGVyLnRva2VuLHtraW5kOlQuVkFSSUFCTEVfREVGSU5JVElPTix2YXJpYWJsZTp0aGlzLnBhcnNlVmFyaWFibGUoKSx0eXBlOih0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMucGFyc2VUeXBlUmVmZXJlbmNlKCkpLGRlZmF1bHRWYWx1ZTp0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4obC5FUVVBTFMpP3RoaXMucGFyc2VDb25zdFZhbHVlTGl0ZXJhbCgpOnZvaWQgMCxkaXJlY3RpdmVzOnRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKX0pfXBhcnNlVmFyaWFibGUoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuRE9MTEFSKSx0aGlzLm5vZGUodCx7a2luZDpULlZBUklBQkxFLG5hbWU6dGhpcy5wYXJzZU5hbWUoKX0pfXBhcnNlU2VsZWN0aW9uU2V0KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpULlNFTEVDVElPTl9TRVQsc2VsZWN0aW9uczp0aGlzLm1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VTZWxlY3Rpb24sbC5CUkFDRV9SKX0pfXBhcnNlU2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMucGVlayhsLlNQUkVBRCk/dGhpcy5wYXJzZUZyYWdtZW50KCk6dGhpcy5wYXJzZUZpZWxkKCl9cGFyc2VGaWVsZCgpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlTmFtZSgpO2xldCBpLHI7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkNPTE9OKT8oaT1uLHI9dGhpcy5wYXJzZU5hbWUoKSk6cj1uLHRoaXMubm9kZSh0LHtraW5kOlQuRklFTEQsYWxpYXM6aSxuYW1lOnIsYXJndW1lbnRzOnRoaXMucGFyc2VBcmd1bWVudHMoITEpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBlZWsobC5CUkFDRV9MKT90aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCk6dm9pZCAwfSl9cGFyc2VBcmd1bWVudHModCl7Y29uc3Qgbj10P3RoaXMucGFyc2VDb25zdEFyZ3VtZW50OnRoaXMucGFyc2VBcmd1bWVudDtyZXR1cm4gdGhpcy5vcHRpb25hbE1hbnkobC5QQVJFTl9MLG4sbC5QQVJFTl9SKX1wYXJzZUFyZ3VtZW50KHQ9ITEpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW4saT10aGlzLnBhcnNlTmFtZSgpO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMubm9kZShuLHtraW5kOlQuQVJHVU1FTlQsbmFtZTppLHZhbHVlOnRoaXMucGFyc2VWYWx1ZUxpdGVyYWwodCl9KX1wYXJzZUNvbnN0QXJndW1lbnQoKXtyZXR1cm4gdGhpcy5wYXJzZUFyZ3VtZW50KCEwKX1wYXJzZUZyYWdtZW50KCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdFRva2VuKGwuU1BSRUFEKTtjb25zdCBuPXRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJvbiIpO3JldHVybiFuJiZ0aGlzLnBlZWsobC5OQU1FKT90aGlzLm5vZGUodCx7a2luZDpULkZSQUdNRU5UX1NQUkVBRCxuYW1lOnRoaXMucGFyc2VGcmFnbWVudE5hbWUoKSxkaXJlY3RpdmVzOnRoaXMucGFyc2VEaXJlY3RpdmVzKCExKX0pOnRoaXMubm9kZSh0LHtraW5kOlQuSU5MSU5FX0ZSQUdNRU5ULHR5cGVDb25kaXRpb246bj90aGlzLnBhcnNlTmFtZWRUeXBlKCk6dm9pZCAwLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KX1wYXJzZUZyYWdtZW50RGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47cmV0dXJuIHRoaXMuZXhwZWN0S2V5d29yZCgiZnJhZ21lbnQiKSx0aGlzLl9vcHRpb25zLmFsbG93TGVnYWN5RnJhZ21lbnRWYXJpYWJsZXM9PT0hMD90aGlzLm5vZGUodCx7a2luZDpULkZSQUdNRU5UX0RFRklOSVRJT04sbmFtZTp0aGlzLnBhcnNlRnJhZ21lbnROYW1lKCksdmFyaWFibGVEZWZpbml0aW9uczp0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9ucygpLHR5cGVDb25kaXRpb246KHRoaXMuZXhwZWN0S2V5d29yZCgib24iKSx0aGlzLnBhcnNlTmFtZWRUeXBlKCkpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KTp0aGlzLm5vZGUodCx7a2luZDpULkZSQUdNRU5UX0RFRklOSVRJT04sbmFtZTp0aGlzLnBhcnNlRnJhZ21lbnROYW1lKCksdHlwZUNvbmRpdGlvbjoodGhpcy5leHBlY3RLZXl3b3JkKCJvbiIpLHRoaXMucGFyc2VOYW1lZFR5cGUoKSksZGlyZWN0aXZlczp0aGlzLnBhcnNlRGlyZWN0aXZlcyghMSksc2VsZWN0aW9uU2V0OnRoaXMucGFyc2VTZWxlY3Rpb25TZXQoKX0pfXBhcnNlRnJhZ21lbnROYW1lKCl7aWYodGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0ib24iKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLnBhcnNlTmFtZSgpfXBhcnNlVmFsdWVMaXRlcmFsKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW47c3dpdGNoKG4ua2luZCl7Y2FzZSBsLkJSQUNLRVRfTDpyZXR1cm4gdGhpcy5wYXJzZUxpc3QodCk7Y2FzZSBsLkJSQUNFX0w6cmV0dXJuIHRoaXMucGFyc2VPYmplY3QodCk7Y2FzZSBsLklOVDpyZXR1cm4gdGhpcy5hZHZhbmNlTGV4ZXIoKSx0aGlzLm5vZGUobix7a2luZDpULklOVCx2YWx1ZTpuLnZhbHVlfSk7Y2FzZSBsLkZMT0FUOnJldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLHRoaXMubm9kZShuLHtraW5kOlQuRkxPQVQsdmFsdWU6bi52YWx1ZX0pO2Nhc2UgbC5TVFJJTkc6Y2FzZSBsLkJMT0NLX1NUUklORzpyZXR1cm4gdGhpcy5wYXJzZVN0cmluZ0xpdGVyYWwoKTtjYXNlIGwuTkFNRTpzd2l0Y2godGhpcy5hZHZhbmNlTGV4ZXIoKSxuLnZhbHVlKXtjYXNlInRydWUiOnJldHVybiB0aGlzLm5vZGUobix7a2luZDpULkJPT0xFQU4sdmFsdWU6ITB9KTtjYXNlImZhbHNlIjpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6VC5CT09MRUFOLHZhbHVlOiExfSk7Y2FzZSJudWxsIjpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6VC5OVUxMfSk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6VC5FTlVNLHZhbHVlOm4udmFsdWV9KX1jYXNlIGwuRE9MTEFSOmlmKHQpaWYodGhpcy5leHBlY3RUb2tlbihsLkRPTExBUiksdGhpcy5fbGV4ZXIudG9rZW4ua2luZD09PWwuTkFNRSl7Y29uc3QgaT10aGlzLl9sZXhlci50b2tlbi52YWx1ZTt0aHJvdyBHKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBVbmV4cGVjdGVkIHZhcmlhYmxlICIkJHtpfSIgaW4gY29uc3RhbnQgdmFsdWUuYCl9ZWxzZSB0aHJvdyB0aGlzLnVuZXhwZWN0ZWQobik7cmV0dXJuIHRoaXMucGFyc2VWYXJpYWJsZSgpO2RlZmF1bHQ6dGhyb3cgdGhpcy51bmV4cGVjdGVkKCl9fXBhcnNlQ29uc3RWYWx1ZUxpdGVyYWwoKXtyZXR1cm4gdGhpcy5wYXJzZVZhbHVlTGl0ZXJhbCghMCl9cGFyc2VTdHJpbmdMaXRlcmFsKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gdGhpcy5hZHZhbmNlTGV4ZXIoKSx0aGlzLm5vZGUodCx7a2luZDpULlNUUklORyx2YWx1ZTp0LnZhbHVlLGJsb2NrOnQua2luZD09PWwuQkxPQ0tfU1RSSU5HfSl9cGFyc2VMaXN0KHQpe2NvbnN0IG49KCk9PnRoaXMucGFyc2VWYWx1ZUxpdGVyYWwodCk7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpULkxJU1QsdmFsdWVzOnRoaXMuYW55KGwuQlJBQ0tFVF9MLG4sbC5CUkFDS0VUX1IpfSl9cGFyc2VPYmplY3QodCl7Y29uc3Qgbj0oKT0+dGhpcy5wYXJzZU9iamVjdEZpZWxkKHQpO3JldHVybiB0aGlzLm5vZGUodGhpcy5fbGV4ZXIudG9rZW4se2tpbmQ6VC5PQkpFQ1QsZmllbGRzOnRoaXMuYW55KGwuQlJBQ0VfTCxuLGwuQlJBQ0VfUil9KX1wYXJzZU9iamVjdEZpZWxkKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW4saT10aGlzLnBhcnNlTmFtZSgpO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMubm9kZShuLHtraW5kOlQuT0JKRUNUX0ZJRUxELG5hbWU6aSx2YWx1ZTp0aGlzLnBhcnNlVmFsdWVMaXRlcmFsKHQpfSl9cGFyc2VEaXJlY3RpdmVzKHQpe2NvbnN0IG49W107Zm9yKDt0aGlzLnBlZWsobC5BVCk7KW4ucHVzaCh0aGlzLnBhcnNlRGlyZWN0aXZlKHQpKTtyZXR1cm4gbn1wYXJzZUNvbnN0RGlyZWN0aXZlcygpe3JldHVybiB0aGlzLnBhcnNlRGlyZWN0aXZlcyghMCl9cGFyc2VEaXJlY3RpdmUodCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gdGhpcy5leHBlY3RUb2tlbihsLkFUKSx0aGlzLm5vZGUobix7a2luZDpULkRJUkVDVElWRSxuYW1lOnRoaXMucGFyc2VOYW1lKCksYXJndW1lbnRzOnRoaXMucGFyc2VBcmd1bWVudHModCl9KX1wYXJzZVR5cGVSZWZlcmVuY2UoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO2xldCBuO2lmKHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkJSQUNLRVRfTCkpe2NvbnN0IGk9dGhpcy5wYXJzZVR5cGVSZWZlcmVuY2UoKTt0aGlzLmV4cGVjdFRva2VuKGwuQlJBQ0tFVF9SKSxuPXRoaXMubm9kZSh0LHtraW5kOlQuTElTVF9UWVBFLHR5cGU6aX0pfWVsc2Ugbj10aGlzLnBhcnNlTmFtZWRUeXBlKCk7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkJBTkcpP3RoaXMubm9kZSh0LHtraW5kOlQuTk9OX05VTExfVFlQRSx0eXBlOm59KTpufXBhcnNlTmFtZWRUeXBlKCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpULk5BTUVEX1RZUEUsbmFtZTp0aGlzLnBhcnNlTmFtZSgpfSl9cGVla0Rlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMucGVlayhsLlNUUklORyl8fHRoaXMucGVlayhsLkJMT0NLX1NUUklORyl9cGFyc2VEZXNjcmlwdGlvbigpe2lmKHRoaXMucGVla0Rlc2NyaXB0aW9uKCkpcmV0dXJuIHRoaXMucGFyc2VTdHJpbmdMaXRlcmFsKCl9cGFyc2VTY2hlbWFEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgic2NoZW1hIik7Y29uc3QgaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscj10aGlzLm1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VPcGVyYXRpb25UeXBlRGVmaW5pdGlvbixsLkJSQUNFX1IpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULlNDSEVNQV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sZGlyZWN0aXZlczppLG9wZXJhdGlvblR5cGVzOnJ9KX1wYXJzZU9wZXJhdGlvblR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VPcGVyYXRpb25UeXBlKCk7dGhpcy5leHBlY3RUb2tlbihsLkNPTE9OKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lZFR5cGUoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5PUEVSQVRJT05fVFlQRV9ERUZJTklUSU9OLG9wZXJhdGlvbjpuLHR5cGU6aX0pfXBhcnNlU2NhbGFyVHlwZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJzY2FsYXIiKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuU0NBTEFSX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6aSxkaXJlY3RpdmVzOnJ9KX1wYXJzZU9iamVjdFR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgidHlwZSIpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VJbXBsZW1lbnRzSW50ZXJmYWNlcygpLHM9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLG89dGhpcy5wYXJzZUZpZWxkc0RlZmluaXRpb24oKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGludGVyZmFjZXM6cixkaXJlY3RpdmVzOnMsZmllbGRzOm99KX1wYXJzZUltcGxlbWVudHNJbnRlcmZhY2VzKCl7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJpbXBsZW1lbnRzIik/dGhpcy5kZWxpbWl0ZWRNYW55KGwuQU1QLHRoaXMucGFyc2VOYW1lZFR5cGUpOltdfXBhcnNlRmllbGRzRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLkJSQUNFX0wsdGhpcy5wYXJzZUZpZWxkRGVmaW5pdGlvbixsLkJSQUNFX1IpfXBhcnNlRmllbGREZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpLGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VBcmd1bWVudERlZnMoKTt0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pO2NvbnN0IHM9dGhpcy5wYXJzZVR5cGVSZWZlcmVuY2UoKSxvPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5GSUVMRF9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGFyZ3VtZW50czpyLHR5cGU6cyxkaXJlY3RpdmVzOm99KX1wYXJzZUFyZ3VtZW50RGVmcygpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLlBBUkVOX0wsdGhpcy5wYXJzZUlucHV0VmFsdWVEZWYsbC5QQVJFTl9SKX1wYXJzZUlucHV0VmFsdWVEZWYoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCksaT10aGlzLnBhcnNlTmFtZSgpO3RoaXMuZXhwZWN0VG9rZW4obC5DT0xPTik7Y29uc3Qgcj10aGlzLnBhcnNlVHlwZVJlZmVyZW5jZSgpO2xldCBzO3RoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkVRVUFMUykmJihzPXRoaXMucGFyc2VDb25zdFZhbHVlTGl0ZXJhbCgpKTtjb25zdCBvPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5JTlBVVF9WQUxVRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLHR5cGU6cixkZWZhdWx0VmFsdWU6cyxkaXJlY3RpdmVzOm99KX1wYXJzZUludGVyZmFjZVR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiaW50ZXJmYWNlIik7Y29uc3QgaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUltcGxlbWVudHNJbnRlcmZhY2VzKCkscz10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCksbz10aGlzLnBhcnNlRmllbGRzRGVmaW5pdGlvbigpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULklOVEVSRkFDRV9UWVBFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksaW50ZXJmYWNlczpyLGRpcmVjdGl2ZXM6cyxmaWVsZHM6b30pfXBhcnNlVW5pb25UeXBlRGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlRGVzY3JpcHRpb24oKTt0aGlzLmV4cGVjdEtleXdvcmQoInVuaW9uIik7Y29uc3QgaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHM9dGhpcy5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5VTklPTl9UWVBFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksZGlyZWN0aXZlczpyLHR5cGVzOnN9KX1wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKXtyZXR1cm4gdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGwuRVFVQUxTKT90aGlzLmRlbGltaXRlZE1hbnkobC5QSVBFLHRoaXMucGFyc2VOYW1lZFR5cGUpOltdfXBhcnNlRW51bVR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiZW51bSIpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VFbnVtVmFsdWVzRGVmaW5pdGlvbigpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULkVOVU1fVFlQRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGRpcmVjdGl2ZXM6cix2YWx1ZXM6c30pfXBhcnNlRW51bVZhbHVlc0RlZmluaXRpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25hbE1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VFbnVtVmFsdWVEZWZpbml0aW9uLGwuQlJBQ0VfUil9cGFyc2VFbnVtVmFsdWVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpLGk9dGhpcy5wYXJzZUVudW1WYWx1ZU5hbWUoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5FTlVNX1ZBTFVFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksZGlyZWN0aXZlczpyfSl9cGFyc2VFbnVtVmFsdWVOYW1lKCl7aWYodGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0idHJ1ZSJ8fHRoaXMuX2xleGVyLnRva2VuLnZhbHVlPT09ImZhbHNlInx8dGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0ibnVsbCIpdGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2UsdGhpcy5fbGV4ZXIudG9rZW4uc3RhcnQsYCR7a2UodGhpcy5fbGV4ZXIudG9rZW4pfSBpcyByZXNlcnZlZCBhbmQgY2Fubm90IGJlIHVzZWQgZm9yIGFuIGVudW0gdmFsdWUuYCk7cmV0dXJuIHRoaXMucGFyc2VOYW1lKCl9cGFyc2VJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiaW5wdXQiKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscz10aGlzLnBhcnNlSW5wdXRGaWVsZHNEZWZpbml0aW9uKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuSU5QVVRfT0JKRUNUX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZUlucHV0RmllbGRzRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLkJSQUNFX0wsdGhpcy5wYXJzZUlucHV0VmFsdWVEZWYsbC5CUkFDRV9SKX1wYXJzZVR5cGVTeXN0ZW1FeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLmxvb2thaGVhZCgpO2lmKHQua2luZD09PWwuTkFNRSlzd2l0Y2godC52YWx1ZSl7Y2FzZSJzY2hlbWEiOnJldHVybiB0aGlzLnBhcnNlU2NoZW1hRXh0ZW5zaW9uKCk7Y2FzZSJzY2FsYXIiOnJldHVybiB0aGlzLnBhcnNlU2NhbGFyVHlwZUV4dGVuc2lvbigpO2Nhc2UidHlwZSI6cmV0dXJuIHRoaXMucGFyc2VPYmplY3RUeXBlRXh0ZW5zaW9uKCk7Y2FzZSJpbnRlcmZhY2UiOnJldHVybiB0aGlzLnBhcnNlSW50ZXJmYWNlVHlwZUV4dGVuc2lvbigpO2Nhc2UidW5pb24iOnJldHVybiB0aGlzLnBhcnNlVW5pb25UeXBlRXh0ZW5zaW9uKCk7Y2FzZSJlbnVtIjpyZXR1cm4gdGhpcy5wYXJzZUVudW1UeXBlRXh0ZW5zaW9uKCk7Y2FzZSJpbnB1dCI6cmV0dXJuIHRoaXMucGFyc2VJbnB1dE9iamVjdFR5cGVFeHRlbnNpb24oKX10aHJvdyB0aGlzLnVuZXhwZWN0ZWQodCl9cGFyc2VTY2hlbWFFeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZCgiZXh0ZW5kIiksdGhpcy5leHBlY3RLZXl3b3JkKCJzY2hlbWEiKTtjb25zdCBuPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxpPXRoaXMub3B0aW9uYWxNYW55KGwuQlJBQ0VfTCx0aGlzLnBhcnNlT3BlcmF0aW9uVHlwZURlZmluaXRpb24sbC5CUkFDRV9SKTtpZihuLmxlbmd0aD09PTAmJmkubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5TQ0hFTUFfRVhURU5TSU9OLGRpcmVjdGl2ZXM6bixvcGVyYXRpb25UeXBlczppfSl9cGFyc2VTY2FsYXJUeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgic2NhbGFyIik7Y29uc3Qgbj10aGlzLnBhcnNlTmFtZSgpLGk9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpO2lmKGkubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5TQ0FMQVJfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGRpcmVjdGl2ZXM6aX0pfXBhcnNlT2JqZWN0VHlwZUV4dGVuc2lvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKCJleHRlbmQiKSx0aGlzLmV4cGVjdEtleXdvcmQoInR5cGUiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5PQkpFQ1RfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGludGVyZmFjZXM6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZUludGVyZmFjZVR5cGVFeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZCgiZXh0ZW5kIiksdGhpcy5leHBlY3RLZXl3b3JkKCJpbnRlcmZhY2UiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5JTlRFUkZBQ0VfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGludGVyZmFjZXM6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZVVuaW9uVHlwZUV4dGVuc2lvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKCJleHRlbmQiKSx0aGlzLmV4cGVjdEtleXdvcmQoInVuaW9uIik7Y29uc3Qgbj10aGlzLnBhcnNlTmFtZSgpLGk9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHI9dGhpcy5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTtpZihpLmxlbmd0aD09PTAmJnIubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5VTklPTl9UWVBFX0VYVEVOU0lPTixuYW1lOm4sZGlyZWN0aXZlczppLHR5cGVzOnJ9KX1wYXJzZUVudW1UeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgiZW51bSIpO2NvbnN0IG49dGhpcy5wYXJzZU5hbWUoKSxpPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxyPXRoaXMucGFyc2VFbnVtVmFsdWVzRGVmaW5pdGlvbigpO2lmKGkubGVuZ3RoPT09MCYmci5sZW5ndGg9PT0wKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULkVOVU1fVFlQRV9FWFRFTlNJT04sbmFtZTpuLGRpcmVjdGl2ZXM6aSx2YWx1ZXM6cn0pfXBhcnNlSW5wdXRPYmplY3RUeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgiaW5wdXQiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscj10aGlzLnBhcnNlSW5wdXRGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTApdGhyb3cgdGhpcy51bmV4cGVjdGVkKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuSU5QVVRfT0JKRUNUX1RZUEVfRVhURU5TSU9OLG5hbWU6bixkaXJlY3RpdmVzOmksZmllbGRzOnJ9KX1wYXJzZURpcmVjdGl2ZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJkaXJlY3RpdmUiKSx0aGlzLmV4cGVjdFRva2VuKGwuQVQpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VBcmd1bWVudERlZnMoKSxzPXRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJyZXBlYXRhYmxlIik7dGhpcy5leHBlY3RLZXl3b3JkKCJvbiIpO2NvbnN0IG89dGhpcy5wYXJzZURpcmVjdGl2ZUxvY2F0aW9ucygpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULkRJUkVDVElWRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGFyZ3VtZW50czpyLHJlcGVhdGFibGU6cyxsb2NhdGlvbnM6b30pfXBhcnNlRGlyZWN0aXZlTG9jYXRpb25zKCl7cmV0dXJuIHRoaXMuZGVsaW1pdGVkTWFueShsLlBJUEUsdGhpcy5wYXJzZURpcmVjdGl2ZUxvY2F0aW9uKX1wYXJzZURpcmVjdGl2ZUxvY2F0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VOYW1lKCk7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGplLG4udmFsdWUpKXJldHVybiBuO3Rocm93IHRoaXMudW5leHBlY3RlZCh0KX1ub2RlKHQsbil7cmV0dXJuIHRoaXMuX29wdGlvbnMubm9Mb2NhdGlvbiE9PSEwJiYobi5sb2M9bmV3IG9uKHQsdGhpcy5fbGV4ZXIubGFzdFRva2VuLHRoaXMuX2xleGVyLnNvdXJjZSkpLG59cGVlayh0KXtyZXR1cm4gdGhpcy5fbGV4ZXIudG9rZW4ua2luZD09PXR9ZXhwZWN0VG9rZW4odCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtpZihuLmtpbmQ9PT10KXJldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLG47dGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgRXhwZWN0ZWQgJHtTdCh0KX0sIGZvdW5kICR7a2Uobil9LmApfWV4cGVjdE9wdGlvbmFsVG9rZW4odCl7cmV0dXJuIHRoaXMuX2xleGVyLnRva2VuLmtpbmQ9PT10Pyh0aGlzLmFkdmFuY2VMZXhlcigpLCEwKTohMX1leHBlY3RLZXl3b3JkKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW47aWYobi5raW5kPT09bC5OQU1FJiZuLnZhbHVlPT09dCl0aGlzLmFkdmFuY2VMZXhlcigpO2Vsc2UgdGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgRXhwZWN0ZWQgIiR7dH0iLCBmb3VuZCAke2tlKG4pfS5gKX1leHBlY3RPcHRpb25hbEtleXdvcmQodCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gbi5raW5kPT09bC5OQU1FJiZuLnZhbHVlPT09dD8odGhpcy5hZHZhbmNlTGV4ZXIoKSwhMCk6ITF9dW5leHBlY3RlZCh0KXtjb25zdCBuPXQhPW51bGw/dDp0aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgVW5leHBlY3RlZCAke2tlKG4pfS5gKX1hbnkodCxuLGkpe3RoaXMuZXhwZWN0VG9rZW4odCk7Y29uc3Qgcj1bXTtmb3IoOyF0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4oaSk7KXIucHVzaChuLmNhbGwodGhpcykpO3JldHVybiByfW9wdGlvbmFsTWFueSh0LG4saSl7aWYodGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpKXtjb25zdCByPVtdO2RvIHIucHVzaChuLmNhbGwodGhpcykpO3doaWxlKCF0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4oaSkpO3JldHVybiByfXJldHVybltdfW1hbnkodCxuLGkpe3RoaXMuZXhwZWN0VG9rZW4odCk7Y29uc3Qgcj1bXTtkbyByLnB1c2gobi5jYWxsKHRoaXMpKTt3aGlsZSghdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGkpKTtyZXR1cm4gcn1kZWxpbWl0ZWRNYW55KHQsbil7dGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpO2NvbnN0IGk9W107ZG8gaS5wdXNoKG4uY2FsbCh0aGlzKSk7d2hpbGUodGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpKTtyZXR1cm4gaX1hZHZhbmNlTGV4ZXIoKXtjb25zdHttYXhUb2tlbnM6dH09dGhpcy5fb3B0aW9ucyxuPXRoaXMuX2xleGVyLmFkdmFuY2UoKTtpZihuLmtpbmQhPT1sLkVPRiYmKCsrdGhpcy5fdG9rZW5Db3VudGVyLHQhPT12b2lkIDAmJnRoaXMuX3Rva2VuQ291bnRlcj50KSl0aHJvdyBHKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBEb2N1bWVudCBjb250YWlucyBtb3JlIHRoYXQgJHt0fSB0b2tlbnMuIFBhcnNpbmcgYWJvcnRlZC5gKX19ZnVuY3Rpb24ga2UoZSl7Y29uc3QgdD1lLnZhbHVlO3JldHVybiBTdChlLmtpbmQpKyh0IT1udWxsP2AgIiR7dH0iYDoiIil9ZnVuY3Rpb24gU3QoZSl7cmV0dXJuIGRuKGUpP2AiJHtlfSJgOmV9ZnVuY3Rpb24gQ24oZSl7cmV0dXJuYCIke2UucmVwbGFjZShSbixQbil9ImB9Y29uc3QgUm49L1tceDAwLVx4MWZceDIyXHg1Y1x4N2YtXHg5Zl0vZztmdW5jdGlvbiBQbihlKXtyZXR1cm4gTG5bZS5jaGFyQ29kZUF0KDApXX1jb25zdCBMbj1bIlxcdTAwMDAiLCJcXHUwMDAxIiwiXFx1MDAwMiIsIlxcdTAwMDMiLCJcXHUwMDA0IiwiXFx1MDAwNSIsIlxcdTAwMDYiLCJcXHUwMDA3IiwiXFxiIiwiXFx0IiwiXFxuIiwiXFx1MDAwQiIsIlxcZiIsIlxcciIsIlxcdTAwMEUiLCJcXHUwMDBGIiwiXFx1MDAxMCIsIlxcdTAwMTEiLCJcXHUwMDEyIiwiXFx1MDAxMyIsIlxcdTAwMTQiLCJcXHUwMDE1IiwiXFx1MDAxNiIsIlxcdTAwMTciLCJcXHUwMDE4IiwiXFx1MDAxOSIsIlxcdTAwMUEiLCJcXHUwMDFCIiwiXFx1MDAxQyIsIlxcdTAwMUQiLCJcXHUwMDFFIiwiXFx1MDAxRiIsIiIsIiIsJ1xcIicsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIlxcXFwiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJcXHUwMDdGIiwiXFx1MDA4MCIsIlxcdTAwODEiLCJcXHUwMDgyIiwiXFx1MDA4MyIsIlxcdTAwODQiLCJcXHUwMDg1IiwiXFx1MDA4NiIsIlxcdTAwODciLCJcXHUwMDg4IiwiXFx1MDA4OSIsIlxcdTAwOEEiLCJcXHUwMDhCIiwiXFx1MDA4QyIsIlxcdTAwOEQiLCJcXHUwMDhFIiwiXFx1MDA4RiIsIlxcdTAwOTAiLCJcXHUwMDkxIiwiXFx1MDA5MiIsIlxcdTAwOTMiLCJcXHUwMDk0IiwiXFx1MDA5NSIsIlxcdTAwOTYiLCJcXHUwMDk3IiwiXFx1MDA5OCIsIlxcdTAwOTkiLCJcXHUwMDlBIiwiXFx1MDA5QiIsIlxcdTAwOUMiLCJcXHUwMDlEIiwiXFx1MDA5RSIsIlxcdTAwOUYiXSxGbj1PYmplY3QuZnJlZXplKHt9KTtmdW5jdGlvbiBNbihlLHQsbj12dCl7Y29uc3QgaT1uZXcgTWFwO2Zvcihjb25zdCBQIG9mIE9iamVjdC52YWx1ZXMoVCkpaS5zZXQoUCxCbih0LFApKTtsZXQgcixzPUFycmF5LmlzQXJyYXkoZSksbz1bZV0sYz0tMSxoPVtdLGQ9ZSx1LHk7Y29uc3QgZz1bXSxiPVtdO2Rve2MrKztjb25zdCBQPWM9PT1vLmxlbmd0aCxxPVAmJmgubGVuZ3RoIT09MDtpZihQKXtpZih1PWIubGVuZ3RoPT09MD92b2lkIDA6Z1tnLmxlbmd0aC0xXSxkPXkseT1iLnBvcCgpLHEpaWYocyl7ZD1kLnNsaWNlKCk7bGV0IEU9MDtmb3IoY29uc3RbdyxrXW9mIGgpe2NvbnN0IEw9dy1FO2s9PT1udWxsPyhkLnNwbGljZShMLDEpLEUrKyk6ZFtMXT1rfX1lbHNle2Q9RCh7fSxkKTtmb3IoY29uc3RbRSx3XW9mIGgpZFtFXT13fWM9ci5pbmRleCxvPXIua2V5cyxoPXIuZWRpdHMscz1yLmluQXJyYXkscj1yLnByZXZ9ZWxzZSBpZih5KXtpZih1PXM/YzpvW2NdLGQ9eVt1XSxkPT1udWxsKWNvbnRpbnVlO2cucHVzaCh1KX1sZXQgdjtpZighQXJyYXkuaXNBcnJheShkKSl7dmFyIG0sTjtndChkKXx8bGUoITEsYEludmFsaWQgQVNUIE5vZGU6ICR7SGUoZCl9LmApO2NvbnN0IEU9UD8obT1pLmdldChkLmtpbmQpKT09PW51bGx8fG09PT12b2lkIDA/dm9pZCAwOm0ubGVhdmU6KE49aS5nZXQoZC5raW5kKSk9PT1udWxsfHxOPT09dm9pZCAwP3ZvaWQgMDpOLmVudGVyO2lmKHY9RT09bnVsbD92b2lkIDA6RS5jYWxsKHQsZCx1LHksZyxiKSx2PT09Rm4pYnJlYWs7aWYodj09PSExKXtpZighUCl7Zy5wb3AoKTtjb250aW51ZX19ZWxzZSBpZih2IT09dm9pZCAwJiYoaC5wdXNoKFt1LHZdKSwhUCkpaWYoZ3QodikpZD12O2Vsc2V7Zy5wb3AoKTtjb250aW51ZX19aWYodj09PXZvaWQgMCYmcSYmaC5wdXNoKFt1LGRdKSxQKWcucG9wKCk7ZWxzZXt2YXIgUjtyPXtpbkFycmF5OnMsaW5kZXg6YyxrZXlzOm8sZWRpdHM6aCxwcmV2OnJ9LHM9QXJyYXkuaXNBcnJheShkKSxvPXM/ZDooUj1uW2Qua2luZF0pIT09bnVsbCYmUiE9PXZvaWQgMD9SOltdLGM9LTEsaD1bXSx5JiZiLnB1c2goeSkseT1kfX13aGlsZShyIT09dm9pZCAwKTtyZXR1cm4gaC5sZW5ndGghPT0wP2hbaC5sZW5ndGgtMV1bMV06ZX1mdW5jdGlvbiBCbihlLHQpe2NvbnN0IG49ZVt0XTtyZXR1cm4gdHlwZW9mIG49PSJvYmplY3QiP246dHlwZW9mIG49PSJmdW5jdGlvbiI/e2VudGVyOm4sbGVhdmU6dm9pZCAwfTp7ZW50ZXI6ZS5lbnRlcixsZWF2ZTplLmxlYXZlfX1mdW5jdGlvbiAkbihlKXtyZXR1cm4gTW4oZSxWbil9Y29uc3QgVW49ODAsVm49e05hbWU6e2xlYXZlOmU9PmUudmFsdWV9LFZhcmlhYmxlOntsZWF2ZTplPT4iJCIrZS5uYW1lfSxEb2N1bWVudDp7bGVhdmU6ZT0+cChlLmRlZmluaXRpb25zLGAKCmApfSxPcGVyYXRpb25EZWZpbml0aW9uOntsZWF2ZShlKXtjb25zdCB0PU8oIigiLHAoZS52YXJpYWJsZURlZmluaXRpb25zLCIsICIpLCIpIiksbj1wKFtlLm9wZXJhdGlvbixwKFtlLm5hbWUsdF0pLHAoZS5kaXJlY3RpdmVzLCIgIildLCIgIik7cmV0dXJuKG49PT0icXVlcnkiPyIiOm4rIiAiKStlLnNlbGVjdGlvblNldH19LFZhcmlhYmxlRGVmaW5pdGlvbjp7bGVhdmU6KHt2YXJpYWJsZTplLHR5cGU6dCxkZWZhdWx0VmFsdWU6bixkaXJlY3RpdmVzOml9KT0+ZSsiOiAiK3QrTygiID0gIixuKStPKCIgIixwKGksIiAiKSl9LFNlbGVjdGlvblNldDp7bGVhdmU6KHtzZWxlY3Rpb25zOmV9KT0+cmUoZSl9LEZpZWxkOntsZWF2ZSh7YWxpYXM6ZSxuYW1lOnQsYXJndW1lbnRzOm4sZGlyZWN0aXZlczppLHNlbGVjdGlvblNldDpyfSl7Y29uc3Qgcz1PKCIiLGUsIjogIikrdDtsZXQgbz1zK08oIigiLHAobiwiLCAiKSwiKSIpO3JldHVybiBvLmxlbmd0aD5VbiYmKG89cytPKGAoCmAsQ2UocChuLGAKYCkpLGAKKWApKSxwKFtvLHAoaSwiICIpLHJdLCIgIil9fSxBcmd1bWVudDp7bGVhdmU6KHtuYW1lOmUsdmFsdWU6dH0pPT5lKyI6ICIrdH0sRnJhZ21lbnRTcHJlYWQ6e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dH0pPT4iLi4uIitlK08oIiAiLHAodCwiICIpKX0sSW5saW5lRnJhZ21lbnQ6e2xlYXZlOih7dHlwZUNvbmRpdGlvbjplLGRpcmVjdGl2ZXM6dCxzZWxlY3Rpb25TZXQ6bn0pPT5wKFsiLi4uIixPKCJvbiAiLGUpLHAodCwiICIpLG5dLCIgIil9LEZyYWdtZW50RGVmaW5pdGlvbjp7bGVhdmU6KHtuYW1lOmUsdHlwZUNvbmRpdGlvbjp0LHZhcmlhYmxlRGVmaW5pdGlvbnM6bixkaXJlY3RpdmVzOmksc2VsZWN0aW9uU2V0OnJ9KT0+YGZyYWdtZW50ICR7ZX0ke08oIigiLHAobiwiLCAiKSwiKSIpfSBvbiAke3R9ICR7TygiIixwKGksIiAiKSwiICIpfWArcn0sSW50VmFsdWU6e2xlYXZlOih7dmFsdWU6ZX0pPT5lfSxGbG9hdFZhbHVlOntsZWF2ZTooe3ZhbHVlOmV9KT0+ZX0sU3RyaW5nVmFsdWU6e2xlYXZlOih7dmFsdWU6ZSxibG9jazp0fSk9PnQ/aG4oZSk6Q24oZSl9LEJvb2xlYW5WYWx1ZTp7bGVhdmU6KHt2YWx1ZTplfSk9PmU/InRydWUiOiJmYWxzZSJ9LE51bGxWYWx1ZTp7bGVhdmU6KCk9PiJudWxsIn0sRW51bVZhbHVlOntsZWF2ZTooe3ZhbHVlOmV9KT0+ZX0sTGlzdFZhbHVlOntsZWF2ZTooe3ZhbHVlczplfSk9PiJbIitwKGUsIiwgIikrIl0ifSxPYmplY3RWYWx1ZTp7bGVhdmU6KHtmaWVsZHM6ZX0pPT4ieyIrcChlLCIsICIpKyJ9In0sT2JqZWN0RmllbGQ6e2xlYXZlOih7bmFtZTplLHZhbHVlOnR9KT0+ZSsiOiAiK3R9LERpcmVjdGl2ZTp7bGVhdmU6KHtuYW1lOmUsYXJndW1lbnRzOnR9KT0+IkAiK2UrTygiKCIscCh0LCIsICIpLCIpIil9LE5hbWVkVHlwZTp7bGVhdmU6KHtuYW1lOmV9KT0+ZX0sTGlzdFR5cGU6e2xlYXZlOih7dHlwZTplfSk9PiJbIitlKyJdIn0sTm9uTnVsbFR5cGU6e2xlYXZlOih7dHlwZTplfSk9PmUrIiEifSxTY2hlbWFEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsZGlyZWN0aXZlczp0LG9wZXJhdGlvblR5cGVzOm59KT0+TygiIixlLGAKYCkrcChbInNjaGVtYSIscCh0LCIgIikscmUobildLCIgIil9LE9wZXJhdGlvblR5cGVEZWZpbml0aW9uOntsZWF2ZTooe29wZXJhdGlvbjplLHR5cGU6dH0pPT5lKyI6ICIrdH0sU2NhbGFyVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsZGlyZWN0aXZlczpufSk9Pk8oIiIsZSxgCmApK3AoWyJzY2FsYXIiLHQscChuLCIgIildLCIgIil9LE9iamVjdFR5cGVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGludGVyZmFjZXM6bixkaXJlY3RpdmVzOmksZmllbGRzOnJ9KT0+TygiIixlLGAKYCkrcChbInR5cGUiLHQsTygiaW1wbGVtZW50cyAiLHAobiwiICYgIikpLHAoaSwiICIpLHJlKHIpXSwiICIpfSxGaWVsZERlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsYXJndW1lbnRzOm4sdHlwZTppLGRpcmVjdGl2ZXM6cn0pPT5PKCIiLGUsYApgKSt0KyhPdChuKT9PKGAoCmAsQ2UocChuLGAKYCkpLGAKKWApOk8oIigiLHAobiwiLCAiKSwiKSIpKSsiOiAiK2krTygiICIscChyLCIgIikpfSxJbnB1dFZhbHVlRGVmaW5pdGlvbjp7bGVhdmU6KHtkZXNjcmlwdGlvbjplLG5hbWU6dCx0eXBlOm4sZGVmYXVsdFZhbHVlOmksZGlyZWN0aXZlczpyfSk9Pk8oIiIsZSxgCmApK3AoW3QrIjogIituLE8oIj0gIixpKSxwKHIsIiAiKV0sIiAiKX0sSW50ZXJmYWNlVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsaW50ZXJmYWNlczpuLGRpcmVjdGl2ZXM6aSxmaWVsZHM6cn0pPT5PKCIiLGUsYApgKStwKFsiaW50ZXJmYWNlIix0LE8oImltcGxlbWVudHMgIixwKG4sIiAmICIpKSxwKGksIiAiKSxyZShyKV0sIiAiKX0sVW5pb25UeXBlRGVmaW5pdGlvbjp7bGVhdmU6KHtkZXNjcmlwdGlvbjplLG5hbWU6dCxkaXJlY3RpdmVzOm4sdHlwZXM6aX0pPT5PKCIiLGUsYApgKStwKFsidW5pb24iLHQscChuLCIgIiksTygiPSAiLHAoaSwiIHwgIikpXSwiICIpfSxFbnVtVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsZGlyZWN0aXZlczpuLHZhbHVlczppfSk9Pk8oIiIsZSxgCmApK3AoWyJlbnVtIix0LHAobiwiICIpLHJlKGkpXSwiICIpfSxFbnVtVmFsdWVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGRpcmVjdGl2ZXM6bn0pPT5PKCIiLGUsYApgKStwKFt0LHAobiwiICIpXSwiICIpfSxJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGRpcmVjdGl2ZXM6bixmaWVsZHM6aX0pPT5PKCIiLGUsYApgKStwKFsiaW5wdXQiLHQscChuLCIgIikscmUoaSldLCIgIil9LERpcmVjdGl2ZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsYXJndW1lbnRzOm4scmVwZWF0YWJsZTppLGxvY2F0aW9uczpyfSk9Pk8oIiIsZSxgCmApKyJkaXJlY3RpdmUgQCIrdCsoT3Qobik/TyhgKApgLENlKHAobixgCmApKSxgCilgKTpPKCIoIixwKG4sIiwgIiksIikiKSkrKGk/IiByZXBlYXRhYmxlIjoiIikrIiBvbiAiK3AociwiIHwgIil9LFNjaGVtYUV4dGVuc2lvbjp7bGVhdmU6KHtkaXJlY3RpdmVzOmUsb3BlcmF0aW9uVHlwZXM6dH0pPT5wKFsiZXh0ZW5kIHNjaGVtYSIscChlLCIgIikscmUodCldLCIgIil9LFNjYWxhclR5cGVFeHRlbnNpb246e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dH0pPT5wKFsiZXh0ZW5kIHNjYWxhciIsZSxwKHQsIiAiKV0sIiAiKX0sT2JqZWN0VHlwZUV4dGVuc2lvbjp7bGVhdmU6KHtuYW1lOmUsaW50ZXJmYWNlczp0LGRpcmVjdGl2ZXM6bixmaWVsZHM6aX0pPT5wKFsiZXh0ZW5kIHR5cGUiLGUsTygiaW1wbGVtZW50cyAiLHAodCwiICYgIikpLHAobiwiICIpLHJlKGkpXSwiICIpfSxJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uOntsZWF2ZTooe25hbWU6ZSxpbnRlcmZhY2VzOnQsZGlyZWN0aXZlczpuLGZpZWxkczppfSk9PnAoWyJleHRlbmQgaW50ZXJmYWNlIixlLE8oImltcGxlbWVudHMgIixwKHQsIiAmICIpKSxwKG4sIiAiKSxyZShpKV0sIiAiKX0sVW5pb25UeXBlRXh0ZW5zaW9uOntsZWF2ZTooe25hbWU6ZSxkaXJlY3RpdmVzOnQsdHlwZXM6bn0pPT5wKFsiZXh0ZW5kIHVuaW9uIixlLHAodCwiICIpLE8oIj0gIixwKG4sIiB8ICIpKV0sIiAiKX0sRW51bVR5cGVFeHRlbnNpb246e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dCx2YWx1ZXM6bn0pPT5wKFsiZXh0ZW5kIGVudW0iLGUscCh0LCIgIikscmUobildLCIgIil9LElucHV0T2JqZWN0VHlwZUV4dGVuc2lvbjp7bGVhdmU6KHtuYW1lOmUsZGlyZWN0aXZlczp0LGZpZWxkczpufSk9PnAoWyJleHRlbmQgaW5wdXQiLGUscCh0LCIgIikscmUobildLCIgIil9fTtmdW5jdGlvbiBwKGUsdD0iIil7dmFyIG47cmV0dXJuKG49ZT09bnVsbD92b2lkIDA6ZS5maWx0ZXIoaT0+aSkuam9pbih0KSkhPT1udWxsJiZuIT09dm9pZCAwP246IiJ9ZnVuY3Rpb24gcmUoZSl7cmV0dXJuIE8oYHsKYCxDZShwKGUsYApgKSksYAp9YCl9ZnVuY3Rpb24gTyhlLHQsbj0iIil7cmV0dXJuIHQhPW51bGwmJnQhPT0iIj9lK3QrbjoiIn1mdW5jdGlvbiBDZShlKXtyZXR1cm4gTygiICAiLGUucmVwbGFjZSgvXG4vZyxgCiAgYCkpfWZ1bmN0aW9uIE90KGUpe3ZhciB0O3JldHVybih0PWU9PW51bGw/dm9pZCAwOmUuc29tZShuPT5uLmluY2x1ZGVzKGAKYCkpKSE9PW51bGwmJnQhPT12b2lkIDA/dDohMX1jb25zdCB3dD1lPT57dmFyIGkscjtsZXQgdDtjb25zdCBuPWUuZGVmaW5pdGlvbnMuZmlsdGVyKHM9PnMua2luZD09PSJPcGVyYXRpb25EZWZpbml0aW9uIik7cmV0dXJuIG4ubGVuZ3RoPT09MSYmKHQ9KHI9KGk9blswXSk9PW51bGw/dm9pZCAwOmkubmFtZSk9PW51bGw/dm9pZCAwOnIudmFsdWUpLHR9LFllPWU9PntpZih0eXBlb2YgZT09InN0cmluZyIpe2xldCBuO3RyeXtjb25zdCBpPUl0KGUpO249d3QoaSl9Y2F0Y2goaSl7fXJldHVybntxdWVyeTplLG9wZXJhdGlvbk5hbWU6bn19Y29uc3QgdD13dChlKTtyZXR1cm57cXVlcnk6JG4oZSksb3BlcmF0aW9uTmFtZTp0fX07Y2xhc3MgZGUgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0LG4pe2NvbnN0IGk9YCR7ZGUuZXh0cmFjdE1lc3NhZ2UodCl9OiAke0pTT04uc3RyaW5naWZ5KHtyZXNwb25zZTp0LHJlcXVlc3Q6bn0pfWA7c3VwZXIoaSksT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsZGUucHJvdG90eXBlKSx0aGlzLnJlc3BvbnNlPXQsdGhpcy5yZXF1ZXN0PW4sdHlwZW9mIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlPT0iZnVuY3Rpb24iJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLGRlKX1zdGF0aWMgZXh0cmFjdE1lc3NhZ2UodCl7dmFyIG4saSxyO3JldHVybihyPShpPShuPXQuZXJyb3JzKT09bnVsbD92b2lkIDA6blswXSk9PW51bGw/dm9pZCAwOmkubWVzc2FnZSkhPW51bGw/cjpgR3JhcGhRTCBFcnJvciAoQ29kZTogJHt0LnN0YXR1c30pYH19dmFyIHFuPXR5cGVvZiBnbG9iYWxUaGlzIT0idW5kZWZpbmVkIj9nbG9iYWxUaGlzOnR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiP3dpbmRvdzp0eXBlb2YgZ2xvYmFsIT0idW5kZWZpbmVkIj9nbG9iYWw6dHlwZW9mIHNlbGYhPSJ1bmRlZmluZWQiP3NlbGY6e307ZnVuY3Rpb24gRHQoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsImRlZmF1bHQiKT9lLmRlZmF1bHQ6ZX12YXIgSmU9e2V4cG9ydHM6e319OyhmdW5jdGlvbihlLHQpe3ZhciBuPXR5cGVvZiBzZWxmIT0idW5kZWZpbmVkIj9zZWxmOnFuLGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKCl7dGhpcy5mZXRjaD0hMSx0aGlzLkRPTUV4Y2VwdGlvbj1uLkRPTUV4Y2VwdGlvbn1yZXR1cm4gcy5wcm90b3R5cGU9bixuZXcgc30oKTsoZnVuY3Rpb24ocyl7KGZ1bmN0aW9uKG8pe3ZhciBjPXtzZWFyY2hQYXJhbXM6IlVSTFNlYXJjaFBhcmFtcyJpbiBzLGl0ZXJhYmxlOiJTeW1ib2wiaW4gcyYmIml0ZXJhdG9yImluIFN5bWJvbCxibG9iOiJGaWxlUmVhZGVyImluIHMmJiJCbG9iImluIHMmJmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgQmxvYiwhMH1jYXRjaChhKXtyZXR1cm4hMX19KCksZm9ybURhdGE6IkZvcm1EYXRhImluIHMsYXJyYXlCdWZmZXI6IkFycmF5QnVmZmVyImluIHN9O2Z1bmN0aW9uIGgoYSl7cmV0dXJuIGEmJkRhdGFWaWV3LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpfWlmKGMuYXJyYXlCdWZmZXIpdmFyIGQ9WyJbb2JqZWN0IEludDhBcnJheV0iLCJbb2JqZWN0IFVpbnQ4QXJyYXldIiwiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLCJbb2JqZWN0IEludDE2QXJyYXldIiwiW29iamVjdCBVaW50MTZBcnJheV0iLCJbb2JqZWN0IEludDMyQXJyYXldIiwiW29iamVjdCBVaW50MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXSx1PUFycmF5QnVmZmVyLmlzVmlld3x8ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmQuaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSkpPi0xfTtmdW5jdGlvbiB5KGEpe2lmKHR5cGVvZiBhIT0ic3RyaW5nIiYmKGE9U3RyaW5nKGEpKSwvW15hLXowLTlcLSMkJSYnKisuXl9gfH5dL2kudGVzdChhKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGNoYXJhY3RlciBpbiBoZWFkZXIgZmllbGQgbmFtZSIpO3JldHVybiBhLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gZyhhKXtyZXR1cm4gdHlwZW9mIGEhPSJzdHJpbmciJiYoYT1TdHJpbmcoYSkpLGF9ZnVuY3Rpb24gYihhKXt2YXIgZj17bmV4dDpmdW5jdGlvbigpe3ZhciBfPWEuc2hpZnQoKTtyZXR1cm57ZG9uZTpfPT09dm9pZCAwLHZhbHVlOl99fX07cmV0dXJuIGMuaXRlcmFibGUmJihmW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gZn0pLGZ9ZnVuY3Rpb24gbShhKXt0aGlzLm1hcD17fSxhIGluc3RhbmNlb2YgbT9hLmZvckVhY2goZnVuY3Rpb24oZixfKXt0aGlzLmFwcGVuZChfLGYpfSx0aGlzKTpBcnJheS5pc0FycmF5KGEpP2EuZm9yRWFjaChmdW5jdGlvbihmKXt0aGlzLmFwcGVuZChmWzBdLGZbMV0pfSx0aGlzKTphJiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGYpe3RoaXMuYXBwZW5kKGYsYVtmXSl9LHRoaXMpfW0ucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbihhLGYpe2E9eShhKSxmPWcoZik7dmFyIF89dGhpcy5tYXBbYV07dGhpcy5tYXBbYV09Xz9fKyIsICIrZjpmfSxtLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oYSl7ZGVsZXRlIHRoaXMubWFwW3koYSldfSxtLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9eShhKSx0aGlzLmhhcyhhKT90aGlzLm1hcFthXTpudWxsfSxtLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KHkoYSkpfSxtLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxmKXt0aGlzLm1hcFt5KGEpXT1nKGYpfSxtLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGEsZil7Zm9yKHZhciBfIGluIHRoaXMubWFwKXRoaXMubWFwLmhhc093blByb3BlcnR5KF8pJiZhLmNhbGwoZix0aGlzLm1hcFtfXSxfLHRoaXMpfSxtLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7dmFyIGE9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihmLF8pe2EucHVzaChfKX0pLGIoYSl9LG0ucHJvdG90eXBlLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZil7YS5wdXNoKGYpfSksYihhKX0sbS5wcm90b3R5cGUuZW50cmllcz1mdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZixfKXthLnB1c2goW18sZl0pfSksYihhKX0sYy5pdGVyYWJsZSYmKG0ucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09bS5wcm90b3R5cGUuZW50cmllcyk7ZnVuY3Rpb24gTihhKXtpZihhLmJvZHlVc2VkKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKCJBbHJlYWR5IHJlYWQiKSk7YS5ib2R5VXNlZD0hMH1mdW5jdGlvbiBSKGEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihmLF8pe2Eub25sb2FkPWZ1bmN0aW9uKCl7ZihhLnJlc3VsdCl9LGEub25lcnJvcj1mdW5jdGlvbigpe18oYS5lcnJvcil9fSl9ZnVuY3Rpb24gUChhKXt2YXIgZj1uZXcgRmlsZVJlYWRlcixfPVIoZik7cmV0dXJuIGYucmVhZEFzQXJyYXlCdWZmZXIoYSksX31mdW5jdGlvbiBxKGEpe3ZhciBmPW5ldyBGaWxlUmVhZGVyLF89UihmKTtyZXR1cm4gZi5yZWFkQXNUZXh0KGEpLF99ZnVuY3Rpb24gdihhKXtmb3IodmFyIGY9bmV3IFVpbnQ4QXJyYXkoYSksXz1uZXcgQXJyYXkoZi5sZW5ndGgpLFM9MDtTPGYubGVuZ3RoO1MrKylfW1NdPVN0cmluZy5mcm9tQ2hhckNvZGUoZltTXSk7cmV0dXJuIF8uam9pbigiIil9ZnVuY3Rpb24gRShhKXtpZihhLnNsaWNlKXJldHVybiBhLnNsaWNlKDApO3ZhciBmPW5ldyBVaW50OEFycmF5KGEuYnl0ZUxlbmd0aCk7cmV0dXJuIGYuc2V0KG5ldyBVaW50OEFycmF5KGEpKSxmLmJ1ZmZlcn1mdW5jdGlvbiB3KCl7cmV0dXJuIHRoaXMuYm9keVVzZWQ9ITEsdGhpcy5faW5pdEJvZHk9ZnVuY3Rpb24oYSl7dGhpcy5fYm9keUluaXQ9YSxhP3R5cGVvZiBhPT0ic3RyaW5nIj90aGlzLl9ib2R5VGV4dD1hOmMuYmxvYiYmQmxvYi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihhKT90aGlzLl9ib2R5QmxvYj1hOmMuZm9ybURhdGEmJkZvcm1EYXRhLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpP3RoaXMuX2JvZHlGb3JtRGF0YT1hOmMuc2VhcmNoUGFyYW1zJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYSk/dGhpcy5fYm9keVRleHQ9YS50b1N0cmluZygpOmMuYXJyYXlCdWZmZXImJmMuYmxvYiYmaChhKT8odGhpcy5fYm9keUFycmF5QnVmZmVyPUUoYS5idWZmZXIpLHRoaXMuX2JvZHlJbml0PW5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSk6Yy5hcnJheUJ1ZmZlciYmKEFycmF5QnVmZmVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpfHx1KGEpKT90aGlzLl9ib2R5QXJyYXlCdWZmZXI9RShhKTp0aGlzLl9ib2R5VGV4dD1hPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKTp0aGlzLl9ib2R5VGV4dD0iIix0aGlzLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKXx8KHR5cGVvZiBhPT0ic3RyaW5nIj90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiKTp0aGlzLl9ib2R5QmxvYiYmdGhpcy5fYm9keUJsb2IudHlwZT90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLHRoaXMuX2JvZHlCbG9iLnR5cGUpOmMuc2VhcmNoUGFyYW1zJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYSkmJnRoaXMuaGVhZGVycy5zZXQoImNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IikpfSxjLmJsb2ImJih0aGlzLmJsb2I9ZnVuY3Rpb24oKXt2YXIgYT1OKHRoaXMpO2lmKGEpcmV0dXJuIGE7aWYodGhpcy5fYm9keUJsb2IpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIGJsb2IiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5VGV4dF0pKX0sdGhpcy5hcnJheUJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ib2R5QXJyYXlCdWZmZXI/Tih0aGlzKXx8UHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcik6dGhpcy5ibG9iKCkudGhlbihQKX0pLHRoaXMudGV4dD1mdW5jdGlvbigpe3ZhciBhPU4odGhpcyk7aWYoYSlyZXR1cm4gYTtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gcSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUodih0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIHRleHQiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlUZXh0KX0sYy5mb3JtRGF0YSYmKHRoaXMuZm9ybURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0KCkudGhlbih4KX0pLHRoaXMuanNvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKEpTT04ucGFyc2UpfSx0aGlzfXZhciBrPVsiREVMRVRFIiwiR0VUIiwiSEVBRCIsIk9QVElPTlMiLCJQT1NUIiwiUFVUIl07ZnVuY3Rpb24gTChhKXt2YXIgZj1hLnRvVXBwZXJDYXNlKCk7cmV0dXJuIGsuaW5kZXhPZihmKT4tMT9mOmF9ZnVuY3Rpb24gSShhLGYpe2Y9Znx8e307dmFyIF89Zi5ib2R5O2lmKGEgaW5zdGFuY2VvZiBJKXtpZihhLmJvZHlVc2VkKXRocm93IG5ldyBUeXBlRXJyb3IoIkFscmVhZHkgcmVhZCIpO3RoaXMudXJsPWEudXJsLHRoaXMuY3JlZGVudGlhbHM9YS5jcmVkZW50aWFscyxmLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IG0oYS5oZWFkZXJzKSksdGhpcy5tZXRob2Q9YS5tZXRob2QsdGhpcy5tb2RlPWEubW9kZSx0aGlzLnNpZ25hbD1hLnNpZ25hbCwhXyYmYS5fYm9keUluaXQhPW51bGwmJihfPWEuX2JvZHlJbml0LGEuYm9keVVzZWQ9ITApfWVsc2UgdGhpcy51cmw9U3RyaW5nKGEpO2lmKHRoaXMuY3JlZGVudGlhbHM9Zi5jcmVkZW50aWFsc3x8dGhpcy5jcmVkZW50aWFsc3x8InNhbWUtb3JpZ2luIiwoZi5oZWFkZXJzfHwhdGhpcy5oZWFkZXJzKSYmKHRoaXMuaGVhZGVycz1uZXcgbShmLmhlYWRlcnMpKSx0aGlzLm1ldGhvZD1MKGYubWV0aG9kfHx0aGlzLm1ldGhvZHx8IkdFVCIpLHRoaXMubW9kZT1mLm1vZGV8fHRoaXMubW9kZXx8bnVsbCx0aGlzLnNpZ25hbD1mLnNpZ25hbHx8dGhpcy5zaWduYWwsdGhpcy5yZWZlcnJlcj1udWxsLCh0aGlzLm1ldGhvZD09PSJHRVQifHx0aGlzLm1ldGhvZD09PSJIRUFEIikmJl8pdGhyb3cgbmV3IFR5cGVFcnJvcigiQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHMiKTt0aGlzLl9pbml0Qm9keShfKX1JLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzLHtib2R5OnRoaXMuX2JvZHlJbml0fSl9O2Z1bmN0aW9uIHgoYSl7dmFyIGY9bmV3IEZvcm1EYXRhO3JldHVybiBhLnRyaW0oKS5zcGxpdCgiJiIpLmZvckVhY2goZnVuY3Rpb24oXyl7aWYoXyl7dmFyIFM9Xy5zcGxpdCgiPSIpLEM9Uy5zaGlmdCgpLnJlcGxhY2UoL1wrL2csIiAiKSxBPVMuam9pbigiPSIpLnJlcGxhY2UoL1wrL2csIiAiKTtmLmFwcGVuZChkZWNvZGVVUklDb21wb25lbnQoQyksZGVjb2RlVVJJQ29tcG9uZW50KEEpKX19KSxmfWZ1bmN0aW9uIHooYSl7dmFyIGY9bmV3IG0sXz1hLnJlcGxhY2UoL1xyP1xuW1x0IF0rL2csIiAiKTtyZXR1cm4gXy5zcGxpdCgvXHI/XG4vKS5mb3JFYWNoKGZ1bmN0aW9uKFMpe3ZhciBDPVMuc3BsaXQoIjoiKSxBPUMuc2hpZnQoKS50cmltKCk7aWYoQSl7dmFyIEs9Qy5qb2luKCI6IikudHJpbSgpO2YuYXBwZW5kKEEsSyl9fSksZn13LmNhbGwoSS5wcm90b3R5cGUpO2Z1bmN0aW9uIFYoYSxmKXtmfHwoZj17fSksdGhpcy50eXBlPSJkZWZhdWx0Iix0aGlzLnN0YXR1cz1mLnN0YXR1cz09PXZvaWQgMD8yMDA6Zi5zdGF0dXMsdGhpcy5vaz10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDAsdGhpcy5zdGF0dXNUZXh0PSJzdGF0dXNUZXh0ImluIGY/Zi5zdGF0dXNUZXh0OiJPSyIsdGhpcy5oZWFkZXJzPW5ldyBtKGYuaGVhZGVycyksdGhpcy51cmw9Zi51cmx8fCIiLHRoaXMuX2luaXRCb2R5KGEpfXcuY2FsbChWLnByb3RvdHlwZSksVi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFYodGhpcy5fYm9keUluaXQse3N0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0OnRoaXMuc3RhdHVzVGV4dCxoZWFkZXJzOm5ldyBtKHRoaXMuaGVhZGVycyksdXJsOnRoaXMudXJsfSl9LFYuZXJyb3I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgVihudWxsLHtzdGF0dXM6MCxzdGF0dXNUZXh0OiIifSk7cmV0dXJuIGEudHlwZT0iZXJyb3IiLGF9O3ZhciBIPVszMDEsMzAyLDMwMywzMDcsMzA4XTtWLnJlZGlyZWN0PWZ1bmN0aW9uKGEsZil7aWYoSC5pbmRleE9mKGYpPT09LTEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgc3RhdHVzIGNvZGUiKTtyZXR1cm4gbmV3IFYobnVsbCx7c3RhdHVzOmYsaGVhZGVyczp7bG9jYXRpb246YX19KX0sby5ET01FeGNlcHRpb249cy5ET01FeGNlcHRpb247dHJ5e25ldyBvLkRPTUV4Y2VwdGlvbn1jYXRjaChhKXtvLkRPTUV4Y2VwdGlvbj1mdW5jdGlvbihmLF8pe3RoaXMubWVzc2FnZT1mLHRoaXMubmFtZT1fO3ZhciBTPUVycm9yKGYpO3RoaXMuc3RhY2s9Uy5zdGFja30sby5ET01FeGNlcHRpb24ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxvLkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3I9by5ET01FeGNlcHRpb259ZnVuY3Rpb24gWChhLGYpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihfLFMpe3ZhciBDPW5ldyBJKGEsZik7aWYoQy5zaWduYWwmJkMuc2lnbmFsLmFib3J0ZWQpcmV0dXJuIFMobmV3IG8uRE9NRXhjZXB0aW9uKCJBYm9ydGVkIiwiQWJvcnRFcnJvciIpKTt2YXIgQT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZnVuY3Rpb24gSygpe0EuYWJvcnQoKX1BLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBqPXtzdGF0dXM6QS5zdGF0dXMsc3RhdHVzVGV4dDpBLnN0YXR1c1RleHQsaGVhZGVyczp6KEEuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCl8fCIiKX07ai51cmw9InJlc3BvbnNlVVJMImluIEE/QS5yZXNwb25zZVVSTDpqLmhlYWRlcnMuZ2V0KCJYLVJlcXVlc3QtVVJMIik7dmFyIFc9InJlc3BvbnNlImluIEE/QS5yZXNwb25zZTpBLnJlc3BvbnNlVGV4dDtfKG5ldyBWKFcsaikpfSxBLm9uZXJyb3I9ZnVuY3Rpb24oKXtTKG5ldyBUeXBlRXJyb3IoIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWQiKSl9LEEub250aW1lb3V0PWZ1bmN0aW9uKCl7UyhuZXcgVHlwZUVycm9yKCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSxBLm9uYWJvcnQ9ZnVuY3Rpb24oKXtTKG5ldyBvLkRPTUV4Y2VwdGlvbigiQWJvcnRlZCIsIkFib3J0RXJyb3IiKSl9LEEub3BlbihDLm1ldGhvZCxDLnVybCwhMCksQy5jcmVkZW50aWFscz09PSJpbmNsdWRlIj9BLndpdGhDcmVkZW50aWFscz0hMDpDLmNyZWRlbnRpYWxzPT09Im9taXQiJiYoQS53aXRoQ3JlZGVudGlhbHM9ITEpLCJyZXNwb25zZVR5cGUiaW4gQSYmYy5ibG9iJiYoQS5yZXNwb25zZVR5cGU9ImJsb2IiKSxDLmhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihqLFcpe0Euc2V0UmVxdWVzdEhlYWRlcihXLGopfSksQy5zaWduYWwmJihDLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSyksQS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtBLnJlYWR5U3RhdGU9PT00JiZDLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsSyl9KSxBLnNlbmQodHlwZW9mIEMuX2JvZHlJbml0PT0idW5kZWZpbmVkIj9udWxsOkMuX2JvZHlJbml0KX0pfXJldHVybiBYLnBvbHlmaWxsPSEwLHMuZmV0Y2h8fChzLmZldGNoPVgscy5IZWFkZXJzPW0scy5SZXF1ZXN0PUkscy5SZXNwb25zZT1WKSxvLkhlYWRlcnM9bSxvLlJlcXVlc3Q9SSxvLlJlc3BvbnNlPVYsby5mZXRjaD1YLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxvfSkoe30pfSkoaSksaS5mZXRjaC5wb255ZmlsbD0hMCxkZWxldGUgaS5mZXRjaC5wb2x5ZmlsbDt2YXIgcj1pO3Q9ci5mZXRjaCx0LmRlZmF1bHQ9ci5mZXRjaCx0LmZldGNoPXIuZmV0Y2gsdC5IZWFkZXJzPXIuSGVhZGVycyx0LlJlcXVlc3Q9ci5SZXF1ZXN0LHQuUmVzcG9uc2U9ci5SZXNwb25zZSxlLmV4cG9ydHM9dH0pKEplLEplLmV4cG9ydHMpO3ZhciBRZT1KZS5leHBvcnRzLFJlPUR0KFFlKSxqbj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxkZWZhdWx0OlJlfSk7Y29uc3QgcGU9ZT0+e2xldCB0PXt9O3JldHVybiBlJiYodHlwZW9mIEhlYWRlcnMhPSJ1bmRlZmluZWQiJiZlIGluc3RhbmNlb2YgSGVhZGVyc3x8am4mJlFlLkhlYWRlcnMmJmUgaW5zdGFuY2VvZiBRZS5IZWFkZXJzP3Q9JChlKTpBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaCgoW24saV0pPT57biYmaSE9PXZvaWQgMCYmKHRbbl09aSl9KTp0PWUpLHR9LGt0PWU9PmUucmVwbGFjZSgvKFtccyxdfCNbXlxuXHJdKykrL2csIiAiKS50cmltKCksR249ZT0+e2lmKCFBcnJheS5pc0FycmF5KGUucXVlcnkpKXtjb25zdCBpPWUscj1bYHF1ZXJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGt0KGkucXVlcnkpKX1gXTtyZXR1cm4gZS52YXJpYWJsZXMmJnIucHVzaChgdmFyaWFibGVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGkuanNvblNlcmlhbGl6ZXIuc3RyaW5naWZ5KGkudmFyaWFibGVzKSl9YCksaS5vcGVyYXRpb25OYW1lJiZyLnB1c2goYG9wZXJhdGlvbk5hbWU9JHtlbmNvZGVVUklDb21wb25lbnQoaS5vcGVyYXRpb25OYW1lKX1gKSxyLmpvaW4oIiYiKX1pZih0eXBlb2YgZS52YXJpYWJsZXMhPSJ1bmRlZmluZWQiJiYhQXJyYXkuaXNBcnJheShlLnZhcmlhYmxlcykpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY3JlYXRlIHF1ZXJ5IHdpdGggZ2l2ZW4gdmFyaWFibGUgdHlwZSwgYXJyYXkgZXhwZWN0ZWQiKTtjb25zdCB0PWUsbj1lLnF1ZXJ5LnJlZHVjZSgoaSxyLHMpPT4oaS5wdXNoKHtxdWVyeTprdChyKSx2YXJpYWJsZXM6dC52YXJpYWJsZXM/dC5qc29uU2VyaWFsaXplci5zdHJpbmdpZnkodC52YXJpYWJsZXNbc10pOnZvaWQgMH0pLGkpLFtdKTtyZXR1cm5gcXVlcnk9JHtlbmNvZGVVUklDb21wb25lbnQodC5qc29uU2VyaWFsaXplci5zdHJpbmdpZnkobikpfWB9LHpuPWU9PnQ9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe3ZhciBOO2NvbnN0e3VybDpuLHF1ZXJ5OmksdmFyaWFibGVzOnIsb3BlcmF0aW9uTmFtZTpzLGZldGNoOm8sZmV0Y2hPcHRpb25zOmMsbWlkZGxld2FyZTpofT10LGQ9RCh7fSx0LmhlYWRlcnMpO2xldCB1PSIiLHk7ZT09PSJQT1NUIj8oeT1ZbihpLHIscyxjLmpzb25TZXJpYWxpemVyKSx0eXBlb2YgeT09InN0cmluZyImJihkWyJDb250ZW50LVR5cGUiXT0iYXBwbGljYXRpb24vanNvbiIpKTp1PUduKHtxdWVyeTppLHZhcmlhYmxlczpyLG9wZXJhdGlvbk5hbWU6cyxqc29uU2VyaWFsaXplcjooTj1jLmpzb25TZXJpYWxpemVyKSE9bnVsbD9OOkZ9KTtjb25zdCBnPUQoe21ldGhvZDplLGhlYWRlcnM6ZCxib2R5Onl9LGMpO2xldCBiPW4sbT1nO2lmKGgpe2NvbnN0IFI9eWllbGQgUHJvbWlzZS5yZXNvbHZlKGgoJGUoRCh7fSxnKSx7dXJsOm4sb3BlcmF0aW9uTmFtZTpzLHZhcmlhYmxlczpyfSkpKSx7dXJsOnF9PVIsdj1nZShSLFsidXJsIl0pO2I9cSxtPXZ9cmV0dXJuIHUmJihiPWAke2J9PyR7dX1gKSx5aWVsZCBvKGIsbSl9KTtjbGFzcyBIbntjb25zdHJ1Y3Rvcih0LG49e30pe3RoaXMudXJsPXQsdGhpcy5yZXF1ZXN0Q29uZmlnPW4sdGhpcy5yYXdSZXF1ZXN0PSguLi5pKT0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3RbcixzLG9dPWksYz1PZShyLHMsbyksUj10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6aCxmZXRjaDpkPVJlLG1ldGhvZDp1PSJQT1NUIixyZXF1ZXN0TWlkZGxld2FyZTp5LHJlc3BvbnNlTWlkZGxld2FyZTpnfT1SLGI9Z2UoUixbImhlYWRlcnMiLCJmZXRjaCIsIm1ldGhvZCIsInJlcXVlc3RNaWRkbGV3YXJlIiwicmVzcG9uc2VNaWRkbGV3YXJlIl0pLHt1cmw6bX09dGhpcztjLnNpZ25hbCE9PXZvaWQgMCYmKGIuc2lnbmFsPWMuc2lnbmFsKTtjb25zdHtvcGVyYXRpb25OYW1lOk59PVllKGMucXVlcnkpO3JldHVybiBYZSh7dXJsOm0scXVlcnk6Yy5xdWVyeSx2YXJpYWJsZXM6Yy52YXJpYWJsZXMsaGVhZGVyczpEKEQoe30scGUoV2UoaCkpKSxwZShjLnJlcXVlc3RIZWFkZXJzKSksb3BlcmF0aW9uTmFtZTpOLGZldGNoOmQsbWV0aG9kOnUsZmV0Y2hPcHRpb25zOmIsbWlkZGxld2FyZTp5fSkudGhlbihQPT4oZyYmZyhQKSxQKSkuY2F0Y2goUD0+e3Rocm93IGcmJmcoUCksUH0pfSl9cmVxdWVzdCh0LC4uLm4pe3JldHVybiBKKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdFtpLHJdPW4scz1lZSh0LGksciksTj10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6byxmZXRjaDpjPVJlLG1ldGhvZDpoPSJQT1NUIixyZXF1ZXN0TWlkZGxld2FyZTpkLHJlc3BvbnNlTWlkZGxld2FyZTp1fT1OLHk9Z2UoTixbImhlYWRlcnMiLCJmZXRjaCIsIm1ldGhvZCIsInJlcXVlc3RNaWRkbGV3YXJlIiwicmVzcG9uc2VNaWRkbGV3YXJlIl0pLHt1cmw6Z309dGhpcztzLnNpZ25hbCE9PXZvaWQgMCYmKHkuc2lnbmFsPXMuc2lnbmFsKTtjb25zdHtxdWVyeTpiLG9wZXJhdGlvbk5hbWU6bX09WWUocy5kb2N1bWVudCk7cmV0dXJuIFhlKHt1cmw6ZyxxdWVyeTpiLHZhcmlhYmxlczpzLnZhcmlhYmxlcyxoZWFkZXJzOkQoRCh7fSxwZShXZShvKSkpLHBlKHMucmVxdWVzdEhlYWRlcnMpKSxvcGVyYXRpb25OYW1lOm0sZmV0Y2g6YyxtZXRob2Q6aCxmZXRjaE9wdGlvbnM6eSxtaWRkbGV3YXJlOmR9KS50aGVuKFI9Pih1JiZ1KFIpLFIuZGF0YSkpLmNhdGNoKFI9Pnt0aHJvdyB1JiZ1KFIpLFJ9KX0pfWJhdGNoUmVxdWVzdHModCxuKXt2YXIgZDtjb25zdCBpPVVlKHQsbiksaD10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6cn09aCxzPWdlKGgsWyJoZWFkZXJzIl0pO2kuc2lnbmFsIT09dm9pZCAwJiYocy5zaWduYWw9aS5zaWduYWwpO2NvbnN0IG89aS5kb2N1bWVudHMubWFwKCh7ZG9jdW1lbnQ6dX0pPT5ZZSh1KS5xdWVyeSksYz1pLmRvY3VtZW50cy5tYXAoKHt2YXJpYWJsZXM6dX0pPT51KTtyZXR1cm4gWGUoe3VybDp0aGlzLnVybCxxdWVyeTpvLHZhcmlhYmxlczpjLGhlYWRlcnM6RChEKHt9LHBlKFdlKHIpKSkscGUoaS5yZXF1ZXN0SGVhZGVycykpLG9wZXJhdGlvbk5hbWU6dm9pZCAwLGZldGNoOihkPXRoaXMucmVxdWVzdENvbmZpZy5mZXRjaCkhPW51bGw/ZDpSZSxtZXRob2Q6dGhpcy5yZXF1ZXN0Q29uZmlnLm1ldGhvZHx8IlBPU1QiLGZldGNoT3B0aW9uczpzLG1pZGRsZXdhcmU6dGhpcy5yZXF1ZXN0Q29uZmlnLnJlcXVlc3RNaWRkbGV3YXJlfSkudGhlbih1PT4odGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSYmdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSh1KSx1LmRhdGEpKS5jYXRjaCh1PT57dGhyb3cgdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSYmdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSh1KSx1fSl9c2V0SGVhZGVycyh0KXtyZXR1cm4gdGhpcy5yZXF1ZXN0Q29uZmlnLmhlYWRlcnM9dCx0aGlzfXNldEhlYWRlcih0LG4pe2NvbnN0e2hlYWRlcnM6aX09dGhpcy5yZXF1ZXN0Q29uZmlnO3JldHVybiBpP2lbdF09bjp0aGlzLnJlcXVlc3RDb25maWcuaGVhZGVycz17W3RdOm59LHRoaXN9c2V0RW5kcG9pbnQodCl7cmV0dXJuIHRoaXMudXJsPXQsdGhpc319Y29uc3QgWGU9ZT0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7dmFyIHUseTtjb25zdHtxdWVyeTp0LHZhcmlhYmxlczpuLGZldGNoT3B0aW9uczppfT1lLHI9em4oQigodT1lLm1ldGhvZCkhPW51bGw/dToicG9zdCIpKSxzPUFycmF5LmlzQXJyYXkoZS5xdWVyeSksbz15aWVsZCByKGUpLGM9eWllbGQgSm4obywoeT1pLmpzb25TZXJpYWxpemVyKSE9bnVsbD95OkYpLGg9QXJyYXkuaXNBcnJheShjKT8hYy5zb21lKCh7ZGF0YTpifSk9PiFiKTohIWMuZGF0YSxkPUFycmF5LmlzQXJyYXkoYyl8fCFjLmVycm9yc3x8QXJyYXkuaXNBcnJheShjLmVycm9ycykmJiFjLmVycm9ycy5sZW5ndGh8fGkuZXJyb3JQb2xpY3k9PT0iYWxsInx8aS5lcnJvclBvbGljeT09PSJpZ25vcmUiO2lmKG8ub2smJmQmJmgpe2NvbnN0IGc9KEFycmF5LmlzQXJyYXkoYyksYykse2Vycm9yczpifT1nLG09Z2UoZyxbImVycm9ycyJdKSxOPWkuZXJyb3JQb2xpY3k9PT0iaWdub3JlIj9tOmM7cmV0dXJuICRlKEQoe30scz97ZGF0YTpOfTpOKSx7aGVhZGVyczpvLmhlYWRlcnMsc3RhdHVzOm8uc3RhdHVzfSl9ZWxzZXtjb25zdCBiPXR5cGVvZiBjPT0ic3RyaW5nIj97ZXJyb3I6Y306Yzt0aHJvdyBuZXcgZGUoJGUoRCh7fSxiKSx7c3RhdHVzOm8uc3RhdHVzLGhlYWRlcnM6by5oZWFkZXJzfSkse3F1ZXJ5OnQsdmFyaWFibGVzOm59KX19KSxZbj0oZSx0LG4saSk9Pntjb25zdCByPWkhPW51bGw/aTpGO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiByLnN0cmluZ2lmeSh7cXVlcnk6ZSx2YXJpYWJsZXM6dCxvcGVyYXRpb25OYW1lOm59KTtpZih0eXBlb2YgdCE9InVuZGVmaW5lZCImJiFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNyZWF0ZSByZXF1ZXN0IGJvZHkgd2l0aCBnaXZlbiB2YXJpYWJsZSB0eXBlLCBhcnJheSBleHBlY3RlZCIpO2NvbnN0IHM9ZS5yZWR1Y2UoKG8sYyxoKT0+KG8ucHVzaCh7cXVlcnk6Yyx2YXJpYWJsZXM6dD90W2hdOnZvaWQgMH0pLG8pLFtdKTtyZXR1cm4gci5zdHJpbmdpZnkocyl9LEpuPShlLHQpPT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtsZXQgbjtyZXR1cm4gZS5oZWFkZXJzLmZvckVhY2goKGkscik9PntyLnRvTG93ZXJDYXNlKCk9PT0iY29udGVudC10eXBlIiYmKG49aSl9KSxuJiYobi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2pzb24iKXx8bi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2dyYXBocWwranNvbiIpfHxuLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgiYXBwbGljYXRpb24vZ3JhcGhxbC1yZXNwb25zZStqc29uIikpP3QucGFyc2UoeWllbGQgZS50ZXh0KCkpOmUudGV4dCgpfSksV2U9ZT0+dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZSgpOmU7dmFyIFplPXtleHBvcnRzOnt9fTsoZnVuY3Rpb24oZSx0KXt0PWUuZXhwb3J0cz1uLHQuZ2V0U2VyaWFsaXplPWk7ZnVuY3Rpb24gbihyLHMsbyxjKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkocixpKHMsYyksbyl9ZnVuY3Rpb24gaShyLHMpe3ZhciBvPVtdLGM9W107cmV0dXJuIHM9PW51bGwmJihzPWZ1bmN0aW9uKGgsZCl7cmV0dXJuIG9bMF09PT1kPyJbQ2lyY3VsYXIgfl0iOiJbQ2lyY3VsYXIgfi4iK2Muc2xpY2UoMCxvLmluZGV4T2YoZCkpLmpvaW4oIi4iKSsiXSJ9KSxmdW5jdGlvbihoLGQpe2lmKG8ubGVuZ3RoPjApe3ZhciB1PW8uaW5kZXhPZih0aGlzKTt+dT9vLnNwbGljZSh1KzEpOm8ucHVzaCh0aGlzKSx+dT9jLnNwbGljZSh1LDEvMCxoKTpjLnB1c2goaCksfm8uaW5kZXhPZihkKSYmKGQ9cy5jYWxsKHRoaXMsaCxkKSl9ZWxzZSBvLnB1c2goZCk7cmV0dXJuIHI9PW51bGw/ZDpyLmNhbGwodGhpcyxoLGQpfX19KShaZSxaZS5leHBvcnRzKTt2YXIgUW49WmUuZXhwb3J0cyxtZT1EdChRbik7Y29uc3QgQ3Q9MWUzKjE1O3ZhciBQZT1mdW5jdGlvbigpe3JldHVybiBQZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIG4saT0xLHI9YXJndW1lbnRzLmxlbmd0aDtpPHI7aSsrKXtuPWFyZ3VtZW50c1tpXTtmb3IodmFyIHMgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixzKSYmKHRbc109bltzXSl9cmV0dXJuIHR9LFBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dHlwZW9mIFN1cHByZXNzZWRFcnJvcj09ImZ1bmN0aW9uIiYmU3VwcHJlc3NlZEVycm9yO3ZhciBMZT1uZXcgTWFwLEtlPW5ldyBNYXAsUnQ9ITAsRmU9ITE7ZnVuY3Rpb24gUHQoZSl7cmV0dXJuIGUucmVwbGFjZSgvW1xzLF0rL2csIiAiKS50cmltKCl9ZnVuY3Rpb24gWG4oZSl7cmV0dXJuIFB0KGUuc291cmNlLmJvZHkuc3Vic3RyaW5nKGUuc3RhcnQsZS5lbmQpKX1mdW5jdGlvbiBXbihlKXt2YXIgdD1uZXcgU2V0LG49W107cmV0dXJuIGUuZGVmaW5pdGlvbnMuZm9yRWFjaChmdW5jdGlvbihpKXtpZihpLmtpbmQ9PT0iRnJhZ21lbnREZWZpbml0aW9uIil7dmFyIHI9aS5uYW1lLnZhbHVlLHM9WG4oaS5sb2MpLG89S2UuZ2V0KHIpO28mJiFvLmhhcyhzKT9SdCYmY29uc29sZS53YXJuKCJXYXJuaW5nOiBmcmFnbWVudCB3aXRoIG5hbWUgIityK2AgYWxyZWFkeSBleGlzdHMuCmdyYXBocWwtdGFnIGVuZm9yY2VzIGFsbCBmcmFnbWVudCBuYW1lcyBhY3Jvc3MgeW91ciBhcHBsaWNhdGlvbiB0byBiZSB1bmlxdWU7IHJlYWQgbW9yZSBhYm91dAp0aGlzIGluIHRoZSBkb2NzOiBodHRwOi8vZGV2LmFwb2xsb2RhdGEuY29tL2NvcmUvZnJhZ21lbnRzLmh0bWwjdW5pcXVlLW5hbWVzYCk6b3x8S2Uuc2V0KHIsbz1uZXcgU2V0KSxvLmFkZChzKSx0LmhhcyhzKXx8KHQuYWRkKHMpLG4ucHVzaChpKSl9ZWxzZSBuLnB1c2goaSl9KSxQZShQZSh7fSxlKSx7ZGVmaW5pdGlvbnM6bn0pfWZ1bmN0aW9uIFpuKGUpe3ZhciB0PW5ldyBTZXQoZS5kZWZpbml0aW9ucyk7dC5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kubG9jJiZkZWxldGUgaS5sb2MsT2JqZWN0LmtleXMoaSkuZm9yRWFjaChmdW5jdGlvbihyKXt2YXIgcz1pW3JdO3MmJnR5cGVvZiBzPT0ib2JqZWN0IiYmdC5hZGQocyl9KX0pO3ZhciBuPWUubG9jO3JldHVybiBuJiYoZGVsZXRlIG4uc3RhcnRUb2tlbixkZWxldGUgbi5lbmRUb2tlbiksZX1mdW5jdGlvbiBLbihlKXt2YXIgdD1QdChlKTtpZighTGUuaGFzKHQpKXt2YXIgbj1JdChlLHtleHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlczpGZSxhbGxvd0xlZ2FjeUZyYWdtZW50VmFyaWFibGVzOkZlfSk7aWYoIW58fG4ua2luZCE9PSJEb2N1bWVudCIpdGhyb3cgbmV3IEVycm9yKCJOb3QgYSB2YWxpZCBHcmFwaFFMIGRvY3VtZW50LiIpO0xlLnNldCh0LFpuKFduKG4pKSl9cmV0dXJuIExlLmdldCh0KX1mdW5jdGlvbiBRKGUpe2Zvcih2YXIgdD1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W24tMV09YXJndW1lbnRzW25dO3R5cGVvZiBlPT0ic3RyaW5nIiYmKGU9W2VdKTt2YXIgaT1lWzBdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24ocixzKXtyJiZyLmtpbmQ9PT0iRG9jdW1lbnQiP2krPXIubG9jLnNvdXJjZS5ib2R5OmkrPXIsaSs9ZVtzKzFdfSksS24oaSl9ZnVuY3Rpb24gZXIoKXtMZS5jbGVhcigpLEtlLmNsZWFyKCl9ZnVuY3Rpb24gdHIoKXtSdD0hMX1mdW5jdGlvbiBucigpe0ZlPSEwfWZ1bmN0aW9uIHJyKCl7RmU9ITF9dmFyIE5lPXtncWw6USxyZXNldENhY2hlczplcixkaXNhYmxlRnJhZ21lbnRXYXJuaW5nczp0cixlbmFibGVFeHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlczpucixkaXNhYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM6cnJ9OyhmdW5jdGlvbihlKXtlLmdxbD1OZS5ncWwsZS5yZXNldENhY2hlcz1OZS5yZXNldENhY2hlcyxlLmRpc2FibGVGcmFnbWVudFdhcm5pbmdzPU5lLmRpc2FibGVGcmFnbWVudFdhcm5pbmdzLGUuZW5hYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM9TmUuZW5hYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXMsZS5kaXNhYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM9TmUuZGlzYWJsZUV4cGVyaW1lbnRhbEZyYWdtZW50VmFyaWFibGVzfSkoUXx8KFE9e30pKSxRLmRlZmF1bHQ9UTtjb25zdCBMdD1RYAoJZnJhZ21lbnQgTWF0Y2hQYXJ0cyBvbiBNYXRjaENvbmZpZyB7CgkJcmVnZXhWYWx1ZQoJCW1hdGNoVmFsdWUKCX0KYCxpcj1RYAoJbXV0YXRpb24gUHVzaFBheWxvYWQoCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHBheWxvYWRfaWQ6IElEIQoJCSRldmVudHM6IFJlcGxheUV2ZW50c0lucHV0IQoJCSRtZXNzYWdlczogU3RyaW5nIQoJCSRyZXNvdXJjZXM6IFN0cmluZyEKCQkkd2ViX3NvY2tldF9ldmVudHM6IFN0cmluZyEKCQkkZXJyb3JzOiBbRXJyb3JPYmplY3RJbnB1dF0hCgkJJGlzX2JlYWNvbjogQm9vbGVhbgoJCSRoYXNfc2Vzc2lvbl91bmxvYWRlZDogQm9vbGVhbgoJCSRoaWdobGlnaHRfbG9nczogU3RyaW5nCgkpIHsKCQlwdXNoUGF5bG9hZCgKCQkJc2Vzc2lvbl9zZWN1cmVfaWQ6ICRzZXNzaW9uX3NlY3VyZV9pZAoJCQlwYXlsb2FkX2lkOiAkcGF5bG9hZF9pZAoJCQlldmVudHM6ICRldmVudHMKCQkJbWVzc2FnZXM6ICRtZXNzYWdlcwoJCQlyZXNvdXJjZXM6ICRyZXNvdXJjZXMKCQkJd2ViX3NvY2tldF9ldmVudHM6ICR3ZWJfc29ja2V0X2V2ZW50cwoJCQllcnJvcnM6ICRlcnJvcnMKCQkJaXNfYmVhY29uOiAkaXNfYmVhY29uCgkJCWhhc19zZXNzaW9uX3VubG9hZGVkOiAkaGFzX3Nlc3Npb25fdW5sb2FkZWQKCQkJaGlnaGxpZ2h0X2xvZ3M6ICRoaWdobGlnaHRfbG9ncwoJCSkKCX0KYCxzcj1RYAoJbXV0YXRpb24gUHVzaFNlc3Npb25FdmVudHMoCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHBheWxvYWRfaWQ6IEludDY0SUQhCgkJJGRhdGE6IFN0cmluZyEKCSkgewoJCXB1c2hTZXNzaW9uRXZlbnRzKAoJCQlzZXNzaW9uX3NlY3VyZV9pZDogJHNlc3Npb25fc2VjdXJlX2lkCgkJCXBheWxvYWRfaWQ6ICRwYXlsb2FkX2lkCgkJCWRhdGE6ICRkYXRhCgkJKQoJfQpgLG9yPVFgCgltdXRhdGlvbiBpZGVudGlmeVNlc3Npb24oCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHVzZXJfaWRlbnRpZmllcjogU3RyaW5nIQoJCSR1c2VyX29iamVjdDogQW55CgkpIHsKCQlpZGVudGlmeVNlc3Npb24oCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJdXNlcl9pZGVudGlmaWVyOiAkdXNlcl9pZGVudGlmaWVyCgkJCXVzZXJfb2JqZWN0OiAkdXNlcl9vYmplY3QKCQkpCgl9CmAsYXI9UWAKCW11dGF0aW9uIGFkZFNlc3Npb25Qcm9wZXJ0aWVzKAoJCSRzZXNzaW9uX3NlY3VyZV9pZDogU3RyaW5nIQoJCSRwcm9wZXJ0aWVzX29iamVjdDogQW55CgkpIHsKCQlhZGRTZXNzaW9uUHJvcGVydGllcygKCQkJc2Vzc2lvbl9zZWN1cmVfaWQ6ICRzZXNzaW9uX3NlY3VyZV9pZAoJCQlwcm9wZXJ0aWVzX29iamVjdDogJHByb3BlcnRpZXNfb2JqZWN0CgkJKQoJfQpgLGNyPVFgCgltdXRhdGlvbiBwdXNoTWV0cmljcygkbWV0cmljczogW01ldHJpY0lucHV0XSEpIHsKCQlwdXNoTWV0cmljcyhtZXRyaWNzOiAkbWV0cmljcykKCX0KYCx1cj1RYAoJbXV0YXRpb24gYWRkU2Vzc2lvbkZlZWRiYWNrKAoJCSRzZXNzaW9uX3NlY3VyZV9pZDogU3RyaW5nIQoJCSR1c2VyX25hbWU6IFN0cmluZwoJCSR1c2VyX2VtYWlsOiBTdHJpbmcKCQkkdmVyYmF0aW06IFN0cmluZyEKCQkkdGltZXN0YW1wOiBUaW1lc3RhbXAhCgkpIHsKCQlhZGRTZXNzaW9uRmVlZGJhY2soCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJdXNlcl9uYW1lOiAkdXNlcl9uYW1lCgkJCXVzZXJfZW1haWw6ICR1c2VyX2VtYWlsCgkJCXZlcmJhdGltOiAkdmVyYmF0aW0KCQkJdGltZXN0YW1wOiAkdGltZXN0YW1wCgkJKQoJfQpgLGxyPVFgCgltdXRhdGlvbiBpbml0aWFsaXplU2Vzc2lvbigKCQkkc2Vzc2lvbl9zZWN1cmVfaWQ6IFN0cmluZyEKCQkkc2Vzc2lvbl9rZXk6IFN0cmluZwoJCSRvcmdhbml6YXRpb25fdmVyYm9zZV9pZDogU3RyaW5nIQoJCSRlbmFibGVfc3RyaWN0X3ByaXZhY3k6IEJvb2xlYW4hCgkJJHByaXZhY3lfc2V0dGluZzogU3RyaW5nIQoJCSRlbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHM6IEJvb2xlYW4hCgkJJGNsaWVudFZlcnNpb246IFN0cmluZyEKCQkkZmlyc3Rsb2FkVmVyc2lvbjogU3RyaW5nIQoJCSRjbGllbnRDb25maWc6IFN0cmluZyEKCQkkZW52aXJvbm1lbnQ6IFN0cmluZyEKCQkkaWQ6IFN0cmluZyEKCQkkYXBwVmVyc2lvbjogU3RyaW5nCgkJJHNlcnZpY2VOYW1lOiBTdHJpbmchCgkJJGNsaWVudF9pZDogU3RyaW5nIQoJCSRuZXR3b3JrX3JlY29yZGluZ19kb21haW5zOiBbU3RyaW5nIV0KCQkkZGlzYWJsZV9zZXNzaW9uX3JlY29yZGluZzogQm9vbGVhbgoJKSB7CgkJaW5pdGlhbGl6ZVNlc3Npb24oCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJc2Vzc2lvbl9rZXk6ICRzZXNzaW9uX2tleQoJCQlvcmdhbml6YXRpb25fdmVyYm9zZV9pZDogJG9yZ2FuaXphdGlvbl92ZXJib3NlX2lkCgkJCWVuYWJsZV9zdHJpY3RfcHJpdmFjeTogJGVuYWJsZV9zdHJpY3RfcHJpdmFjeQoJCQllbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHM6ICRlbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHMKCQkJY2xpZW50VmVyc2lvbjogJGNsaWVudFZlcnNpb24KCQkJZmlyc3Rsb2FkVmVyc2lvbjogJGZpcnN0bG9hZFZlcnNpb24KCQkJY2xpZW50Q29uZmlnOiAkY2xpZW50Q29uZmlnCgkJCWVudmlyb25tZW50OiAkZW52aXJvbm1lbnQKCQkJYXBwVmVyc2lvbjogJGFwcFZlcnNpb24KCQkJc2VydmljZU5hbWU6ICRzZXJ2aWNlTmFtZQoJCQlmaW5nZXJwcmludDogJGlkCgkJCWNsaWVudF9pZDogJGNsaWVudF9pZAoJCQluZXR3b3JrX3JlY29yZGluZ19kb21haW5zOiAkbmV0d29ya19yZWNvcmRpbmdfZG9tYWlucwoJCQlkaXNhYmxlX3Nlc3Npb25fcmVjb3JkaW5nOiAkZGlzYWJsZV9zZXNzaW9uX3JlY29yZGluZwoJCQlwcml2YWN5X3NldHRpbmc6ICRwcml2YWN5X3NldHRpbmcKCQkpIHsKCQkJc2VjdXJlX2lkCgkJCXByb2plY3RfaWQKCQkJc2FtcGxpbmcgewoJCQkJc3BhbnMgewoJCQkJCW5hbWUgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZXMgewoJCQkJCQlrZXkgewoJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQl9CgkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQl9CgkJCQkJZXZlbnRzIHsKCQkJCQkJbmFtZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQkJYXR0cmlidXRlcyB7CgkJCQkJCQlrZXkgewoJCQkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQkJCX0KCQkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJCXNhbXBsaW5nUmF0aW8KCQkJCX0KCQkJCWxvZ3MgewoJCQkJCW1lc3NhZ2UgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCXNldmVyaXR5VGV4dCB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQkJYXR0cmlidXRlcyB7CgkJCQkJCWtleSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQkJYXR0cmlidXRlIHsKCQkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQkJfQoJCQkJCX0KCQkJCQlzYW1wbGluZ1JhdGlvCgkJCQl9CgkJCX0KCQl9Cgl9Cgkke0x0fQpgLGhyPVFgCglxdWVyeSBJZ25vcmUoJGlkOiBJRCEpIHsKCQlpZ25vcmUoaWQ6ICRpZCkKCX0KYCxmcj1RYAoJcXVlcnkgR2V0U2FtcGxpbmdDb25maWcoJG9yZ2FuaXphdGlvbl92ZXJib3NlX2lkOiBTdHJpbmchKSB7CgkJc2FtcGxpbmcob3JnYW5pemF0aW9uX3ZlcmJvc2VfaWQ6ICRvcmdhbml6YXRpb25fdmVyYm9zZV9pZCkgewoJCQlzcGFucyB7CgkJCQluYW1lIHsKCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQl9CgkJCQlhdHRyaWJ1dGVzIHsKCQkJCQlrZXkgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQl9CgkJCQlldmVudHMgewoJCQkJCW5hbWUgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZXMgewoJCQkJCQlrZXkgewoJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQl9CgkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlzYW1wbGluZ1JhdGlvCgkJCX0KCQkJbG9ncyB7CgkJCQltZXNzYWdlIHsKCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQl9CgkJCQlzZXZlcml0eVRleHQgewoJCQkJCS4uLk1hdGNoUGFydHMKCQkJCX0KCQkJCWF0dHJpYnV0ZXMgewoJCQkJCWtleSB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQkJYXR0cmlidXRlIHsKCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCX0KCQkJCX0KCQkJCXNhbXBsaW5nUmF0aW8KCQkJfQoJCX0KCX0KCSR7THR9CmAsZHI9KGUsdCxuLGkpPT5lKCk7ZnVuY3Rpb24gcHIoZSx0PWRyKXtyZXR1cm57UHVzaFBheWxvYWQobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoaXIsbixEKEQoe30saSkscikpLCJQdXNoUGF5bG9hZCIsIm11dGF0aW9uIixuKX0sUHVzaFNlc3Npb25FdmVudHMobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3Qoc3IsbixEKEQoe30saSkscikpLCJQdXNoU2Vzc2lvbkV2ZW50cyIsIm11dGF0aW9uIixuKX0saWRlbnRpZnlTZXNzaW9uKG4saSl7cmV0dXJuIHQocj0+ZS5yZXF1ZXN0KG9yLG4sRChEKHt9LGkpLHIpKSwiaWRlbnRpZnlTZXNzaW9uIiwibXV0YXRpb24iLG4pfSxhZGRTZXNzaW9uUHJvcGVydGllcyhuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChhcixuLEQoRCh7fSxpKSxyKSksImFkZFNlc3Npb25Qcm9wZXJ0aWVzIiwibXV0YXRpb24iLG4pfSxwdXNoTWV0cmljcyhuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChjcixuLEQoRCh7fSxpKSxyKSksInB1c2hNZXRyaWNzIiwibXV0YXRpb24iLG4pfSxhZGRTZXNzaW9uRmVlZGJhY2sobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QodXIsbixEKEQoe30saSkscikpLCJhZGRTZXNzaW9uRmVlZGJhY2siLCJtdXRhdGlvbiIsbil9LGluaXRpYWxpemVTZXNzaW9uKG4saSl7cmV0dXJuIHQocj0+ZS5yZXF1ZXN0KGxyLG4sRChEKHt9LGkpLHIpKSwiaW5pdGlhbGl6ZVNlc3Npb24iLCJtdXRhdGlvbiIsbil9LElnbm9yZShuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChocixuLEQoRCh7fSxpKSxyKSksIklnbm9yZSIsInF1ZXJ5IixuKX0sR2V0U2FtcGxpbmdDb25maWcobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoZnIsbixEKEQoe30saSkscikpLCJHZXRTYW1wbGluZ0NvbmZpZyIsInF1ZXJ5IixuKX19fXZhciB0ZT1VaW50OEFycmF5LG5lPVVpbnQxNkFycmF5LGV0PUludDMyQXJyYXksdHQ9bmV3IHRlKFswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDAsMCwwLDBdKSxudD1uZXcgdGUoWzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTMsMCwwXSksRnQ9bmV3IHRlKFsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSksTXQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49bmV3IG5lKDMxKSxpPTA7aTwzMTsrK2kpbltpXT10Kz0xPDxlW2ktMV07Zm9yKHZhciByPW5ldyBldChuWzMwXSksaT0xO2k8MzA7KytpKWZvcih2YXIgcz1uW2ldO3M8bltpKzFdOysrcylyW3NdPXMtbltpXTw8NXxpO3JldHVybntiOm4scn19LEJ0PU10KHR0LDIpLG1yPUJ0LmIscnQ9QnQucjttclsyOF09MjU4LHJ0WzI1OF09Mjg7Zm9yKHZhciB5cj1NdChudCwwKSwkdD15ci5yLGl0PW5ldyBuZSgzMjc2OCksTT0wO008MzI3Njg7KytNKXt2YXIgYWU9KE0mNDM2OTApPj4xfChNJjIxODQ1KTw8MTthZT0oYWUmNTI0MjgpPj4yfChhZSYxMzEwNyk8PDIsYWU9KGFlJjYxNjgwKT4+NHwoYWUmMzg1NSk8PDQsaXRbTV09KChhZSY2NTI4MCk+Pjh8KGFlJjI1NSk8PDgpPj4xfWZvcih2YXIgeGU9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgaT1lLmxlbmd0aCxyPTAscz1uZXcgbmUodCk7cjxpOysrcillW3JdJiYrK3NbZVtyXS0xXTt2YXIgbz1uZXcgbmUodCk7Zm9yKHI9MTtyPHQ7KytyKW9bcl09b1tyLTFdK3Nbci0xXTw8MTt2YXIgYztpZihuKXtjPW5ldyBuZSgxPDx0KTt2YXIgaD0xNS10O2ZvcihyPTA7cjxpOysrcilpZihlW3JdKWZvcih2YXIgZD1yPDw0fGVbcl0sdT10LWVbcl0seT1vW2Vbcl0tMV0rKzw8dSxnPXl8KDE8PHUpLTE7eTw9ZzsrK3kpY1tpdFt5XT4+aF09ZH1lbHNlIGZvcihjPW5ldyBuZShpKSxyPTA7cjxpOysrcillW3JdJiYoY1tyXT1pdFtvW2Vbcl0tMV0rK10+PjE1LWVbcl0pO3JldHVybiBjfSx1ZT1uZXcgdGUoMjg4KSxNPTA7TTwxNDQ7KytNKXVlW01dPTg7Zm9yKHZhciBNPTE0NDtNPDI1NjsrK00pdWVbTV09OTtmb3IodmFyIE09MjU2O008MjgwOysrTSl1ZVtNXT03O2Zvcih2YXIgTT0yODA7TTwyODg7KytNKXVlW01dPTg7Zm9yKHZhciBNZT1uZXcgdGUoMzIpLE09MDtNPDMyOysrTSlNZVtNXT01O3ZhciB2cj14ZSh1ZSw5LDApLGdyPXhlKE1lLDUsMCksVXQ9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrNykvOHwwfSxWdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuKG49PW51bGx8fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCksbmV3IHRlKGUuc3ViYXJyYXkodCxuKSl9LG9lPWZ1bmN0aW9uKGUsdCxuKXtuPDw9dCY3O3ZhciBpPXQvOHwwO2VbaV18PW4sZVtpKzFdfD1uPj44fSxBZT1mdW5jdGlvbihlLHQsbil7bjw8PXQmNzt2YXIgaT10Lzh8MDtlW2ldfD1uLGVbaSsxXXw9bj4+OCxlW2krMl18PW4+PjE2fSxzdD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTxlLmxlbmd0aDsrK2kpZVtpXSYmbi5wdXNoKHtzOmksZjplW2ldfSk7dmFyIHI9bi5sZW5ndGgscz1uLnNsaWNlKCk7aWYoIXIpcmV0dXJue3Q6enQsbDowfTtpZihyPT0xKXt2YXIgbz1uZXcgdGUoblswXS5zKzEpO3JldHVybiBvW25bMF0uc109MSx7dDpvLGw6MX19bi5zb3J0KGZ1bmN0aW9uKHcsayl7cmV0dXJuIHcuZi1rLmZ9KSxuLnB1c2goe3M6LTEsZjoyNTAwMX0pO3ZhciBjPW5bMF0saD1uWzFdLGQ9MCx1PTEseT0yO2ZvcihuWzBdPXtzOi0xLGY6Yy5mK2guZixsOmMscjpofTt1IT1yLTE7KWM9bltuW2RdLmY8blt5XS5mP2QrKzp5KytdLGg9bltkIT11JiZuW2RdLmY8blt5XS5mP2QrKzp5KytdLG5bdSsrXT17czotMSxmOmMuZitoLmYsbDpjLHI6aH07Zm9yKHZhciBnPXNbMF0ucyxpPTE7aTxyOysraSlzW2ldLnM+ZyYmKGc9c1tpXS5zKTt2YXIgYj1uZXcgbmUoZysxKSxtPW90KG5bdS0xXSxiLDApO2lmKG0+dCl7dmFyIGk9MCxOPTAsUj1tLXQsUD0xPDxSO2ZvcihzLnNvcnQoZnVuY3Rpb24oayxMKXtyZXR1cm4gYltMLnNdLWJbay5zXXx8ay5mLUwuZn0pO2k8cjsrK2kpe3ZhciBxPXNbaV0ucztpZihiW3FdPnQpTis9UC0oMTw8bS1iW3FdKSxiW3FdPXQ7ZWxzZSBicmVha31mb3IoTj4+PVI7Tj4wOyl7dmFyIHY9c1tpXS5zO2Jbdl08dD9OLT0xPDx0LWJbdl0rKy0xOisraX1mb3IoO2k+PTAmJk47LS1pKXt2YXIgRT1zW2ldLnM7YltFXT09dCYmKC0tYltFXSwrK04pfW09dH1yZXR1cm57dDpuZXcgdGUoYiksbDptfX0sb3Q9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlLnM9PS0xP01hdGgubWF4KG90KGUubCx0LG4rMSksb3QoZS5yLHQsbisxKSk6dFtlLnNdPW59LHF0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aDt0JiYhZVstLXRdOyk7Zm9yKHZhciBuPW5ldyBuZSgrK3QpLGk9MCxyPWVbMF0scz0xLG89ZnVuY3Rpb24oaCl7bltpKytdPWh9LGM9MTtjPD10OysrYylpZihlW2NdPT1yJiZjIT10KSsrcztlbHNle2lmKCFyJiZzPjIpe2Zvcig7cz4xMzg7cy09MTM4KW8oMzI3NTQpO3M+MiYmKG8ocz4xMD9zLTExPDw1fDI4NjkwOnMtMzw8NXwxMjMwNSkscz0wKX1lbHNlIGlmKHM+Myl7Zm9yKG8ociksLS1zO3M+NjtzLT02KW8oODMwNCk7cz4yJiYobyhzLTM8PDV8ODIwOCkscz0wKX1mb3IoO3MtLTspbyhyKTtzPTEscj1lW2NdfXJldHVybntjOm4uc3ViYXJyYXkoMCxpKSxuOnR9fSxJZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wLGk9MDtpPHQubGVuZ3RoOysraSluKz1lW2ldKnRbaV07cmV0dXJuIG59LGp0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT1uLmxlbmd0aCxyPVV0KHQrMik7ZVtyXT1pJjI1NSxlW3IrMV09aT4+OCxlW3IrMl09ZVtyXV4yNTUsZVtyKzNdPWVbcisxXV4yNTU7Zm9yKHZhciBzPTA7czxpOysrcyllW3Ircys0XT1uW3NdO3JldHVybihyKzQraSkqOH0sR3Q9ZnVuY3Rpb24oZSx0LG4saSxyLHMsbyxjLGgsZCx1KXtvZSh0LHUrKyxuKSwrK3JbMjU2XTtmb3IodmFyIHk9c3QociwxNSksZz15LnQsYj15LmwsbT1zdChzLDE1KSxOPW0udCxSPW0ubCxQPXF0KGcpLHE9UC5jLHY9UC5uLEU9cXQoTiksdz1FLmMsaz1FLm4sTD1uZXcgbmUoMTkpLEk9MDtJPHEubGVuZ3RoOysrSSkrK0xbcVtJXSYzMV07Zm9yKHZhciBJPTA7STx3Lmxlbmd0aDsrK0kpKytMW3dbSV0mMzFdO2Zvcih2YXIgeD1zdChMLDcpLHo9eC50LFY9eC5sLEg9MTk7SD40JiYheltGdFtILTFdXTstLUgpO3ZhciBYPWQrNTw8MyxhPUllKHIsdWUpK0llKHMsTWUpK28sZj1JZShyLGcpK0llKHMsTikrbysxNCszKkgrSWUoTCx6KSsyKkxbMTZdKzMqTFsxN10rNypMWzE4XTtpZihoPj0wJiZYPD1hJiZYPD1mKXJldHVybiBqdCh0LHUsZS5zdWJhcnJheShoLGgrZCkpO3ZhciBfLFMsQyxBO2lmKG9lKHQsdSwxKyhmPGEpKSx1Kz0yLGY8YSl7Xz14ZShnLGIsMCksUz1nLEM9eGUoTixSLDApLEE9Tjt2YXIgSz14ZSh6LFYsMCk7b2UodCx1LHYtMjU3KSxvZSh0LHUrNSxrLTEpLG9lKHQsdSsxMCxILTQpLHUrPTE0O2Zvcih2YXIgST0wO0k8SDsrK0kpb2UodCx1KzMqSSx6W0Z0W0ldXSk7dSs9MypIO2Zvcih2YXIgaj1bcSx3XSxXPTA7VzwyOysrVylmb3IodmFyIHllPWpbV10sST0wO0k8eWUubGVuZ3RoOysrSSl7dmFyIGllPXllW0ldJjMxO29lKHQsdSxLW2llXSksdSs9eltpZV0saWU+MTUmJihvZSh0LHUseWVbSV0+PjUmMTI3KSx1Kz15ZVtJXT4+MTIpfX1lbHNlIF89dnIsUz11ZSxDPWdyLEE9TWU7Zm9yKHZhciBJPTA7STxjOysrSSl7dmFyIFk9aVtJXTtpZihZPjI1NSl7dmFyIGllPVk+PjE4JjMxO0FlKHQsdSxfW2llKzI1N10pLHUrPVNbaWUrMjU3XSxpZT43JiYob2UodCx1LFk+PjIzJjMxKSx1Kz10dFtpZV0pO3ZhciB2ZT1ZJjMxO0FlKHQsdSxDW3ZlXSksdSs9QVt2ZV0sdmU+MyYmKEFlKHQsdSxZPj41JjgxOTEpLHUrPW50W3ZlXSl9ZWxzZSBBZSh0LHUsX1tZXSksdSs9U1tZXX1yZXR1cm4gQWUodCx1LF9bMjU2XSksdStTWzI1Nl19LEVyPW5ldyBldChbNjU1NDAsMTMxMDgwLDEzMTA4OCwxMzExMDQsMjYyMTc2LDEwNDg3MDQsMTA0ODgzMiwyMTE0NTYwLDIxMTc2MzJdKSx6dD1uZXcgdGUoMCksX3I9ZnVuY3Rpb24oZSx0LG4saSxyLHMpe3ZhciBvPXMuenx8ZS5sZW5ndGgsYz1uZXcgdGUoaStvKzUqKDErTWF0aC5jZWlsKG8vN2UzKSkrciksaD1jLnN1YmFycmF5KGksYy5sZW5ndGgtciksZD1zLmwsdT0ocy5yfHwwKSY3O2lmKHQpe3UmJihoWzBdPXMucj4+Myk7Zm9yKHZhciB5PUVyW3QtMV0sZz15Pj4xMyxiPXkmODE5MSxtPSgxPDxuKS0xLE49cy5wfHxuZXcgbmUoMzI3NjgpLFI9cy5ofHxuZXcgbmUobSsxKSxQPU1hdGguY2VpbChuLzMpLHE9MipQLHY9ZnVuY3Rpb24obHQpe3JldHVybihlW2x0XV5lW2x0KzFdPDxQXmVbbHQrMl08PHEpJm19LEU9bmV3IGV0KDI1ZTMpLHc9bmV3IG5lKDI4OCksaz1uZXcgbmUoMzIpLEw9MCxJPTAseD1zLml8fDAsej0wLFY9cy53fHwwLEg9MDt4KzI8bzsrK3gpe3ZhciBYPXYoeCksYT14JjMyNzY3LGY9UltYXTtpZihOW2FdPWYsUltYXT1hLFY8PXgpe3ZhciBfPW8teDtpZigoTD43ZTN8fHo+MjQ1NzYpJiYoXz40MjN8fCFkKSl7dT1HdChlLGgsMCxFLHcsayxJLHosSCx4LUgsdSksej1MPUk9MCxIPXg7Zm9yKHZhciBTPTA7UzwyODY7KytTKXdbU109MDtmb3IodmFyIFM9MDtTPDMwOysrUylrW1NdPTB9dmFyIEM9MixBPTAsSz1iLGo9YS1mJjMyNzY3O2lmKF8+MiYmWD09dih4LWopKWZvcih2YXIgVz1NYXRoLm1pbihnLF8pLTEseWU9TWF0aC5taW4oMzI3NjcseCksaWU9TWF0aC5taW4oMjU4LF8pO2o8PXllJiYtLUsmJmEhPWY7KXtpZihlW3grQ109PWVbeCtDLWpdKXtmb3IodmFyIFk9MDtZPGllJiZlW3grWV09PWVbeCtZLWpdOysrWSk7aWYoWT5DKXtpZihDPVksQT1qLFk+VylicmVhaztmb3IodmFyIHZlPU1hdGgubWluKGosWS0yKSxXdD0wLFM9MDtTPHZlOysrUyl7dmFyIGN0PXgtaitTJjMyNzY3LCRyPU5bY3RdLFp0PWN0LSRyJjMyNzY3O1p0Pld0JiYoV3Q9WnQsZj1jdCl9fX1hPWYsZj1OW2FdLGorPWEtZiYzMjc2N31pZihBKXtFW3orK109MjY4NDM1NDU2fHJ0W0NdPDwxOHwkdFtBXTt2YXIgS3Q9cnRbQ10mMzEsZW49JHRbQV0mMzE7SSs9dHRbS3RdK250W2VuXSwrK3dbMjU3K0t0XSwrK2tbZW5dLFY9eCtDLCsrTH1lbHNlIEVbeisrXT1lW3hdLCsrd1tlW3hdXX19Zm9yKHg9TWF0aC5tYXgoeCxWKTt4PG87Kyt4KUVbeisrXT1lW3hdLCsrd1tlW3hdXTt1PUd0KGUsaCxkLEUsdyxrLEkseixILHgtSCx1KSxkfHwocy5yPXUmN3xoW3UvOHwwXTw8Myx1LT03LHMuaD1SLHMucD1OLHMuaT14LHMudz1WKX1lbHNle2Zvcih2YXIgeD1zLnd8fDA7eDxvK2Q7eCs9NjU1MzUpe3ZhciB1dD14KzY1NTM1O3V0Pj1vJiYoaFt1Lzh8MF09ZCx1dD1vKSx1PWp0KGgsdSsxLGUuc3ViYXJyYXkoeCx1dCkpfXMuaT1vfXJldHVybiBWdChjLDAsaStVdCh1KStyKX0sVHI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9bmV3IEludDMyQXJyYXkoMjU2KSx0PTA7dDwyNTY7Kyt0KXtmb3IodmFyIG49dCxpPTk7LS1pOyluPShuJjEmJi0zMDY2NzQ5MTIpXm4+Pj4xO2VbdF09bn1yZXR1cm4gZX0oKSxicj1mdW5jdGlvbigpe3ZhciBlPS0xO3JldHVybntwOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj1lLGk9MDtpPHQubGVuZ3RoOysraSluPVRyW24mMjU1XnRbaV1dXm4+Pj44O2U9bn0sZDpmdW5jdGlvbigpe3JldHVybn5lfX19LE5yPWZ1bmN0aW9uKGUsdCxuLGkscil7aWYoIXImJihyPXtsOjF9LHQuZGljdGlvbmFyeSkpe3ZhciBzPXQuZGljdGlvbmFyeS5zdWJhcnJheSgtMzI3NjgpLG89bmV3IHRlKHMubGVuZ3RoK2UubGVuZ3RoKTtvLnNldChzKSxvLnNldChlLHMubGVuZ3RoKSxlPW8sci53PXMubGVuZ3RofXJldHVybiBfcihlLHQubGV2ZWw9PW51bGw/Njp0LmxldmVsLHQubWVtPT1udWxsP3IubD9NYXRoLmNlaWwoTWF0aC5tYXgoOCxNYXRoLm1pbigxMyxNYXRoLmxvZyhlLmxlbmd0aCkpKSoxLjUpOjIwOjEyK3QubWVtLG4saSxyKX0sYXQ9ZnVuY3Rpb24oZSx0LG4pe2Zvcig7bjsrK3QpZVt0XT1uLG4+Pj49OH0seHI9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmZpbGVuYW1lO2lmKGVbMF09MzEsZVsxXT0xMzksZVsyXT04LGVbOF09dC5sZXZlbDwyPzQ6dC5sZXZlbD09OT8yOjAsZVs5XT0zLHQubXRpbWUhPTAmJmF0KGUsNCxNYXRoLmZsb29yKG5ldyBEYXRlKHQubXRpbWV8fERhdGUubm93KCkpLzFlMykpLG4pe2VbM109ODtmb3IodmFyIGk9MDtpPD1uLmxlbmd0aDsrK2kpZVtpKzEwXT1uLmNoYXJDb2RlQXQoaSl9fSxBcj1mdW5jdGlvbihlKXtyZXR1cm4gMTArKGUuZmlsZW5hbWU/ZS5maWxlbmFtZS5sZW5ndGgrMTowKX07ZnVuY3Rpb24gSXIoZSx0KXt0fHwodD17fSk7dmFyIG49YnIoKSxpPWUubGVuZ3RoO24ucChlKTt2YXIgcj1OcihlLHQsQXIodCksOCkscz1yLmxlbmd0aDtyZXR1cm4geHIocix0KSxhdChyLHMtOCxuLmQoKSksYXQocixzLTQsaSkscn12YXIgSHQ9dHlwZW9mIFRleHRFbmNvZGVyIT0idW5kZWZpbmVkIiYmbmV3IFRleHRFbmNvZGVyLFNyPXR5cGVvZiBUZXh0RGVjb2RlciE9InVuZGVmaW5lZCImJm5ldyBUZXh0RGVjb2RlcixPcj0wO3RyeXtTci5kZWNvZGUoenQse3N0cmVhbTohMH0pLE9yPTF9Y2F0Y2goZSl7fWZ1bmN0aW9uIHdyKGUsdCl7dmFyIG47aWYoSHQpcmV0dXJuIEh0LmVuY29kZShlKTtmb3IodmFyIGk9ZS5sZW5ndGgscj1uZXcgdGUoZS5sZW5ndGgrKGUubGVuZ3RoPj4xKSkscz0wLG89ZnVuY3Rpb24oZCl7cltzKytdPWR9LG49MDtuPGk7KytuKXtpZihzKzU+ci5sZW5ndGgpe3ZhciBjPW5ldyB0ZShzKzgrKGktbjw8MSkpO2Muc2V0KHIpLHI9Y312YXIgaD1lLmNoYXJDb2RlQXQobik7aDwxMjh8fHQ/byhoKTpoPDIwNDg/KG8oMTkyfGg+PjYpLG8oMTI4fGgmNjMpKTpoPjU1Mjk1JiZoPDU3MzQ0PyhoPTY1NTM2KyhoJjEwNDc1NTIpfGUuY2hhckNvZGVBdCgrK24pJjEwMjMsbygyNDB8aD4+MTgpLG8oMTI4fGg+PjEyJjYzKSxvKDEyOHxoPj42JjYzKSxvKDEyOHxoJjYzKSk6KG8oMjI0fGg+PjEyKSxvKDEyOHxoPj42JjYzKSxvKDEyOHxoJjYzKSl9cmV0dXJuIFZ0KHIsMCxzKX1mdW5jdGlvbiBEcihlKXtyZXR1cm4gSih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3QgdD13cihKU09OLnN0cmluZ2lmeShlKSksbj1Jcih0KSxpPXlpZWxkIG5ldyBQcm9taXNlKHI9Pntjb25zdCBzPW5ldyBGaWxlUmVhZGVyO3Mub25sb2FkPSgpPT5yKHMucmVzdWx0KSxzLnJlYWRBc0RhdGFVUkwobmV3IEJsb2IoW25ldyBVaW50OEFycmF5KG4pXSkpfSk7cmV0dXJue2NvbXByZXNzZWRCYXNlNjQ6aS5zbGljZShpLmluZGV4T2YoIiwiKSsxKSxjb21wcmVzc2VkU2l6ZTpuLmxlbmd0aCxidWZmZXJMZW5ndGg6dC5sZW5ndGh9fSl9Y2xhc3Mga3J7Y29uc3RydWN0b3IodCxuKXtmdCh0aGlzLCJkZWJ1ZyIpO2Z0KHRoaXMsIm5hbWUiKTt0aGlzLmRlYnVnPXQsdGhpcy5uYW1lPW59bG9nKC4uLnQpe2lmKHRoaXMuZGVidWcpe2xldCBuPWBbJHtEYXRlLm5vdygpfV1gO3RoaXMubmFtZSYmKG4rPWAgLSAke3RoaXMubmFtZX1gKSxjb25zb2xlLmxvZy5hcHBseShjb25zb2xlLFtuLC4uLnRdKX19d2FybiguLi50KXtsZXQgbj1gWyR7RGF0ZS5ub3coKX1dYDt0aGlzLm5hbWUmJihuKz1gIC0gJHt0aGlzLm5hbWV9YCksY29uc29sZS53YXJuLmFwcGx5KGNvbnNvbGUsW24sLi4udF0pfX12YXIgWXQ9KGU9PihlLkJpbGxpbmdRdW90YUV4Y2VlZGVkPSJCaWxsaW5nUXVvdGFFeGNlZWRlZCIsZSkpKFl0fHx7fSk7Y29uc3QgQ3I9MyxScj0xZTMsUHI9NTAwLExyPVtZdC5CaWxsaW5nUXVvdGFFeGNlZWRlZC50b1N0cmluZygpXSxGcj1lPT57dmFyIG47cmV0dXJuKChuPWUucmVzcG9uc2UuZXJyb3JzKT09bnVsbD92b2lkIDA6bi5maW5kKGk9PkxyLmluY2x1ZGVzKGkubWVzc2FnZSkpKT09PXZvaWQgMH0sTXI9KCk9Pntjb25zdCBlPSh0LG4saSxyLHM9MCk9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe3RyeXtyZXR1cm4geWllbGQgdCgpfWNhdGNoKG8pe2lmKG8gaW5zdGFuY2VvZiBkZSYmIUZyKG8pKXRocm93IG87aWYoczxDcilyZXR1cm4geWllbGQgbmV3IFByb21pc2UoYz0+c2V0VGltZW91dChjLFJyK1ByKk1hdGgucG93KDIscykpKSx5aWVsZCBlKHQsbixpLHIscysxKTt0aHJvdyBjb25zb2xlLmVycm9yKGBoaWdobGlnaHQuaW86IGRhdGEgcmVxdWVzdCBmYWlsZWQgYWZ0ZXIgJHtzfSByZXRyaWVzYCksb319KTtyZXR1cm4gZX0sSnQ9NSxRdD0yZTMsQnI9WyJudW1iZXIiLCJzdHJpbmciLCJib29sZWFuIl07dmFyIFo9KGU9PihlW2UuSW5pdGlhbGl6ZT0wXT0iSW5pdGlhbGl6ZSIsZVtlLlJlc2V0PTFdPSJSZXNldCIsZVtlLkFzeW5jRXZlbnRzPTJdPSJBc3luY0V2ZW50cyIsZVtlLklkZW50aWZ5PTNdPSJJZGVudGlmeSIsZVtlLlByb3BlcnRpZXM9NF09IlByb3BlcnRpZXMiLGVbZS5NZXRyaWNzPTVdPSJNZXRyaWNzIixlW2UuRmVlZGJhY2s9Nl09IkZlZWRiYWNrIixlW2UuQ3VzdG9tRXZlbnQ9N109IkN1c3RvbUV2ZW50IixlW2UuU3RvcD04XT0iU3RvcCIsZVtlLkdldFN0YXR1cz05XT0iR2V0U3RhdHVzIixlKSkoWnx8e30pO2NvbnN0IFNlPXNlbGY7ZnVuY3Rpb24gWHQoZSx0KXtjb25zdCBuPXt9LGk9W10scj1bXTtmb3IoY29uc3RbcyxvXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtpZihvPT1udWxsKWNvbnRpbnVlO0JyLmluY2x1ZGVzKHR5cGVvZiBvKXx8aS5wdXNoKHtbc106b30pO2xldCBjO3R5cGVvZiBvPT0ic3RyaW5nIj9jPW86Yz1tZShvKSxjLmxlbmd0aD5RdCYmKHIucHVzaCh7W3NdOm99KSxjPWMuc3Vic3RyaW5nKDAsUXQpKSxuW3NdPWN9cmV0dXJuIHQhPT0ic2Vzc2lvbiImJihpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYEhpZ2hsaWdodCB3YXMgcGFzc2VkIG9uZSBvciBtb3JlICR7dH0gcHJvcGVydGllcyBub3Qgb2YgdHlwZSBzdHJpbmcsIG51bWJlciwgb3IgYm9vbGVhbi5gLGkpLHIubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgSGlnaGxpZ2h0IHdhcyBwYXNzZWQgb25lIG9yIG1vcmUgJHt0fSBwcm9wZXJ0aWVzIGV4Y2VlZGluZyAyMDAwIGNoYXJhY3RlcnMsIHdoaWNoIHdpbGwgYmUgdHJ1bmNhdGVkLmAscikpLG59e2xldCBlLHQsbixpPTAscj0wLHM9ITEsbz0wLGM9bmV3IGtyKCExLCJbd29ya2VyXSIpO2NvbnN0IGg9W10sZD1bXSx1PSgpPT5vIT09MCYmaTxKdCYmISEobiE9bnVsbCYmbi5sZW5ndGgpLHk9KHYsRSk9PntTZS5wb3N0TWVzc2FnZSh7cmVzcG9uc2U6e3R5cGU6Wi5DdXN0b21FdmVudCx0YWc6dixwYXlsb2FkOkV9fSl9LGc9dj0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3R7aWQ6RSxldmVudHM6dyxtZXNzYWdlczprLGVycm9yczpMLHJlc291cmNlc1N0cmluZzpJLHdlYlNvY2tldEV2ZW50c1N0cmluZzp4LGhhc1Nlc3Npb25VbmxvYWRlZDp6LGhpZ2hsaWdodExvZ3M6Vn09dixIPW1lKHttZXNzYWdlczprfSk7bGV0IFg9e3Nlc3Npb25fc2VjdXJlX2lkOm4scGF5bG9hZF9pZDpFLnRvU3RyaW5nKCksZXZlbnRzOntldmVudHM6d30sbWVzc2FnZXM6SCxyZXNvdXJjZXM6SSx3ZWJfc29ja2V0X2V2ZW50czp4LGVycm9yczpMLGlzX2JlYWNvbjohMSxoYXNfc2Vzc2lvbl91bmxvYWRlZDp6fTtWJiYoWC5oaWdobGlnaHRfbG9ncz1WKTtjb25zdHtjb21wcmVzc2VkQmFzZTY0OmEsYnVmZmVyTGVuZ3RoOmYsY29tcHJlc3NlZFNpemU6X309eWllbGQgRHIoWCksUz17dHlwZTpaLkFzeW5jRXZlbnRzLGlkOkUsZXZlbnRzU2l6ZTpmLGNvbXByZXNzZWRTaXplOmEubGVuZ3RofTtjLmxvZyhgUHVzaGluZyBwYXlsb2FkOiAke0pTT04uc3RyaW5naWZ5KHtzZXNzaW9uU2VjdXJlSUQ6bixpZDpFLGZpcnN0U0lEOk1hdGgubWluKC4uLlguZXZlbnRzLmV2ZW50cy5tYXAoVz0+Vz09bnVsbD92b2lkIDA6Vy5fc2lkKS5maWx0ZXIoVz0+ISFXKSksZXZlbnRzTGVuZ3RoOlguZXZlbnRzLmV2ZW50cy5sZW5ndGgsbWVzc2FnZXNMZW5ndGg6ay5sZW5ndGgscmVzb3VyY2VzTGVuZ3RoOkkubGVuZ3RoLHdlYlNvY2tldExlbmd0aDp4Lmxlbmd0aCxlcnJvcnNMZW5ndGg6TC5sZW5ndGgsYnVmTGVuZ3RoOmYsY29tcHJlc3NlZExlbmd0aDpfLGNvbXByZXNzZWRCYXNlNjRMZW5ndGg6YS5sZW5ndGh9LHZvaWQgMCwyKX1gKTtjb25zdCBDPWUuUHVzaFNlc3Npb25FdmVudHMoe3Nlc3Npb25fc2VjdXJlX2lkOm4scGF5bG9hZF9pZDpFLnRvU3RyaW5nKCksZGF0YTphfSk7bGV0IEE9UHJvbWlzZS5yZXNvbHZlKCk7aC5sZW5ndGgmJihBPWUucHVzaE1ldHJpY3Moe21ldHJpY3M6aH0pLGguc3BsaWNlKDApKTtsZXQgSz1wZXJmb3JtYW5jZS5ub3coKTtjb25zdCBqPXNldEludGVydmFsKCgpPT57SyYmcGVyZm9ybWFuY2Uubm93KCktSz5DdCYmKGNvbnNvbGUud2FybihgVXBsb2FkaW5nIHB1c2hQYXlsb2FkIHRvb2sgdG9vIGxvbmcsIGZhaWx1cmUgbnVtYmVyICMke3J9LmApLHIrPTEsY2xlYXJJbnRlcnZhbChqKSxyPj1KdCYmKGNvbnNvbGUud2FybigiVXBsb2FkaW5nIHB1c2hQYXlsb2FkIHRvb2sgdG9vIGxvbmcsIHN0b3BwaW5nIHJlY29yZGluZyB0byBhdm9pZCBPT00uIiksU2UucG9zdE1lc3NhZ2Uoe3Jlc3BvbnNlOnt0eXBlOlouU3RvcCxyZXF1ZXN0U3RhcnQ6Syxhc3luY0V2ZW50c1Jlc3BvbnNlOlN9fSksbSh7dHlwZTpaLlByb3BlcnRpZXMscHJvcGVydGllc09iamVjdDp7c3RvcFJlYXNvbjoiUHVzaCBQYXlsb2FkIFRpbWVvdXQifSxwcm9wZXJ0eVR5cGU6e3R5cGU6InRyYWNrIn19KSkpfSwxMDApO3RyeXt5aWVsZCBQcm9taXNlLmFsbChbQyxBXSksciYmcGVyZm9ybWFuY2Uubm93KCktSzw9Q3QmJihjb25zb2xlLndhcm4oYHB1c2hQYXlsb2FkIHN1Y2NlZWRlZCBhZnRlciAjJHtyfSBmYWlsdXJlcywgcmVzZXR0aW5nIHN0b3Agc3dpdGNoLmApLHI9MCl9ZmluYWxseXtLPTAsY2xlYXJJbnRlcnZhbChqKX1TZS5wb3N0TWVzc2FnZSh7cmVzcG9uc2U6U30pfSksYj12PT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdHt1c2VyT2JqZWN0OkUsdXNlcklkZW50aWZpZXI6dyxzb3VyY2U6a309djtrPT09InNlZ21lbnQiP3koIlNlZ21lbnQgSWRlbnRpZnkiLG1lKEQoe3VzZXJJZGVudGlmaWVyOnd9LEUpKSk6eSgiSWRlbnRpZnkiLG1lKEQoe3VzZXJJZGVudGlmaWVyOnd9LEUpKSkseWllbGQgZS5pZGVudGlmeVNlc3Npb24oe3Nlc3Npb25fc2VjdXJlX2lkOm4sdXNlcl9pZGVudGlmaWVyOncsdXNlcl9vYmplY3Q6WHQoRSwidXNlciIpfSk7Y29uc3QgTD1rPT09InNlZ21lbnQiP2s6ImRlZmF1bHQiO2MubG9nKGBJZGVudGlmeSAoJHt3fSwgc291cmNlOiAke0x9KSB3LyBvYmo6ICR7bWUoRSl9IEAgJHt0fWApfSksbT12PT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdHtwcm9wZXJ0aWVzT2JqZWN0OkUscHJvcGVydHlUeXBlOnd9PXY7bGV0IGs7KHc9PW51bGw/dm9pZCAwOncudHlwZSk9PT0ic2Vzc2lvbiI/KGs9IlNlc3Npb24iLHlpZWxkIGUuYWRkU2Vzc2lvblByb3BlcnRpZXMoe3Nlc3Npb25fc2VjdXJlX2lkOm4scHJvcGVydGllc19vYmplY3Q6WHQoRSwic2Vzc2lvbiIpfSkpOih3PT1udWxsP3ZvaWQgMDp3LnNvdXJjZSk9PT0ic2VnbWVudCI/az0iU2VnbWVudCI6az0iVHJhY2siLGshPT0iU2Vzc2lvbiImJnkoayxtZShFKSksYy5sb2coYEFkZGluZyAke2t9IFByb3BlcnRpZXMgdG8gc2Vzc2lvbiAoJHtufSkgdy8gb2JqOiAke0pTT04uc3RyaW5naWZ5KEUpfSBAICR7dH1gKX0pLE49dj0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7aC5wdXNoKC4uLnYubWV0cmljcy5tYXAoRT0+KHtuYW1lOkUubmFtZSx2YWx1ZTpFLnZhbHVlLHNlc3Npb25fc2VjdXJlX2lkOm4sY2F0ZWdvcnk6RS5jYXRlZ29yeSxncm91cDpFLmdyb3VwLHRpbWVzdGFtcDpFLnRpbWVzdGFtcC50b0lTT1N0cmluZygpLHRhZ3M6RS50YWdzfSkpKX0pLFI9dj0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3R7dGltZXN0YW1wOkUsdmVyYmF0aW06dyx1c2VyRW1haWw6ayx1c2VyTmFtZTpMfT12O3lpZWxkIGUuYWRkU2Vzc2lvbkZlZWRiYWNrKHtzZXNzaW9uX3NlY3VyZV9pZDpuLHRpbWVzdGFtcDpFLHZlcmJhdGltOncsdXNlcl9lbWFpbDprLHVzZXJfbmFtZTpMfSl9KSxQPXY9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe3YudHlwZT09PVouQXN5bmNFdmVudHM/eWllbGQgZyh2KTp2LnR5cGU9PT1aLklkZW50aWZ5P3lpZWxkIGIodik6di50eXBlPT09Wi5Qcm9wZXJ0aWVzP3lpZWxkIG0odik6di50eXBlPT09Wi5NZXRyaWNzP3lpZWxkIE4odik6di50eXBlPT09Wi5GZWVkYmFjayYmKHlpZWxkIFIodikpfSkscT0oKT0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Zm9yKDtkLmxlbmd0aD4wJiZ1KCk7KXtjb25zdCB2PWQuc2hpZnQoKTt0cnl7eWllbGQgUCh2KSxpPTB9Y2F0Y2goRSl7cyYmY29uc29sZS5lcnJvcihFKSxpKz0xfX19KTtTZS5vbm1lc3NhZ2U9ZnVuY3Rpb24odil7cmV0dXJuIEoodGhpcyxudWxsLGZ1bmN0aW9uKigpe2lmKHYuZGF0YS5tZXNzYWdlLnR5cGU9PT1aLkluaXRpYWxpemUpe3Q9di5kYXRhLm1lc3NhZ2UuYmFja2VuZCxuPXYuZGF0YS5tZXNzYWdlLnNlc3Npb25TZWN1cmVJRCxzPXYuZGF0YS5tZXNzYWdlLmRlYnVnLG89di5kYXRhLm1lc3NhZ2UucmVjb3JkaW5nU3RhcnRUaW1lLGMuZGVidWc9cyxlPXByKG5ldyBIbih0LHtoZWFkZXJzOnt9fSksTXIoKSkseWllbGQgcSgpO3JldHVybn1pZih2LmRhdGEubWVzc2FnZS50eXBlPT09Wi5SZXNldCl7ZC5sZW5ndGg9MCxoLmxlbmd0aD0wLGk9MCxyPTAsbj0iIixvPTA7cmV0dXJufWlmKHYuZGF0YS5tZXNzYWdlLnR5cGU9PT1aLkdldFN0YXR1cyl7U2UucG9zdE1lc3NhZ2Uoe3Jlc3BvbnNlOnt0eXBlOlouR2V0U3RhdHVzLHBlbmRpbmdDb3VudDpkLmxlbmd0aCxpbml0aWFsaXplZDp1KCl9fSk7cmV0dXJufWlmKCF1KCkpe2QucHVzaCh2LmRhdGEubWVzc2FnZSk7cmV0dXJufXRyeXt5aWVsZCBQKHYuZGF0YS5tZXNzYWdlKSxpPTAseWllbGQgcSgpfWNhdGNoKEUpe3MmJmNvbnNvbGUuZXJyb3IoRSksaSs9MX19KX19fSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGlnaGxpZ2h0LWNsaWVudC13b3JrZXItQ3g1bEtFNjkuanMubWFwCg==",zg=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),nu=typeof self<"u"&&self.Blob&&new Blob([zg(iu)],{type:"text/javascript;charset=utf-8"});function Hg(e){let t;try{if(t=nu&&(self.URL||self.webkitURL).createObjectURL(nu),!t)throw"";const i=new Worker(t,{name:e?.name});return i.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),i}catch{return new Worker("data:text/javascript;base64,"+iu,{name:e?.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}var Ke=(e=>(e[e.Initialize=0]="Initialize",e[e.Reset=1]="Reset",e[e.AsyncEvents=2]="AsyncEvents",e[e.Identify=3]="Identify",e[e.Properties=4]="Properties",e[e.Metrics=5]="Metrics",e[e.Feedback=6]="Feedback",e[e.CustomEvent=7]="CustomEvent",e[e.Stop=8]="Stop",e[e.GetStatus=9]="GetStatus",e))(Ke||{});const Pg=({apiKey:e})=>{(function(t,i){var n=t.amplitude||{_q:[],_iq:{}},s=i.createElement("script");s.type="text/javascript",s.integrity="sha384-+EO59vL/X7v6VE2s6/F4HxfHlK0nDUVWKVg8K9oUlvffAeeaShVBmbORTC2D3UF+",s.crossOrigin="anonymous",s.async=!0,s.src="https://cdn.amplitude.com/libs/amplitude-8.17.0-min.gz.js",s.onload=function(){t.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK"),amplitude.getInstance().init(e)};var r=i.getElementsByTagName("script")[0];r.parentNode.insertBefore(s,r);function l(d,S){d.prototype[S]=function(){return this._q.push([S].concat(Array.prototype.slice.call(arguments,0))),this}}for(var o=function(){return this._q=[],this},a=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove"],c=0;c<a.length;c++)l(o,a[c]);n.Identify=o;for(var u=function(){return this._q=[],this},h=["setProductId","setQuantity","setPrice","setRevenueType","setEventProperties"],p=0;p<h.length;p++)l(u,h[p]);n.Revenue=u;var m=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","enableTracking","setGlobalUserProperties","identify","clearUserProperties","setGroup","logRevenueV2","regenerateDeviceId","groupIdentify","onInit","logEventWithTimestamp","logEventWithGroups","setSessionId","resetSessionId"];function f(d){function S(V){d[V]=function(){d._q.push([V].concat(Array.prototype.slice.call(arguments,0)))}}for(var I=0;I<m.length;I++)S(m[I])}f(n),n.getInstance=function(d){return d=(!d||d.length===0?"$default_instance":d).toLowerCase(),Object.prototype.hasOwnProperty.call(n._iq,d)||(n._iq[d]={_q:[]},f(n._iq[d])),n._iq[d]},t.amplitude=n})(window,document)},Dg=({projectToken:e})=>{if(window.mixpanel)return;(function(i,n){if(!n.__SV){var s,r;window.mixpanel=n,n._i=[],n.init=function(l,o,a){function c(p,m){var f=m.split(".");f.length==2&&(p=p[f[0]],m=f[1]),p[m]=function(){p.push([m].concat(Array.prototype.slice.call(arguments,0)))}}var u=n;for(typeof a<"u"?u=n[a]=[]:a="mixpanel",u.people=u.people||[],u.toString=function(p){var m="mixpanel";return a!=="mixpanel"&&(m+="."+a),p||(m+=" (stub)"),m},u.people.toString=function(){return u.toString(1)+".people (stub)"},s="disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split(" "),r=0;r<s.length;r++)c(u,s[r]);var h="set set_once union unset remove delete".split(" ");u.get_group=function(){function p(S){m[S]=function(){call2_args=arguments,call2=[S].concat(Array.prototype.slice.call(call2_args,0)),u.push([f,call2])}}for(var m={},f=["get_group"].concat(Array.prototype.slice.call(arguments,0)),d=0;d<h.length;d++)p(h[d]);return m},n._i.push([l,o,a])},n.__SV=1.2}})(document,window.mixpanel||[]);const t=document.createElement("script");t.src=Bg,document.head.appendChild(t),t.addEventListener("load",()=>{var i;(i=window.mixpanel)==null||i.init(e)})},Bg="https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";class Qg{constructor(t){U(this,"options"),U(this,"isRunningOnHighlight"),U(this,"organizationID"),U(this,"graphqlSDK"),U(this,"events"),U(this,"sessionData"),U(this,"ready"),U(this,"manualStopped"),U(this,"state"),U(this,"logger"),U(this,"enableSegmentIntegration"),U(this,"privacySetting"),U(this,"enableCanvasRecording"),U(this,"samplingStrategy"),U(this,"inlineImages"),U(this,"inlineVideos"),U(this,"inlineStylesheet"),U(this,"debugOptions"),U(this,"listeners"),U(this,"firstloadVersion"),U(this,"environment"),U(this,"sessionShortcut"),U(this,"appVersion"),U(this,"serviceName"),U(this,"_worker"),U(this,"_optionsInternal"),U(this,"_backendUrl"),U(this,"_recordingStartTime"),U(this,"_isOnLocalHost"),U(this,"_onToggleFeedbackFormVisibility"),U(this,"_isCrossOriginIframe"),U(this,"_eventBytesSinceSnapshot"),U(this,"_lastSnapshotTime"),U(this,"_lastVisibilityChangeTime"),U(this,"pushPayloadTimerId"),U(this,"hasSessionUnloaded"),U(this,"hasPushedData"),U(this,"reloaded"),U(this,"_hasPreviouslyInitialized"),U(this,"_recordStop"),U(this,"_integrations",[]);var i,n,s,r,l;this.options=t,typeof((i=this.options)==null?void 0:i.debug)=="boolean"?this.debugOptions=this.options.debug?{clientInteractions:!0}:{}:this.debugOptions=(s=(n=this.options)==null?void 0:n.debug)!=null?s:{},this.logger=new Qr(this.debugOptions.clientInteractions),this._worker=new Hg,this._worker.onmessage=a=>{var c,u,h;((c=a.data.response)==null?void 0:c.type)===Ke.AsyncEvents?(this._eventBytesSinceSnapshot+=a.data.response.eventsSize,this.logger.log(`Web worker sent payloadID ${a.data.response.id} size ${a.data.response.eventsSize} bytes, compression ratio ${a.data.response.eventsSize/a.data.response.compressedSize}.
|
|
354
|
-
Total since snapshot: ${(this._eventBytesSinceSnapshot/1e6).toFixed(1)}MB`)):((u=a.data.response)==null?void 0:u.type)===Ke.CustomEvent?this.addCustomEvent(a.data.response.tag,a.data.response.payload):((h=a.data.response)==null?void 0:h.type)===Ke.Stop&&(Xe("worker.onmessage","warn","Stopping recording due to worker failure",a.data.response),this.stop(!1))};let o=Mi();if(this.reloaded=!1,!((r=this.sessionData)!=null&&r.sessionSecureID)&&o!=null&&o.sessionSecureID)this.sessionData=o,this.options.sessionSecureID=o.sessionSecureID,this.reloaded=!0,this.logger.log(`Tab reloaded, continuing previous session: ${this.sessionData.sessionSecureID}`);else{for(const a of Object.values(be))Ui(a);this.sessionData={sessionSecureID:this.options.sessionSecureID,projectID:0,sessionStartTime:Date.now()}}this._hasPreviouslyInitialized=!1;try{window.parent.document&&(this._isCrossOriginIframe=!1)}catch{this._isCrossOriginIframe=(l=this.options.recordCrossOriginIframe)!=null?l:!0}this._initMembers(this.options)}_reset(t){return ye(this,arguments,function*({forceNew:i,sessionKey:n}){this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0);let s,r;if(!i)try{s=Ge(be.USER_IDENTIFIER);const l=Ge(be.USER_OBJECT);l&&(r=JSON.parse(l))}catch{}for(const l of Object.values(be))Ui(l);this.sessionData.sessionSecureID=n?
|
|
353
|
+
`," ")))};var Ce=Uint8Array,ve=Uint16Array,Ur=Int32Array,Kr=new Ce([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Mr=new Ce([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Pc=new Ce([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Dc=function(e,t){for(var i=new ve(31),n=0;n<31;++n)i[n]=t+=1<<e[n-1];for(var s=new Ur(i[30]),n=1;n<30;++n)for(var r=i[n];r<i[n+1];++r)s[r]=r-i[n]<<5|n;return{b:i,r:s}},Bc=Dc(Kr,2),kg=Bc.b,Or=Bc.r;kg[28]=258,Or[258]=28;for(var wg=Dc(Mr,0),Qc=wg.r,jc=new ve(32768),ne=0;ne<32768;++ne){var et=(ne&43690)>>1|(ne&21845)<<1;et=(et&52428)>>2|(et&13107)<<2,et=(et&61680)>>4|(et&3855)<<4,jc[ne]=((et&65280)>>8|(et&255)<<8)>>1}for(var yi=function(e,t,i){for(var n=e.length,s=0,r=new ve(t);s<n;++s)e[s]&&++r[e[s]-1];var l=new ve(t);for(s=1;s<t;++s)l[s]=l[s-1]+r[s-1]<<1;var o;for(o=new ve(n),s=0;s<n;++s)e[s]&&(o[s]=jc[l[e[s]-1]++]>>15-e[s]);return o},at=new Ce(288),ne=0;ne<144;++ne)at[ne]=8;for(var ne=144;ne<256;++ne)at[ne]=9;for(var ne=256;ne<280;++ne)at[ne]=7;for(var ne=280;ne<288;++ne)at[ne]=8;for(var Dn=new Ce(32),ne=0;ne<32;++ne)Dn[ne]=5;var xg=yi(at,9),Tg=yi(Dn,5),Ac=function(e){return(e+7)/8|0},_c=function(e,t,i){return(i==null||i>e.length)&&(i=e.length),new Ce(e.subarray(t,i))},Qe=function(e,t,i){i<<=t&7;var n=t/8|0;e[n]|=i,e[n+1]|=i>>8},gi=function(e,t,i){i<<=t&7;var n=t/8|0;e[n]|=i,e[n+1]|=i>>8,e[n+2]|=i>>16},Er=function(e,t){for(var i=[],n=0;n<e.length;++n)e[n]&&i.push({s:n,f:e[n]});var s=i.length,r=i.slice();if(!s)return{t:tu,l:0};if(s==1){var l=new Ce(i[0].s+1);return l[i[0].s]=1,{t:l,l:1}}i.sort(function(X,v){return X.f-v.f}),i.push({s:-1,f:25001});var o=i[0],a=i[1],c=0,u=1,h=2;for(i[0]={s:-1,f:o.f+a.f,l:o,r:a};u!=s-1;)o=i[i[c].f<i[h].f?c++:h++],a=i[c!=u&&i[c].f<i[h].f?c++:h++],i[u++]={s:-1,f:o.f+a.f,l:o,r:a};for(var p=r[0].s,n=1;n<s;++n)r[n].s>p&&(p=r[n].s);var m=new ve(p+1),f=zr(i[u-1],m,0);if(f>t){var n=0,d=0,S=f-t,I=1<<S;for(r.sort(function(v,k){return m[k.s]-m[v.s]||v.f-k.f});n<s;++n){var V=r[n].s;if(m[V]>t)d+=I-(1<<f-m[V]),m[V]=t;else break}for(d>>=S;d>0;){var R=r[n].s;m[R]<t?d-=1<<t-m[R]++-1:++n}for(;n>=0&&d;--n){var G=r[n].s;m[G]==t&&(--m[G],++d)}f=t}return{t:new Ce(m),l:f}},zr=function(e,t,i){return e.s==-1?Math.max(zr(e.l,t,i+1),zr(e.r,t,i+1)):t[e.s]=i},$c=function(e){for(var t=e.length;t&&!e[--t];);for(var i=new ve(++t),n=0,s=e[0],r=1,l=function(a){i[n++]=a},o=1;o<=t;++o)if(e[o]==s&&o!=t)++r;else{if(!s&&r>2){for(;r>138;r-=138)l(32754);r>2&&(l(r>10?r-11<<5|28690:r-3<<5|12305),r=0)}else if(r>3){for(l(s),--r;r>6;r-=6)l(8304);r>2&&(l(r-3<<5|8208),r=0)}for(;r--;)l(s);r=1,s=e[o]}return{c:i.subarray(0,n),n:t}},Zi=function(e,t){for(var i=0,n=0;n<t.length;++n)i+=e[n]*t[n];return i},qc=function(e,t,i){var n=i.length,s=Ac(t+2);e[s]=n&255,e[s+1]=n>>8,e[s+2]=e[s]^255,e[s+3]=e[s+1]^255;for(var r=0;r<n;++r)e[s+r+4]=i[r];return(s+4+n)*8},eu=function(e,t,i,n,s,r,l,o,a,c,u){Qe(t,u++,i),++s[256];for(var h=Er(s,15),p=h.t,m=h.l,f=Er(r,15),d=f.t,S=f.l,I=$c(p),V=I.c,R=I.n,G=$c(d),X=G.c,v=G.n,k=new ve(19),w=0;w<V.length;++w)++k[V[w]&31];for(var w=0;w<X.length;++w)++k[X[w]&31];for(var g=Er(k,7),W=g.t,J=g.l,E=19;E>4&&!W[Pc[E-1]];--E);var $=c+5<<3,b=Zi(s,at)+Zi(r,Dn)+l,y=Zi(s,p)+Zi(r,d)+l+14+3*E+Zi(k,W)+2*k[16]+3*k[17]+7*k[18];if(a>=0&&$<=b&&$<=y)return qc(t,u,e.subarray(a,a+c));var T,F,K,N;if(Qe(t,u,1+(y<b)),u+=2,y<b){T=yi(p,m),F=p,K=yi(d,S),N=d;var A=yi(W,J);Qe(t,u,R-257),Qe(t,u+5,v-1),Qe(t,u+10,E-4),u+=14;for(var w=0;w<E;++w)Qe(t,u+3*w,W[Pc[w]]);u+=3*E;for(var j=[V,X],de=0;de<2;++de)for(var Se=j[de],w=0;w<Se.length;++w){var ke=Se[w]&31;Qe(t,u,A[ke]),u+=W[ke],ke>15&&(Qe(t,u,Se[w]>>5&127),u+=Se[w]>>12)}}else T=xg,F=at,K=Tg,N=Dn;for(var w=0;w<o;++w){var ue=n[w];if(ue>255){var ke=ue>>18&31;gi(t,u,T[ke+257]),u+=F[ke+257],ke>7&&(Qe(t,u,ue>>23&31),u+=Kr[ke]);var Ne=ue&31;gi(t,u,K[Ne]),u+=N[Ne],Ne>3&&(gi(t,u,ue>>5&8191),u+=Mr[Ne])}else gi(t,u,T[ue]),u+=F[ue]}return gi(t,u,T[256]),u+F[256]},Lg=new Ur([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),tu=new Ce(0),Ng=function(e,t,i,n,s,r){var l=r.z||e.length,o=new Ce(n+l+5*(1+Math.ceil(l/7e3))+s),a=o.subarray(n,o.length-s),c=r.l,u=(r.r||0)&7;if(t){u&&(a[0]=r.r>>3);for(var h=Lg[t-1],p=h>>13,m=h&8191,f=(1<<i)-1,d=r.p||new ve(32768),S=r.h||new ve(f+1),I=Math.ceil(i/3),V=2*I,R=function(tt){return(e[tt]^e[tt+1]<<I^e[tt+2]<<V)&f},G=new Ur(25e3),X=new ve(288),v=new ve(32),k=0,w=0,g=r.i||0,W=0,J=r.w||0,E=0;g+2<l;++g){var $=R(g),b=g&32767,y=S[$];if(d[b]=y,S[$]=b,J<=g){var T=l-g;if((k>7e3||W>24576)&&(T>423||!c)){u=eu(e,a,0,G,X,v,w,W,E,g-E,u),W=k=w=0,E=g;for(var F=0;F<286;++F)X[F]=0;for(var F=0;F<30;++F)v[F]=0}var K=2,N=0,A=m,j=b-y&32767;if(T>2&&$==R(g-j))for(var de=Math.min(p,T)-1,Se=Math.min(32767,g),ke=Math.min(258,T);j<=Se&&--A&&b!=y;){if(e[g+K]==e[g+K-j]){for(var ue=0;ue<ke&&e[g+ue]==e[g+ue-j];++ue);if(ue>K){if(K=ue,N=j,ue>de)break;for(var Ne=Math.min(j,ue-2),ct=0,F=0;F<Ne;++F){var je=g-j+F&32767,Si=d[je],Nt=je-Si&32767;Nt>ct&&(ct=Nt,y=je)}}}b=y,y=d[b],j+=b-y&32767}if(N){G[W++]=268435456|Or[K]<<18|Qc[N];var Xi=Or[K]&31,Jt=Qc[N]&31;w+=Kr[Xi]+Mr[Jt],++X[257+Xi],++v[Jt],J=g+K,++k}else G[W++]=e[g],++X[e[g]]}}for(g=Math.max(g,J);g<l;++g)G[W++]=e[g],++X[e[g]];u=eu(e,a,c,G,X,v,w,W,E,g-E,u),c||(r.r=u&7|a[u/8|0]<<3,u-=7,r.h=S,r.p=d,r.i=g,r.w=J)}else{for(var g=r.w||0;g<l+c;g+=65535){var Yt=g+65535;Yt>=l&&(a[u/8|0]=c,Yt=l),u=qc(a,u+1,e.subarray(g,Yt))}r.i=l}return _c(o,0,n+Ac(u)+s)},Jg=function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var i=t,n=9;--n;)i=(i&1&&-306674912)^i>>>1;e[t]=i}return e}(),Yg=function(){var e=-1;return{p:function(t){for(var i=e,n=0;n<t.length;++n)i=Jg[i&255^t[n]]^i>>>8;e=i},d:function(){return~e}}},Fg=function(e,t,i,n,s){if(!s&&(s={l:1},t.dictionary)){var r=t.dictionary.subarray(-32768),l=new Ce(r.length+e.length);l.set(r),l.set(e,r.length),e=l,s.w=r.length}return Ng(e,t.level==null?6:t.level,t.mem==null?s.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,i,n,s)},Hr=function(e,t,i){for(;i;++t)e[t]=i,i>>>=8},Ug=function(e,t){var i=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:t.level==9?2:0,e[9]=3,t.mtime!=0&&Hr(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),i){e[3]=8;for(var n=0;n<=i.length;++n)e[n+10]=i.charCodeAt(n)}},Kg=function(e){return 10+(e.filename?e.filename.length+1:0)};function Mg(e,t){t||(t={});var i=Yg(),n=e.length;i.p(e);var s=Fg(e,t,Kg(t),8),r=s.length;return Ug(s,t),Hr(s,r-8,i.d()),Hr(s,r-4,n),s}var iu=typeof TextEncoder<"u"&&new TextEncoder,Og=typeof TextDecoder<"u"&&new TextDecoder;try{Og.decode(tu,{stream:!0})}catch{}function Eg(e,t){var i;if(iu)return iu.encode(e);for(var n=e.length,s=new Ce(e.length+(e.length>>1)),r=0,l=function(u){s[r++]=u},i=0;i<n;++i){if(r+5>s.length){var o=new Ce(r+8+(n-i<<1));o.set(s),s=o}var a=e.charCodeAt(i);a<128||t?l(a):a<2048?(l(192|a>>6),l(128|a&63)):a>55295&&a<57344?(a=65536+(a&1047552)|e.charCodeAt(++i)&1023,l(240|a>>18),l(128|a>>12&63),l(128|a>>6&63),l(128|a&63)):(l(224|a>>12),l(128|a>>6&63),l(128|a&63))}return _c(s,0,r)}function zg(e){return ye(this,null,function*(){const t=Eg(JSON.stringify(e)),i=Mg(t),n=yield new Promise(s=>{const r=new FileReader;r.onload=()=>s(r.result),r.readAsDataURL(new Blob([new Uint8Array(i)]))});return{compressedBase64:n.slice(n.indexOf(",")+1),compressedSize:i.length,bufferLength:t.length}})}const nu="dmFyIFVyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxWcj1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgcXI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyICRlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIHRuPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbm49T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgaHQ9KEYsJCxCKT0+JCBpbiBGP1VyKEYsJCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Qn0pOkZbJF09QixEPShGLCQpPT57Zm9yKHZhciBCIGluICR8fCgkPXt9KSl0bi5jYWxsKCQsQikmJmh0KEYsQiwkW0JdKTtpZigkZSlmb3IodmFyIEIgb2YgJGUoJCkpbm4uY2FsbCgkLEIpJiZodChGLEIsJFtCXSk7cmV0dXJuIEZ9LEJlPShGLCQpPT5WcihGLHFyKCQpKTt2YXIgZ2U9KEYsJCk9Pnt2YXIgQj17fTtmb3IodmFyIGVlIGluIEYpdG4uY2FsbChGLGVlKSYmJC5pbmRleE9mKGVlKTwwJiYoQltlZV09RltlZV0pO2lmKEYhPW51bGwmJiRlKWZvcih2YXIgZWUgb2YgJGUoRikpJC5pbmRleE9mKGVlKTwwJiZubi5jYWxsKEYsZWUpJiYoQltlZV09RltlZV0pO3JldHVybiBCfTt2YXIgZnQ9KEYsJCxCKT0+aHQoRix0eXBlb2YgJCE9InN5bWJvbCI/JCsiIjokLEIpO3ZhciBKPShGLCQsQik9Pm5ldyBQcm9taXNlKChlZSxPZSk9Pnt2YXIgVWU9c2U9Pnt0cnl7RWUoQi5uZXh0KHNlKSl9Y2F0Y2goX2Upe09lKF9lKX19LGxlPXNlPT57dHJ5e0VlKEIudGhyb3coc2UpKX1jYXRjaChfZSl7T2UoX2UpfX0sRWU9c2U9PnNlLmRvbmU/ZWUoc2UudmFsdWUpOlByb21pc2UucmVzb2x2ZShzZS52YWx1ZSkudGhlbihVZSxsZSk7RWUoKEI9Qi5hcHBseShGLCQpKS5uZXh0KCkpfSk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IEY9SlNPTiwkPWU9PmUudG9VcHBlckNhc2UoKSxCPWU9Pntjb25zdCB0PXt9O3JldHVybiBlLmZvckVhY2goKG4saSk9Pnt0W2ldPW59KSx0fSxlZT0oZSx0LG4pPT5lLmRvY3VtZW50P2U6e2RvY3VtZW50OmUsdmFyaWFibGVzOnQscmVxdWVzdEhlYWRlcnM6bixzaWduYWw6dm9pZCAwfSxPZT0oZSx0LG4pPT5lLnF1ZXJ5P2U6e3F1ZXJ5OmUsdmFyaWFibGVzOnQscmVxdWVzdEhlYWRlcnM6bixzaWduYWw6dm9pZCAwfSxVZT0oZSx0KT0+ZS5kb2N1bWVudHM/ZTp7ZG9jdW1lbnRzOmUscmVxdWVzdEhlYWRlcnM6dCxzaWduYWw6dm9pZCAwfTtmdW5jdGlvbiBsZShlLHQpe2lmKCEhIWUpdGhyb3cgbmV3IEVycm9yKHQpfWZ1bmN0aW9uIEVlKGUpe3JldHVybiB0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsfWZ1bmN0aW9uIHNlKGUsdCl7aWYoISEhZSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgaW52YXJpYW50IHRyaWdnZXJlZC4iKX1jb25zdCBfZT0vXHJcbnxbXG5ccl0vZztmdW5jdGlvbiBWZShlLHQpe2xldCBuPTAsaT0xO2Zvcihjb25zdCByIG9mIGUuYm9keS5tYXRjaEFsbChfZSkpe2lmKHR5cGVvZiByLmluZGV4PT0ibnVtYmVyInx8c2UoITEpLHIuaW5kZXg+PXQpYnJlYWs7bj1yLmluZGV4K3JbMF0ubGVuZ3RoLGkrPTF9cmV0dXJue2xpbmU6aSxjb2x1bW46dCsxLW59fWZ1bmN0aW9uIHJuKGUpe3JldHVybiBkdChlLnNvdXJjZSxWZShlLnNvdXJjZSxlLnN0YXJ0KSl9ZnVuY3Rpb24gZHQoZSx0KXtjb25zdCBuPWUubG9jYXRpb25PZmZzZXQuY29sdW1uLTEsaT0iIi5wYWRTdGFydChuKStlLmJvZHkscj10LmxpbmUtMSxzPWUubG9jYXRpb25PZmZzZXQubGluZS0xLG89dC5saW5lK3MsYz10LmxpbmU9PT0xP246MCxoPXQuY29sdW1uK2MsZD1gJHtlLm5hbWV9OiR7b306JHtofQpgLHU9aS5zcGxpdCgvXHJcbnxbXG5ccl0vZykseT11W3JdO2lmKHkubGVuZ3RoPjEyMCl7Y29uc3QgZz1NYXRoLmZsb29yKGgvODApLGI9aCU4MCxtPVtdO2ZvcihsZXQgTj0wO048eS5sZW5ndGg7Tis9ODApbS5wdXNoKHkuc2xpY2UoTixOKzgwKSk7cmV0dXJuIGQrcHQoW1tgJHtvfSB8YCxtWzBdXSwuLi5tLnNsaWNlKDEsZysxKS5tYXAoTj0+WyJ8IixOXSksWyJ8IiwiXiIucGFkU3RhcnQoYildLFsifCIsbVtnKzFdXV0pfXJldHVybiBkK3B0KFtbYCR7by0xfSB8YCx1W3ItMV1dLFtgJHtvfSB8YCx5XSxbInwiLCJeIi5wYWRTdGFydChoKV0sW2Ake28rMX0gfGAsdVtyKzFdXV0pfWZ1bmN0aW9uIHB0KGUpe2NvbnN0IHQ9ZS5maWx0ZXIoKFtpLHJdKT0+ciE9PXZvaWQgMCksbj1NYXRoLm1heCguLi50Lm1hcCgoW2ldKT0+aS5sZW5ndGgpKTtyZXR1cm4gdC5tYXAoKFtpLHJdKT0+aS5wYWRTdGFydChuKSsocj8iICIrcjoiIikpLmpvaW4oYApgKX1mdW5jdGlvbiBzbihlKXtjb25zdCB0PWVbMF07cmV0dXJuIHQ9PW51bGx8fCJraW5kImluIHR8fCJsZW5ndGgiaW4gdD97bm9kZXM6dCxzb3VyY2U6ZVsxXSxwb3NpdGlvbnM6ZVsyXSxwYXRoOmVbM10sb3JpZ2luYWxFcnJvcjplWzRdLGV4dGVuc2lvbnM6ZVs1XX06dH1jbGFzcyBxZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQsLi4ubil7dmFyIGkscixzO2NvbnN0e25vZGVzOm8sc291cmNlOmMscG9zaXRpb25zOmgscGF0aDpkLG9yaWdpbmFsRXJyb3I6dSxleHRlbnNpb25zOnl9PXNuKG4pO3N1cGVyKHQpLHRoaXMubmFtZT0iR3JhcGhRTEVycm9yIix0aGlzLnBhdGg9ZCE9bnVsbD9kOnZvaWQgMCx0aGlzLm9yaWdpbmFsRXJyb3I9dSE9bnVsbD91OnZvaWQgMCx0aGlzLm5vZGVzPW10KEFycmF5LmlzQXJyYXkobyk/bzpvP1tvXTp2b2lkIDApO2NvbnN0IGc9bXQoKGk9dGhpcy5ub2Rlcyk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm1hcChtPT5tLmxvYykuZmlsdGVyKG09Pm0hPW51bGwpKTt0aGlzLnNvdXJjZT1jIT1udWxsP2M6Zz09bnVsbHx8KHI9Z1swXSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLnNvdXJjZSx0aGlzLnBvc2l0aW9ucz1oIT1udWxsP2g6Zz09bnVsbD92b2lkIDA6Zy5tYXAobT0+bS5zdGFydCksdGhpcy5sb2NhdGlvbnM9aCYmYz9oLm1hcChtPT5WZShjLG0pKTpnPT1udWxsP3ZvaWQgMDpnLm1hcChtPT5WZShtLnNvdXJjZSxtLnN0YXJ0KSk7Y29uc3QgYj1FZSh1PT1udWxsP3ZvaWQgMDp1LmV4dGVuc2lvbnMpP3U9PW51bGw/dm9pZCAwOnUuZXh0ZW5zaW9uczp2b2lkIDA7dGhpcy5leHRlbnNpb25zPShzPXkhPW51bGw/eTpiKSE9PW51bGwmJnMhPT12b2lkIDA/czpPYmplY3QuY3JlYXRlKG51bGwpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMse21lc3NhZ2U6e3dyaXRhYmxlOiEwLGVudW1lcmFibGU6ITB9LG5hbWU6e2VudW1lcmFibGU6ITF9LG5vZGVzOntlbnVtZXJhYmxlOiExfSxzb3VyY2U6e2VudW1lcmFibGU6ITF9LHBvc2l0aW9uczp7ZW51bWVyYWJsZTohMX0sb3JpZ2luYWxFcnJvcjp7ZW51bWVyYWJsZTohMX19KSx1IT1udWxsJiZ1LnN0YWNrP09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJzdGFjayIse3ZhbHVlOnUuc3RhY2ssd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk6RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxxZSk6T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInN0YWNrIix7dmFsdWU6RXJyb3IoKS5zdGFjayx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJHcmFwaFFMRXJyb3IifXRvU3RyaW5nKCl7bGV0IHQ9dGhpcy5tZXNzYWdlO2lmKHRoaXMubm9kZXMpZm9yKGNvbnN0IG4gb2YgdGhpcy5ub2RlcyluLmxvYyYmKHQrPWAKCmArcm4obi5sb2MpKTtlbHNlIGlmKHRoaXMuc291cmNlJiZ0aGlzLmxvY2F0aW9ucylmb3IoY29uc3QgbiBvZiB0aGlzLmxvY2F0aW9ucyl0Kz1gCgpgK2R0KHRoaXMuc291cmNlLG4pO3JldHVybiB0fXRvSlNPTigpe2NvbnN0IHQ9e21lc3NhZ2U6dGhpcy5tZXNzYWdlfTtyZXR1cm4gdGhpcy5sb2NhdGlvbnMhPW51bGwmJih0LmxvY2F0aW9ucz10aGlzLmxvY2F0aW9ucyksdGhpcy5wYXRoIT1udWxsJiYodC5wYXRoPXRoaXMucGF0aCksdGhpcy5leHRlbnNpb25zIT1udWxsJiZPYmplY3Qua2V5cyh0aGlzLmV4dGVuc2lvbnMpLmxlbmd0aD4wJiYodC5leHRlbnNpb25zPXRoaXMuZXh0ZW5zaW9ucyksdH19ZnVuY3Rpb24gbXQoZSl7cmV0dXJuIGU9PT12b2lkIDB8fGUubGVuZ3RoPT09MD92b2lkIDA6ZX1mdW5jdGlvbiBHKGUsdCxuKXtyZXR1cm4gbmV3IHFlKGBTeW50YXggRXJyb3I6ICR7bn1gLHtzb3VyY2U6ZSxwb3NpdGlvbnM6W3RdfSl9Y2xhc3Mgb257Y29uc3RydWN0b3IodCxuLGkpe3RoaXMuc3RhcnQ9dC5zdGFydCx0aGlzLmVuZD1uLmVuZCx0aGlzLnN0YXJ0VG9rZW49dCx0aGlzLmVuZFRva2VuPW4sdGhpcy5zb3VyY2U9aX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJMb2NhdGlvbiJ9dG9KU09OKCl7cmV0dXJue3N0YXJ0OnRoaXMuc3RhcnQsZW5kOnRoaXMuZW5kfX19Y2xhc3MgeXR7Y29uc3RydWN0b3IodCxuLGkscixzLG8pe3RoaXMua2luZD10LHRoaXMuc3RhcnQ9bix0aGlzLmVuZD1pLHRoaXMubGluZT1yLHRoaXMuY29sdW1uPXMsdGhpcy52YWx1ZT1vLHRoaXMucHJldj1udWxsLHRoaXMubmV4dD1udWxsfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIlRva2VuIn10b0pTT04oKXtyZXR1cm57a2luZDp0aGlzLmtpbmQsdmFsdWU6dGhpcy52YWx1ZSxsaW5lOnRoaXMubGluZSxjb2x1bW46dGhpcy5jb2x1bW59fX1jb25zdCB2dD17TmFtZTpbXSxEb2N1bWVudDpbImRlZmluaXRpb25zIl0sT3BlcmF0aW9uRGVmaW5pdGlvbjpbIm5hbWUiLCJ2YXJpYWJsZURlZmluaXRpb25zIiwiZGlyZWN0aXZlcyIsInNlbGVjdGlvblNldCJdLFZhcmlhYmxlRGVmaW5pdGlvbjpbInZhcmlhYmxlIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImRpcmVjdGl2ZXMiXSxWYXJpYWJsZTpbIm5hbWUiXSxTZWxlY3Rpb25TZXQ6WyJzZWxlY3Rpb25zIl0sRmllbGQ6WyJhbGlhcyIsIm5hbWUiLCJhcmd1bWVudHMiLCJkaXJlY3RpdmVzIiwic2VsZWN0aW9uU2V0Il0sQXJndW1lbnQ6WyJuYW1lIiwidmFsdWUiXSxGcmFnbWVudFNwcmVhZDpbIm5hbWUiLCJkaXJlY3RpdmVzIl0sSW5saW5lRnJhZ21lbnQ6WyJ0eXBlQ29uZGl0aW9uIiwiZGlyZWN0aXZlcyIsInNlbGVjdGlvblNldCJdLEZyYWdtZW50RGVmaW5pdGlvbjpbIm5hbWUiLCJ2YXJpYWJsZURlZmluaXRpb25zIiwidHlwZUNvbmRpdGlvbiIsImRpcmVjdGl2ZXMiLCJzZWxlY3Rpb25TZXQiXSxJbnRWYWx1ZTpbXSxGbG9hdFZhbHVlOltdLFN0cmluZ1ZhbHVlOltdLEJvb2xlYW5WYWx1ZTpbXSxOdWxsVmFsdWU6W10sRW51bVZhbHVlOltdLExpc3RWYWx1ZTpbInZhbHVlcyJdLE9iamVjdFZhbHVlOlsiZmllbGRzIl0sT2JqZWN0RmllbGQ6WyJuYW1lIiwidmFsdWUiXSxEaXJlY3RpdmU6WyJuYW1lIiwiYXJndW1lbnRzIl0sTmFtZWRUeXBlOlsibmFtZSJdLExpc3RUeXBlOlsidHlwZSJdLE5vbk51bGxUeXBlOlsidHlwZSJdLFNjaGVtYURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsImRpcmVjdGl2ZXMiLCJvcGVyYXRpb25UeXBlcyJdLE9wZXJhdGlvblR5cGVEZWZpbml0aW9uOlsidHlwZSJdLFNjYWxhclR5cGVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiZGlyZWN0aXZlcyJdLE9iamVjdFR5cGVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiaW50ZXJmYWNlcyIsImRpcmVjdGl2ZXMiLCJmaWVsZHMiXSxGaWVsZERlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJhcmd1bWVudHMiLCJ0eXBlIiwiZGlyZWN0aXZlcyJdLElucHV0VmFsdWVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImRpcmVjdGl2ZXMiXSxJbnRlcmZhY2VUeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImludGVyZmFjZXMiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sVW5pb25UeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImRpcmVjdGl2ZXMiLCJ0eXBlcyJdLEVudW1UeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImRpcmVjdGl2ZXMiLCJ2YWx1ZXMiXSxFbnVtVmFsdWVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiZGlyZWN0aXZlcyJdLElucHV0T2JqZWN0VHlwZURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sRGlyZWN0aXZlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImFyZ3VtZW50cyIsImxvY2F0aW9ucyJdLFNjaGVtYUV4dGVuc2lvbjpbImRpcmVjdGl2ZXMiLCJvcGVyYXRpb25UeXBlcyJdLFNjYWxhclR5cGVFeHRlbnNpb246WyJuYW1lIiwiZGlyZWN0aXZlcyJdLE9iamVjdFR5cGVFeHRlbnNpb246WyJuYW1lIiwiaW50ZXJmYWNlcyIsImRpcmVjdGl2ZXMiLCJmaWVsZHMiXSxJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uOlsibmFtZSIsImludGVyZmFjZXMiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sVW5pb25UeXBlRXh0ZW5zaW9uOlsibmFtZSIsImRpcmVjdGl2ZXMiLCJ0eXBlcyJdLEVudW1UeXBlRXh0ZW5zaW9uOlsibmFtZSIsImRpcmVjdGl2ZXMiLCJ2YWx1ZXMiXSxJbnB1dE9iamVjdFR5cGVFeHRlbnNpb246WyJuYW1lIiwiZGlyZWN0aXZlcyIsImZpZWxkcyJdfSxhbj1uZXcgU2V0KE9iamVjdC5rZXlzKHZ0KSk7ZnVuY3Rpb24gZ3QoZSl7Y29uc3QgdD1lPT1udWxsP3ZvaWQgMDplLmtpbmQ7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIiYmYW4uaGFzKHQpfXZhciBoZTsoZnVuY3Rpb24oZSl7ZS5RVUVSWT0icXVlcnkiLGUuTVVUQVRJT049Im11dGF0aW9uIixlLlNVQlNDUklQVElPTj0ic3Vic2NyaXB0aW9uIn0pKGhlfHwoaGU9e30pKTt2YXIgamU7KGZ1bmN0aW9uKGUpe2UuUVVFUlk9IlFVRVJZIixlLk1VVEFUSU9OPSJNVVRBVElPTiIsZS5TVUJTQ1JJUFRJT049IlNVQlNDUklQVElPTiIsZS5GSUVMRD0iRklFTEQiLGUuRlJBR01FTlRfREVGSU5JVElPTj0iRlJBR01FTlRfREVGSU5JVElPTiIsZS5GUkFHTUVOVF9TUFJFQUQ9IkZSQUdNRU5UX1NQUkVBRCIsZS5JTkxJTkVfRlJBR01FTlQ9IklOTElORV9GUkFHTUVOVCIsZS5WQVJJQUJMRV9ERUZJTklUSU9OPSJWQVJJQUJMRV9ERUZJTklUSU9OIixlLlNDSEVNQT0iU0NIRU1BIixlLlNDQUxBUj0iU0NBTEFSIixlLk9CSkVDVD0iT0JKRUNUIixlLkZJRUxEX0RFRklOSVRJT049IkZJRUxEX0RFRklOSVRJT04iLGUuQVJHVU1FTlRfREVGSU5JVElPTj0iQVJHVU1FTlRfREVGSU5JVElPTiIsZS5JTlRFUkZBQ0U9IklOVEVSRkFDRSIsZS5VTklPTj0iVU5JT04iLGUuRU5VTT0iRU5VTSIsZS5FTlVNX1ZBTFVFPSJFTlVNX1ZBTFVFIixlLklOUFVUX09CSkVDVD0iSU5QVVRfT0JKRUNUIixlLklOUFVUX0ZJRUxEX0RFRklOSVRJT049IklOUFVUX0ZJRUxEX0RFRklOSVRJT04ifSkoamV8fChqZT17fSkpO3ZhciBUOyhmdW5jdGlvbihlKXtlLk5BTUU9Ik5hbWUiLGUuRE9DVU1FTlQ9IkRvY3VtZW50IixlLk9QRVJBVElPTl9ERUZJTklUSU9OPSJPcGVyYXRpb25EZWZpbml0aW9uIixlLlZBUklBQkxFX0RFRklOSVRJT049IlZhcmlhYmxlRGVmaW5pdGlvbiIsZS5TRUxFQ1RJT05fU0VUPSJTZWxlY3Rpb25TZXQiLGUuRklFTEQ9IkZpZWxkIixlLkFSR1VNRU5UPSJBcmd1bWVudCIsZS5GUkFHTUVOVF9TUFJFQUQ9IkZyYWdtZW50U3ByZWFkIixlLklOTElORV9GUkFHTUVOVD0iSW5saW5lRnJhZ21lbnQiLGUuRlJBR01FTlRfREVGSU5JVElPTj0iRnJhZ21lbnREZWZpbml0aW9uIixlLlZBUklBQkxFPSJWYXJpYWJsZSIsZS5JTlQ9IkludFZhbHVlIixlLkZMT0FUPSJGbG9hdFZhbHVlIixlLlNUUklORz0iU3RyaW5nVmFsdWUiLGUuQk9PTEVBTj0iQm9vbGVhblZhbHVlIixlLk5VTEw9Ik51bGxWYWx1ZSIsZS5FTlVNPSJFbnVtVmFsdWUiLGUuTElTVD0iTGlzdFZhbHVlIixlLk9CSkVDVD0iT2JqZWN0VmFsdWUiLGUuT0JKRUNUX0ZJRUxEPSJPYmplY3RGaWVsZCIsZS5ESVJFQ1RJVkU9IkRpcmVjdGl2ZSIsZS5OQU1FRF9UWVBFPSJOYW1lZFR5cGUiLGUuTElTVF9UWVBFPSJMaXN0VHlwZSIsZS5OT05fTlVMTF9UWVBFPSJOb25OdWxsVHlwZSIsZS5TQ0hFTUFfREVGSU5JVElPTj0iU2NoZW1hRGVmaW5pdGlvbiIsZS5PUEVSQVRJT05fVFlQRV9ERUZJTklUSU9OPSJPcGVyYXRpb25UeXBlRGVmaW5pdGlvbiIsZS5TQ0FMQVJfVFlQRV9ERUZJTklUSU9OPSJTY2FsYXJUeXBlRGVmaW5pdGlvbiIsZS5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OPSJPYmplY3RUeXBlRGVmaW5pdGlvbiIsZS5GSUVMRF9ERUZJTklUSU9OPSJGaWVsZERlZmluaXRpb24iLGUuSU5QVVRfVkFMVUVfREVGSU5JVElPTj0iSW5wdXRWYWx1ZURlZmluaXRpb24iLGUuSU5URVJGQUNFX1RZUEVfREVGSU5JVElPTj0iSW50ZXJmYWNlVHlwZURlZmluaXRpb24iLGUuVU5JT05fVFlQRV9ERUZJTklUSU9OPSJVbmlvblR5cGVEZWZpbml0aW9uIixlLkVOVU1fVFlQRV9ERUZJTklUSU9OPSJFbnVtVHlwZURlZmluaXRpb24iLGUuRU5VTV9WQUxVRV9ERUZJTklUSU9OPSJFbnVtVmFsdWVEZWZpbml0aW9uIixlLklOUFVUX09CSkVDVF9UWVBFX0RFRklOSVRJT049IklucHV0T2JqZWN0VHlwZURlZmluaXRpb24iLGUuRElSRUNUSVZFX0RFRklOSVRJT049IkRpcmVjdGl2ZURlZmluaXRpb24iLGUuU0NIRU1BX0VYVEVOU0lPTj0iU2NoZW1hRXh0ZW5zaW9uIixlLlNDQUxBUl9UWVBFX0VYVEVOU0lPTj0iU2NhbGFyVHlwZUV4dGVuc2lvbiIsZS5PQkpFQ1RfVFlQRV9FWFRFTlNJT049Ik9iamVjdFR5cGVFeHRlbnNpb24iLGUuSU5URVJGQUNFX1RZUEVfRVhURU5TSU9OPSJJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uIixlLlVOSU9OX1RZUEVfRVhURU5TSU9OPSJVbmlvblR5cGVFeHRlbnNpb24iLGUuRU5VTV9UWVBFX0VYVEVOU0lPTj0iRW51bVR5cGVFeHRlbnNpb24iLGUuSU5QVVRfT0JKRUNUX1RZUEVfRVhURU5TSU9OPSJJbnB1dE9iamVjdFR5cGVFeHRlbnNpb24ifSkoVHx8KFQ9e30pKTtmdW5jdGlvbiBHZShlKXtyZXR1cm4gZT09PTl8fGU9PT0zMn1mdW5jdGlvbiBUZShlKXtyZXR1cm4gZT49NDgmJmU8PTU3fWZ1bmN0aW9uIEV0KGUpe3JldHVybiBlPj05NyYmZTw9MTIyfHxlPj02NSYmZTw9OTB9ZnVuY3Rpb24gX3QoZSl7cmV0dXJuIEV0KGUpfHxlPT09OTV9ZnVuY3Rpb24gY24oZSl7cmV0dXJuIEV0KGUpfHxUZShlKXx8ZT09PTk1fWZ1bmN0aW9uIHVuKGUpe3ZhciB0O2xldCBuPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSLGk9bnVsbCxyPS0xO2ZvcihsZXQgbz0wO288ZS5sZW5ndGg7KytvKXt2YXIgcztjb25zdCBjPWVbb10saD1sbihjKTtoIT09Yy5sZW5ndGgmJihpPShzPWkpIT09bnVsbCYmcyE9PXZvaWQgMD9zOm8scj1vLG8hPT0wJiZoPG4mJihuPWgpKX1yZXR1cm4gZS5tYXAoKG8sYyk9PmM9PT0wP286by5zbGljZShuKSkuc2xpY2UoKHQ9aSkhPT1udWxsJiZ0IT09dm9pZCAwP3Q6MCxyKzEpfWZ1bmN0aW9uIGxuKGUpe2xldCB0PTA7Zm9yKDt0PGUubGVuZ3RoJiZHZShlLmNoYXJDb2RlQXQodCkpOykrK3Q7cmV0dXJuIHR9ZnVuY3Rpb24gaG4oZSx0KXtjb25zdCBuPWUucmVwbGFjZSgvIiIiL2csJ1xcIiIiJyksaT1uLnNwbGl0KC9cclxufFtcblxyXS9nKSxyPWkubGVuZ3RoPT09MSxzPWkubGVuZ3RoPjEmJmkuc2xpY2UoMSkuZXZlcnkoYj0+Yi5sZW5ndGg9PT0wfHxHZShiLmNoYXJDb2RlQXQoMCkpKSxvPW4uZW5kc1dpdGgoJ1xcIiIiJyksYz1lLmVuZHNXaXRoKCciJykmJiFvLGg9ZS5lbmRzV2l0aCgiXFwiKSxkPWN8fGgsdT0hcnx8ZS5sZW5ndGg+NzB8fGR8fHN8fG87bGV0IHk9IiI7Y29uc3QgZz1yJiZHZShlLmNoYXJDb2RlQXQoMCkpO3JldHVybih1JiYhZ3x8cykmJih5Kz1gCmApLHkrPW4sKHV8fGQpJiYoeSs9YApgKSwnIiIiJyt5KyciIiInfXZhciBsOyhmdW5jdGlvbihlKXtlLlNPRj0iPFNPRj4iLGUuRU9GPSI8RU9GPiIsZS5CQU5HPSIhIixlLkRPTExBUj0iJCIsZS5BTVA9IiYiLGUuUEFSRU5fTD0iKCIsZS5QQVJFTl9SPSIpIixlLlNQUkVBRD0iLi4uIixlLkNPTE9OPSI6IixlLkVRVUFMUz0iPSIsZS5BVD0iQCIsZS5CUkFDS0VUX0w9IlsiLGUuQlJBQ0tFVF9SPSJdIixlLkJSQUNFX0w9InsiLGUuUElQRT0ifCIsZS5CUkFDRV9SPSJ9IixlLk5BTUU9Ik5hbWUiLGUuSU5UPSJJbnQiLGUuRkxPQVQ9IkZsb2F0IixlLlNUUklORz0iU3RyaW5nIixlLkJMT0NLX1NUUklORz0iQmxvY2tTdHJpbmciLGUuQ09NTUVOVD0iQ29tbWVudCJ9KShsfHwobD17fSkpO2NsYXNzIGZue2NvbnN0cnVjdG9yKHQpe2NvbnN0IG49bmV3IHl0KGwuU09GLDAsMCwwLDApO3RoaXMuc291cmNlPXQsdGhpcy5sYXN0VG9rZW49bix0aGlzLnRva2VuPW4sdGhpcy5saW5lPTEsdGhpcy5saW5lU3RhcnQ9MH1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJMZXhlciJ9YWR2YW5jZSgpe3JldHVybiB0aGlzLmxhc3RUb2tlbj10aGlzLnRva2VuLHRoaXMudG9rZW49dGhpcy5sb29rYWhlYWQoKX1sb29rYWhlYWQoKXtsZXQgdD10aGlzLnRva2VuO2lmKHQua2luZCE9PWwuRU9GKWRvIGlmKHQubmV4dCl0PXQubmV4dDtlbHNle2NvbnN0IG49cG4odGhpcyx0LmVuZCk7dC5uZXh0PW4sbi5wcmV2PXQsdD1ufXdoaWxlKHQua2luZD09PWwuQ09NTUVOVCk7cmV0dXJuIHR9fWZ1bmN0aW9uIGRuKGUpe3JldHVybiBlPT09bC5CQU5HfHxlPT09bC5ET0xMQVJ8fGU9PT1sLkFNUHx8ZT09PWwuUEFSRU5fTHx8ZT09PWwuUEFSRU5fUnx8ZT09PWwuU1BSRUFEfHxlPT09bC5DT0xPTnx8ZT09PWwuRVFVQUxTfHxlPT09bC5BVHx8ZT09PWwuQlJBQ0tFVF9MfHxlPT09bC5CUkFDS0VUX1J8fGU9PT1sLkJSQUNFX0x8fGU9PT1sLlBJUEV8fGU9PT1sLkJSQUNFX1J9ZnVuY3Rpb24gZmUoZSl7cmV0dXJuIGU+PTAmJmU8PTU1Mjk1fHxlPj01NzM0NCYmZTw9MTExNDExMX1mdW5jdGlvbiB3ZShlLHQpe3JldHVybiBUdChlLmNoYXJDb2RlQXQodCkpJiZidChlLmNoYXJDb2RlQXQodCsxKSl9ZnVuY3Rpb24gVHQoZSl7cmV0dXJuIGU+PTU1Mjk2JiZlPD01NjMxOX1mdW5jdGlvbiBidChlKXtyZXR1cm4gZT49NTYzMjAmJmU8PTU3MzQzfWZ1bmN0aW9uIGNlKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LmNvZGVQb2ludEF0KHQpO2lmKG49PT12b2lkIDApcmV0dXJuIGwuRU9GO2lmKG4+PTMyJiZuPD0xMjYpe2NvbnN0IGk9U3RyaW5nLmZyb21Db2RlUG9pbnQobik7cmV0dXJuIGk9PT0nIic/YCciJ2A6YCIke2l9ImB9cmV0dXJuIlUrIituLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpLnBhZFN0YXJ0KDQsIjAiKX1mdW5jdGlvbiBVKGUsdCxuLGkscil7Y29uc3Qgcz1lLmxpbmUsbz0xK24tZS5saW5lU3RhcnQ7cmV0dXJuIG5ldyB5dCh0LG4saSxzLG8scil9ZnVuY3Rpb24gcG4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10O2Zvcig7cjxpOyl7Y29uc3Qgcz1uLmNoYXJDb2RlQXQocik7c3dpdGNoKHMpe2Nhc2UgNjUyNzk6Y2FzZSA5OmNhc2UgMzI6Y2FzZSA0NDorK3I7Y29udGludWU7Y2FzZSAxMDorK3IsKytlLmxpbmUsZS5saW5lU3RhcnQ9cjtjb250aW51ZTtjYXNlIDEzOm4uY2hhckNvZGVBdChyKzEpPT09MTA/cis9MjorK3IsKytlLmxpbmUsZS5saW5lU3RhcnQ9cjtjb250aW51ZTtjYXNlIDM1OnJldHVybiBtbihlLHIpO2Nhc2UgMzM6cmV0dXJuIFUoZSxsLkJBTkcscixyKzEpO2Nhc2UgMzY6cmV0dXJuIFUoZSxsLkRPTExBUixyLHIrMSk7Y2FzZSAzODpyZXR1cm4gVShlLGwuQU1QLHIscisxKTtjYXNlIDQwOnJldHVybiBVKGUsbC5QQVJFTl9MLHIscisxKTtjYXNlIDQxOnJldHVybiBVKGUsbC5QQVJFTl9SLHIscisxKTtjYXNlIDQ2OmlmKG4uY2hhckNvZGVBdChyKzEpPT09NDYmJm4uY2hhckNvZGVBdChyKzIpPT09NDYpcmV0dXJuIFUoZSxsLlNQUkVBRCxyLHIrMyk7YnJlYWs7Y2FzZSA1ODpyZXR1cm4gVShlLGwuQ09MT04scixyKzEpO2Nhc2UgNjE6cmV0dXJuIFUoZSxsLkVRVUFMUyxyLHIrMSk7Y2FzZSA2NDpyZXR1cm4gVShlLGwuQVQscixyKzEpO2Nhc2UgOTE6cmV0dXJuIFUoZSxsLkJSQUNLRVRfTCxyLHIrMSk7Y2FzZSA5MzpyZXR1cm4gVShlLGwuQlJBQ0tFVF9SLHIscisxKTtjYXNlIDEyMzpyZXR1cm4gVShlLGwuQlJBQ0VfTCxyLHIrMSk7Y2FzZSAxMjQ6cmV0dXJuIFUoZSxsLlBJUEUscixyKzEpO2Nhc2UgMTI1OnJldHVybiBVKGUsbC5CUkFDRV9SLHIscisxKTtjYXNlIDM0OnJldHVybiBuLmNoYXJDb2RlQXQocisxKT09PTM0JiZuLmNoYXJDb2RlQXQocisyKT09PTM0P1RuKGUscik6dm4oZSxyKX1pZihUZShzKXx8cz09PTQ1KXJldHVybiB5bihlLHIscyk7aWYoX3QocykpcmV0dXJuIGJuKGUscik7dGhyb3cgRyhlLnNvdXJjZSxyLHM9PT0zOT9gVW5leHBlY3RlZCBzaW5nbGUgcXVvdGUgY2hhcmFjdGVyICgnKSwgZGlkIHlvdSBtZWFuIHRvIHVzZSBhIGRvdWJsZSBxdW90ZSAoIik/YDpmZShzKXx8d2UobixyKT9gVW5leHBlY3RlZCBjaGFyYWN0ZXI6ICR7Y2UoZSxyKX0uYDpgSW52YWxpZCBjaGFyYWN0ZXI6ICR7Y2UoZSxyKX0uYCl9cmV0dXJuIFUoZSxsLkVPRixpLGkpfWZ1bmN0aW9uIG1uKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LGk9bi5sZW5ndGg7bGV0IHI9dCsxO2Zvcig7cjxpOyl7Y29uc3Qgcz1uLmNoYXJDb2RlQXQocik7aWYocz09PTEwfHxzPT09MTMpYnJlYWs7aWYoZmUocykpKytyO2Vsc2UgaWYod2UobixyKSlyKz0yO2Vsc2UgYnJlYWt9cmV0dXJuIFUoZSxsLkNPTU1FTlQsdCxyLG4uc2xpY2UodCsxLHIpKX1mdW5jdGlvbiB5bihlLHQsbil7Y29uc3QgaT1lLnNvdXJjZS5ib2R5O2xldCByPXQscz1uLG89ITE7aWYocz09PTQ1JiYocz1pLmNoYXJDb2RlQXQoKytyKSkscz09PTQ4KXtpZihzPWkuY2hhckNvZGVBdCgrK3IpLFRlKHMpKXRocm93IEcoZS5zb3VyY2UscixgSW52YWxpZCBudW1iZXIsIHVuZXhwZWN0ZWQgZGlnaXQgYWZ0ZXIgMDogJHtjZShlLHIpfS5gKX1lbHNlIHI9emUoZSxyLHMpLHM9aS5jaGFyQ29kZUF0KHIpO2lmKHM9PT00NiYmKG89ITAscz1pLmNoYXJDb2RlQXQoKytyKSxyPXplKGUscixzKSxzPWkuY2hhckNvZGVBdChyKSksKHM9PT02OXx8cz09PTEwMSkmJihvPSEwLHM9aS5jaGFyQ29kZUF0KCsrciksKHM9PT00M3x8cz09PTQ1KSYmKHM9aS5jaGFyQ29kZUF0KCsrcikpLHI9emUoZSxyLHMpLHM9aS5jaGFyQ29kZUF0KHIpKSxzPT09NDZ8fF90KHMpKXRocm93IEcoZS5zb3VyY2UscixgSW52YWxpZCBudW1iZXIsIGV4cGVjdGVkIGRpZ2l0IGJ1dCBnb3Q6ICR7Y2UoZSxyKX0uYCk7cmV0dXJuIFUoZSxvP2wuRkxPQVQ6bC5JTlQsdCxyLGkuc2xpY2UodCxyKSl9ZnVuY3Rpb24gemUoZSx0LG4pe2lmKCFUZShuKSl0aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgbnVtYmVyLCBleHBlY3RlZCBkaWdpdCBidXQgZ290OiAke2NlKGUsdCl9LmApO2NvbnN0IGk9ZS5zb3VyY2UuYm9keTtsZXQgcj10KzE7Zm9yKDtUZShpLmNoYXJDb2RlQXQocikpOykrK3I7cmV0dXJuIHJ9ZnVuY3Rpb24gdm4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10KzEscz1yLG89IiI7Zm9yKDtyPGk7KXtjb25zdCBjPW4uY2hhckNvZGVBdChyKTtpZihjPT09MzQpcmV0dXJuIG8rPW4uc2xpY2UocyxyKSxVKGUsbC5TVFJJTkcsdCxyKzEsbyk7aWYoYz09PTkyKXtvKz1uLnNsaWNlKHMscik7Y29uc3QgaD1uLmNoYXJDb2RlQXQocisxKT09PTExNz9uLmNoYXJDb2RlQXQocisyKT09PTEyMz9nbihlLHIpOkVuKGUscik6X24oZSxyKTtvKz1oLnZhbHVlLHIrPWguc2l6ZSxzPXI7Y29udGludWV9aWYoYz09PTEwfHxjPT09MTMpYnJlYWs7aWYoZmUoYykpKytyO2Vsc2UgaWYod2UobixyKSlyKz0yO2Vsc2UgdGhyb3cgRyhlLnNvdXJjZSxyLGBJbnZhbGlkIGNoYXJhY3RlciB3aXRoaW4gU3RyaW5nOiAke2NlKGUscil9LmApfXRocm93IEcoZS5zb3VyY2UsciwiVW50ZXJtaW5hdGVkIHN0cmluZy4iKX1mdW5jdGlvbiBnbihlLHQpe2NvbnN0IG49ZS5zb3VyY2UuYm9keTtsZXQgaT0wLHI9Mztmb3IoO3I8MTI7KXtjb25zdCBzPW4uY2hhckNvZGVBdCh0K3IrKyk7aWYocz09PTEyNSl7aWYocjw1fHwhZmUoaSkpYnJlYWs7cmV0dXJue3ZhbHVlOlN0cmluZy5mcm9tQ29kZVBvaW50KGkpLHNpemU6cn19aWYoaT1pPDw0fGJlKHMpLGk8MClicmVha310aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0K3IpfSIuYCl9ZnVuY3Rpb24gRW4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1OdChuLHQrMik7aWYoZmUoaSkpcmV0dXJue3ZhbHVlOlN0cmluZy5mcm9tQ29kZVBvaW50KGkpLHNpemU6Nn07aWYoVHQoaSkmJm4uY2hhckNvZGVBdCh0KzYpPT09OTImJm4uY2hhckNvZGVBdCh0KzcpPT09MTE3KXtjb25zdCByPU50KG4sdCs4KTtpZihidChyKSlyZXR1cm57dmFsdWU6U3RyaW5nLmZyb21Db2RlUG9pbnQoaSxyKSxzaXplOjEyfX10aHJvdyBHKGUuc291cmNlLHQsYEludmFsaWQgVW5pY29kZSBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0KzYpfSIuYCl9ZnVuY3Rpb24gTnQoZSx0KXtyZXR1cm4gYmUoZS5jaGFyQ29kZUF0KHQpKTw8MTJ8YmUoZS5jaGFyQ29kZUF0KHQrMSkpPDw4fGJlKGUuY2hhckNvZGVBdCh0KzIpKTw8NHxiZShlLmNoYXJDb2RlQXQodCszKSl9ZnVuY3Rpb24gYmUoZSl7cmV0dXJuIGU+PTQ4JiZlPD01Nz9lLTQ4OmU+PTY1JiZlPD03MD9lLTU1OmU+PTk3JiZlPD0xMDI/ZS04NzotMX1mdW5jdGlvbiBfbihlLHQpe2NvbnN0IG49ZS5zb3VyY2UuYm9keTtzd2l0Y2gobi5jaGFyQ29kZUF0KHQrMSkpe2Nhc2UgMzQ6cmV0dXJue3ZhbHVlOiciJyxzaXplOjJ9O2Nhc2UgOTI6cmV0dXJue3ZhbHVlOiJcXCIsc2l6ZToyfTtjYXNlIDQ3OnJldHVybnt2YWx1ZToiLyIsc2l6ZToyfTtjYXNlIDk4OnJldHVybnt2YWx1ZToiXGIiLHNpemU6Mn07Y2FzZSAxMDI6cmV0dXJue3ZhbHVlOiJcZiIsc2l6ZToyfTtjYXNlIDExMDpyZXR1cm57dmFsdWU6YApgLHNpemU6Mn07Y2FzZSAxMTQ6cmV0dXJue3ZhbHVlOiJcciIsc2l6ZToyfTtjYXNlIDExNjpyZXR1cm57dmFsdWU6IgkiLHNpemU6Mn19dGhyb3cgRyhlLnNvdXJjZSx0LGBJbnZhbGlkIGNoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2U6ICIke24uc2xpY2UodCx0KzIpfSIuYCl9ZnVuY3Rpb24gVG4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj1lLmxpbmVTdGFydCxzPXQrMyxvPXMsYz0iIjtjb25zdCBoPVtdO2Zvcig7czxpOyl7Y29uc3QgZD1uLmNoYXJDb2RlQXQocyk7aWYoZD09PTM0JiZuLmNoYXJDb2RlQXQocysxKT09PTM0JiZuLmNoYXJDb2RlQXQocysyKT09PTM0KXtjKz1uLnNsaWNlKG8scyksaC5wdXNoKGMpO2NvbnN0IHU9VShlLGwuQkxPQ0tfU1RSSU5HLHQscyszLHVuKGgpLmpvaW4oYApgKSk7cmV0dXJuIGUubGluZSs9aC5sZW5ndGgtMSxlLmxpbmVTdGFydD1yLHV9aWYoZD09PTkyJiZuLmNoYXJDb2RlQXQocysxKT09PTM0JiZuLmNoYXJDb2RlQXQocysyKT09PTM0JiZuLmNoYXJDb2RlQXQocyszKT09PTM0KXtjKz1uLnNsaWNlKG8scyksbz1zKzEscys9NDtjb250aW51ZX1pZihkPT09MTB8fGQ9PT0xMyl7Yys9bi5zbGljZShvLHMpLGgucHVzaChjKSxkPT09MTMmJm4uY2hhckNvZGVBdChzKzEpPT09MTA/cys9MjorK3MsYz0iIixvPXMscj1zO2NvbnRpbnVlfWlmKGZlKGQpKSsrcztlbHNlIGlmKHdlKG4scykpcys9MjtlbHNlIHRocm93IEcoZS5zb3VyY2UscyxgSW52YWxpZCBjaGFyYWN0ZXIgd2l0aGluIFN0cmluZzogJHtjZShlLHMpfS5gKX10aHJvdyBHKGUuc291cmNlLHMsIlVudGVybWluYXRlZCBzdHJpbmcuIil9ZnVuY3Rpb24gYm4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHksaT1uLmxlbmd0aDtsZXQgcj10KzE7Zm9yKDtyPGk7KXtjb25zdCBzPW4uY2hhckNvZGVBdChyKTtpZihjbihzKSkrK3I7ZWxzZSBicmVha31yZXR1cm4gVShlLGwuTkFNRSx0LHIsbi5zbGljZSh0LHIpKX1jb25zdCBObj0xMCx4dD0yO2Z1bmN0aW9uIEhlKGUpe3JldHVybiBEZShlLFtdKX1mdW5jdGlvbiBEZShlLHQpe3N3aXRjaCh0eXBlb2YgZSl7Y2FzZSJzdHJpbmciOnJldHVybiBKU09OLnN0cmluZ2lmeShlKTtjYXNlImZ1bmN0aW9uIjpyZXR1cm4gZS5uYW1lP2BbZnVuY3Rpb24gJHtlLm5hbWV9XWA6IltmdW5jdGlvbl0iO2Nhc2Uib2JqZWN0IjpyZXR1cm4geG4oZSx0KTtkZWZhdWx0OnJldHVybiBTdHJpbmcoZSl9fWZ1bmN0aW9uIHhuKGUsdCl7aWYoZT09PW51bGwpcmV0dXJuIm51bGwiO2lmKHQuaW5jbHVkZXMoZSkpcmV0dXJuIltDaXJjdWxhcl0iO2NvbnN0IG49Wy4uLnQsZV07aWYoQW4oZSkpe2NvbnN0IGk9ZS50b0pTT04oKTtpZihpIT09ZSlyZXR1cm4gdHlwZW9mIGk9PSJzdHJpbmciP2k6RGUoaSxuKX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIFNuKGUsbik7cmV0dXJuIEluKGUsbil9ZnVuY3Rpb24gQW4oZSl7cmV0dXJuIHR5cGVvZiBlLnRvSlNPTj09ImZ1bmN0aW9uIn1mdW5jdGlvbiBJbihlLHQpe2NvbnN0IG49T2JqZWN0LmVudHJpZXMoZSk7cmV0dXJuIG4ubGVuZ3RoPT09MD8ie30iOnQubGVuZ3RoPnh0PyJbIitPbihlKSsiXSI6InsgIituLm1hcCgoW3Isc10pPT5yKyI6ICIrRGUocyx0KSkuam9pbigiLCAiKSsiIH0ifWZ1bmN0aW9uIFNuKGUsdCl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiJbXSI7aWYodC5sZW5ndGg+eHQpcmV0dXJuIltBcnJheV0iO2NvbnN0IG49TWF0aC5taW4oTm4sZS5sZW5ndGgpLGk9ZS5sZW5ndGgtbixyPVtdO2ZvcihsZXQgcz0wO3M8bjsrK3Mpci5wdXNoKERlKGVbc10sdCkpO3JldHVybiBpPT09MT9yLnB1c2goIi4uLiAxIG1vcmUgaXRlbSIpOmk+MSYmci5wdXNoKGAuLi4gJHtpfSBtb3JlIGl0ZW1zYCksIlsiK3Iuam9pbigiLCAiKSsiXSJ9ZnVuY3Rpb24gT24oZSl7Y29uc3QgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkucmVwbGFjZSgvXlxbb2JqZWN0IC8sIiIpLnJlcGxhY2UoL10kLywiIik7aWYodD09PSJPYmplY3QiJiZ0eXBlb2YgZS5jb25zdHJ1Y3Rvcj09ImZ1bmN0aW9uIil7Y29uc3Qgbj1lLmNvbnN0cnVjdG9yLm5hbWU7aWYodHlwZW9mIG49PSJzdHJpbmciJiZuIT09IiIpcmV0dXJuIG59cmV0dXJuIHR9Y29uc3Qgd249Z2xvYmFsVGhpcy5wcm9jZXNzJiZwcm9jZXNzLmVudi5OT0RFX0VOVj09PSJwcm9kdWN0aW9uIj9mdW5jdGlvbih0LG4pe3JldHVybiB0IGluc3RhbmNlb2Ygbn06ZnVuY3Rpb24odCxuKXtpZih0IGluc3RhbmNlb2YgbilyZXR1cm4hMDtpZih0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsKXt2YXIgaTtjb25zdCByPW4ucHJvdG90eXBlW1N5bWJvbC50b1N0cmluZ1RhZ10scz1TeW1ib2wudG9TdHJpbmdUYWcgaW4gdD90W1N5bWJvbC50b1N0cmluZ1RhZ106KGk9dC5jb25zdHJ1Y3Rvcik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm5hbWU7aWYocj09PXMpe2NvbnN0IG89SGUodCk7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlICR7cn0gIiR7b30iIGZyb20gYW5vdGhlciBtb2R1bGUgb3IgcmVhbG0uCgpFbnN1cmUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBpbnN0YW5jZSBvZiAiZ3JhcGhxbCIgaW4gdGhlIG5vZGVfbW9kdWxlcwpkaXJlY3RvcnkuIElmIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiAiZ3JhcGhxbCIgYXJlIHRoZSBkZXBlbmRlbmNpZXMgb2Ygb3RoZXIKcmVsaWVkIG9uIG1vZHVsZXMsIHVzZSAicmVzb2x1dGlvbnMiIHRvIGVuc3VyZSBvbmx5IG9uZSB2ZXJzaW9uIGlzIGluc3RhbGxlZC4KCmh0dHBzOi8veWFybnBrZy5jb20vZW4vZG9jcy9zZWxlY3RpdmUtdmVyc2lvbi1yZXNvbHV0aW9ucwoKRHVwbGljYXRlICJncmFwaHFsIiBtb2R1bGVzIGNhbm5vdCBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUgc2luY2UgZGlmZmVyZW50CnZlcnNpb25zIG1heSBoYXZlIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYW5kIGJlaGF2aW9yLiBUaGUgZGF0YSBmcm9tIG9uZQp2ZXJzaW9uIHVzZWQgaW4gdGhlIGZ1bmN0aW9uIGZyb20gYW5vdGhlciBjb3VsZCBwcm9kdWNlIGNvbmZ1c2luZyBhbmQKc3B1cmlvdXMgcmVzdWx0cy5gKX19cmV0dXJuITF9O2NsYXNzIEF0e2NvbnN0cnVjdG9yKHQsbj0iR3JhcGhRTCByZXF1ZXN0IixpPXtsaW5lOjEsY29sdW1uOjF9KXt0eXBlb2YgdD09InN0cmluZyJ8fGxlKCExLGBCb2R5IG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkOiAke0hlKHQpfS5gKSx0aGlzLmJvZHk9dCx0aGlzLm5hbWU9bix0aGlzLmxvY2F0aW9uT2Zmc2V0PWksdGhpcy5sb2NhdGlvbk9mZnNldC5saW5lPjB8fGxlKCExLCJsaW5lIGluIGxvY2F0aW9uT2Zmc2V0IGlzIDEtaW5kZXhlZCBhbmQgbXVzdCBiZSBwb3NpdGl2ZS4iKSx0aGlzLmxvY2F0aW9uT2Zmc2V0LmNvbHVtbj4wfHxsZSghMSwiY29sdW1uIGluIGxvY2F0aW9uT2Zmc2V0IGlzIDEtaW5kZXhlZCBhbmQgbXVzdCBiZSBwb3NpdGl2ZS4iKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJTb3VyY2UifX1mdW5jdGlvbiBEbihlKXtyZXR1cm4gd24oZSxBdCl9ZnVuY3Rpb24gSXQoZSx0KXtjb25zdCBuPW5ldyBrbihlLHQpLGk9bi5wYXJzZURvY3VtZW50KCk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJ0b2tlbkNvdW50Iix7ZW51bWVyYWJsZTohMSx2YWx1ZTpuLnRva2VuQ291bnR9KSxpfWNsYXNzIGtue2NvbnN0cnVjdG9yKHQsbj17fSl7Y29uc3QgaT1Ebih0KT90Om5ldyBBdCh0KTt0aGlzLl9sZXhlcj1uZXcgZm4oaSksdGhpcy5fb3B0aW9ucz1uLHRoaXMuX3Rva2VuQ291bnRlcj0wfWdldCB0b2tlbkNvdW50KCl7cmV0dXJuIHRoaXMuX3Rva2VuQ291bnRlcn1wYXJzZU5hbWUoKXtjb25zdCB0PXRoaXMuZXhwZWN0VG9rZW4obC5OQU1FKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5OQU1FLHZhbHVlOnQudmFsdWV9KX1wYXJzZURvY3VtZW50KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpULkRPQ1VNRU5ULGRlZmluaXRpb25zOnRoaXMubWFueShsLlNPRix0aGlzLnBhcnNlRGVmaW5pdGlvbixsLkVPRil9KX1wYXJzZURlZmluaXRpb24oKXtpZih0aGlzLnBlZWsobC5CUkFDRV9MKSlyZXR1cm4gdGhpcy5wYXJzZU9wZXJhdGlvbkRlZmluaXRpb24oKTtjb25zdCB0PXRoaXMucGVla0Rlc2NyaXB0aW9uKCksbj10P3RoaXMuX2xleGVyLmxvb2thaGVhZCgpOnRoaXMuX2xleGVyLnRva2VuO2lmKG4ua2luZD09PWwuTkFNRSl7c3dpdGNoKG4udmFsdWUpe2Nhc2Uic2NoZW1hIjpyZXR1cm4gdGhpcy5wYXJzZVNjaGVtYURlZmluaXRpb24oKTtjYXNlInNjYWxhciI6cmV0dXJuIHRoaXMucGFyc2VTY2FsYXJUeXBlRGVmaW5pdGlvbigpO2Nhc2UidHlwZSI6cmV0dXJuIHRoaXMucGFyc2VPYmplY3RUeXBlRGVmaW5pdGlvbigpO2Nhc2UiaW50ZXJmYWNlIjpyZXR1cm4gdGhpcy5wYXJzZUludGVyZmFjZVR5cGVEZWZpbml0aW9uKCk7Y2FzZSJ1bmlvbiI6cmV0dXJuIHRoaXMucGFyc2VVbmlvblR5cGVEZWZpbml0aW9uKCk7Y2FzZSJlbnVtIjpyZXR1cm4gdGhpcy5wYXJzZUVudW1UeXBlRGVmaW5pdGlvbigpO2Nhc2UiaW5wdXQiOnJldHVybiB0aGlzLnBhcnNlSW5wdXRPYmplY3RUeXBlRGVmaW5pdGlvbigpO2Nhc2UiZGlyZWN0aXZlIjpyZXR1cm4gdGhpcy5wYXJzZURpcmVjdGl2ZURlZmluaXRpb24oKX1pZih0KXRocm93IEcodGhpcy5fbGV4ZXIuc291cmNlLHRoaXMuX2xleGVyLnRva2VuLnN0YXJ0LCJVbmV4cGVjdGVkIGRlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbnMgYXJlIHN1cHBvcnRlZCBvbmx5IG9uIHR5cGUgZGVmaW5pdGlvbnMuIik7c3dpdGNoKG4udmFsdWUpe2Nhc2UicXVlcnkiOmNhc2UibXV0YXRpb24iOmNhc2Uic3Vic2NyaXB0aW9uIjpyZXR1cm4gdGhpcy5wYXJzZU9wZXJhdGlvbkRlZmluaXRpb24oKTtjYXNlImZyYWdtZW50IjpyZXR1cm4gdGhpcy5wYXJzZUZyYWdtZW50RGVmaW5pdGlvbigpO2Nhc2UiZXh0ZW5kIjpyZXR1cm4gdGhpcy5wYXJzZVR5cGVTeXN0ZW1FeHRlbnNpb24oKX19dGhyb3cgdGhpcy51bmV4cGVjdGVkKG4pfXBhcnNlT3BlcmF0aW9uRGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47aWYodGhpcy5wZWVrKGwuQlJBQ0VfTCkpcmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuT1BFUkFUSU9OX0RFRklOSVRJT04sb3BlcmF0aW9uOmhlLlFVRVJZLG5hbWU6dm9pZCAwLHZhcmlhYmxlRGVmaW5pdGlvbnM6W10sZGlyZWN0aXZlczpbXSxzZWxlY3Rpb25TZXQ6dGhpcy5wYXJzZVNlbGVjdGlvblNldCgpfSk7Y29uc3Qgbj10aGlzLnBhcnNlT3BlcmF0aW9uVHlwZSgpO2xldCBpO3JldHVybiB0aGlzLnBlZWsobC5OQU1FKSYmKGk9dGhpcy5wYXJzZU5hbWUoKSksdGhpcy5ub2RlKHQse2tpbmQ6VC5PUEVSQVRJT05fREVGSU5JVElPTixvcGVyYXRpb246bixuYW1lOmksdmFyaWFibGVEZWZpbml0aW9uczp0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9ucygpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KX1wYXJzZU9wZXJhdGlvblR5cGUoKXtjb25zdCB0PXRoaXMuZXhwZWN0VG9rZW4obC5OQU1FKTtzd2l0Y2godC52YWx1ZSl7Y2FzZSJxdWVyeSI6cmV0dXJuIGhlLlFVRVJZO2Nhc2UibXV0YXRpb24iOnJldHVybiBoZS5NVVRBVElPTjtjYXNlInN1YnNjcmlwdGlvbiI6cmV0dXJuIGhlLlNVQlNDUklQVElPTn10aHJvdyB0aGlzLnVuZXhwZWN0ZWQodCl9cGFyc2VWYXJpYWJsZURlZmluaXRpb25zKCl7cmV0dXJuIHRoaXMub3B0aW9uYWxNYW55KGwuUEFSRU5fTCx0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9uLGwuUEFSRU5fUil9cGFyc2VWYXJpYWJsZURlZmluaXRpb24oKXtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuX2xleGVyLnRva2VuLHtraW5kOlQuVkFSSUFCTEVfREVGSU5JVElPTix2YXJpYWJsZTp0aGlzLnBhcnNlVmFyaWFibGUoKSx0eXBlOih0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMucGFyc2VUeXBlUmVmZXJlbmNlKCkpLGRlZmF1bHRWYWx1ZTp0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4obC5FUVVBTFMpP3RoaXMucGFyc2VDb25zdFZhbHVlTGl0ZXJhbCgpOnZvaWQgMCxkaXJlY3RpdmVzOnRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKX0pfXBhcnNlVmFyaWFibGUoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuRE9MTEFSKSx0aGlzLm5vZGUodCx7a2luZDpULlZBUklBQkxFLG5hbWU6dGhpcy5wYXJzZU5hbWUoKX0pfXBhcnNlU2VsZWN0aW9uU2V0KCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpULlNFTEVDVElPTl9TRVQsc2VsZWN0aW9uczp0aGlzLm1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VTZWxlY3Rpb24sbC5CUkFDRV9SKX0pfXBhcnNlU2VsZWN0aW9uKCl7cmV0dXJuIHRoaXMucGVlayhsLlNQUkVBRCk/dGhpcy5wYXJzZUZyYWdtZW50KCk6dGhpcy5wYXJzZUZpZWxkKCl9cGFyc2VGaWVsZCgpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlTmFtZSgpO2xldCBpLHI7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkNPTE9OKT8oaT1uLHI9dGhpcy5wYXJzZU5hbWUoKSk6cj1uLHRoaXMubm9kZSh0LHtraW5kOlQuRklFTEQsYWxpYXM6aSxuYW1lOnIsYXJndW1lbnRzOnRoaXMucGFyc2VBcmd1bWVudHMoITEpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBlZWsobC5CUkFDRV9MKT90aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCk6dm9pZCAwfSl9cGFyc2VBcmd1bWVudHModCl7Y29uc3Qgbj10P3RoaXMucGFyc2VDb25zdEFyZ3VtZW50OnRoaXMucGFyc2VBcmd1bWVudDtyZXR1cm4gdGhpcy5vcHRpb25hbE1hbnkobC5QQVJFTl9MLG4sbC5QQVJFTl9SKX1wYXJzZUFyZ3VtZW50KHQ9ITEpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW4saT10aGlzLnBhcnNlTmFtZSgpO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMubm9kZShuLHtraW5kOlQuQVJHVU1FTlQsbmFtZTppLHZhbHVlOnRoaXMucGFyc2VWYWx1ZUxpdGVyYWwodCl9KX1wYXJzZUNvbnN0QXJndW1lbnQoKXtyZXR1cm4gdGhpcy5wYXJzZUFyZ3VtZW50KCEwKX1wYXJzZUZyYWdtZW50KCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdFRva2VuKGwuU1BSRUFEKTtjb25zdCBuPXRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJvbiIpO3JldHVybiFuJiZ0aGlzLnBlZWsobC5OQU1FKT90aGlzLm5vZGUodCx7a2luZDpULkZSQUdNRU5UX1NQUkVBRCxuYW1lOnRoaXMucGFyc2VGcmFnbWVudE5hbWUoKSxkaXJlY3RpdmVzOnRoaXMucGFyc2VEaXJlY3RpdmVzKCExKX0pOnRoaXMubm9kZSh0LHtraW5kOlQuSU5MSU5FX0ZSQUdNRU5ULHR5cGVDb25kaXRpb246bj90aGlzLnBhcnNlTmFtZWRUeXBlKCk6dm9pZCAwLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KX1wYXJzZUZyYWdtZW50RGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47cmV0dXJuIHRoaXMuZXhwZWN0S2V5d29yZCgiZnJhZ21lbnQiKSx0aGlzLl9vcHRpb25zLmFsbG93TGVnYWN5RnJhZ21lbnRWYXJpYWJsZXM9PT0hMD90aGlzLm5vZGUodCx7a2luZDpULkZSQUdNRU5UX0RFRklOSVRJT04sbmFtZTp0aGlzLnBhcnNlRnJhZ21lbnROYW1lKCksdmFyaWFibGVEZWZpbml0aW9uczp0aGlzLnBhcnNlVmFyaWFibGVEZWZpbml0aW9ucygpLHR5cGVDb25kaXRpb246KHRoaXMuZXhwZWN0S2V5d29yZCgib24iKSx0aGlzLnBhcnNlTmFtZWRUeXBlKCkpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KTp0aGlzLm5vZGUodCx7a2luZDpULkZSQUdNRU5UX0RFRklOSVRJT04sbmFtZTp0aGlzLnBhcnNlRnJhZ21lbnROYW1lKCksdHlwZUNvbmRpdGlvbjoodGhpcy5leHBlY3RLZXl3b3JkKCJvbiIpLHRoaXMucGFyc2VOYW1lZFR5cGUoKSksZGlyZWN0aXZlczp0aGlzLnBhcnNlRGlyZWN0aXZlcyghMSksc2VsZWN0aW9uU2V0OnRoaXMucGFyc2VTZWxlY3Rpb25TZXQoKX0pfXBhcnNlRnJhZ21lbnROYW1lKCl7aWYodGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0ib24iKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLnBhcnNlTmFtZSgpfXBhcnNlVmFsdWVMaXRlcmFsKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW47c3dpdGNoKG4ua2luZCl7Y2FzZSBsLkJSQUNLRVRfTDpyZXR1cm4gdGhpcy5wYXJzZUxpc3QodCk7Y2FzZSBsLkJSQUNFX0w6cmV0dXJuIHRoaXMucGFyc2VPYmplY3QodCk7Y2FzZSBsLklOVDpyZXR1cm4gdGhpcy5hZHZhbmNlTGV4ZXIoKSx0aGlzLm5vZGUobix7a2luZDpULklOVCx2YWx1ZTpuLnZhbHVlfSk7Y2FzZSBsLkZMT0FUOnJldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLHRoaXMubm9kZShuLHtraW5kOlQuRkxPQVQsdmFsdWU6bi52YWx1ZX0pO2Nhc2UgbC5TVFJJTkc6Y2FzZSBsLkJMT0NLX1NUUklORzpyZXR1cm4gdGhpcy5wYXJzZVN0cmluZ0xpdGVyYWwoKTtjYXNlIGwuTkFNRTpzd2l0Y2godGhpcy5hZHZhbmNlTGV4ZXIoKSxuLnZhbHVlKXtjYXNlInRydWUiOnJldHVybiB0aGlzLm5vZGUobix7a2luZDpULkJPT0xFQU4sdmFsdWU6ITB9KTtjYXNlImZhbHNlIjpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6VC5CT09MRUFOLHZhbHVlOiExfSk7Y2FzZSJudWxsIjpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6VC5OVUxMfSk7ZGVmYXVsdDpyZXR1cm4gdGhpcy5ub2RlKG4se2tpbmQ6VC5FTlVNLHZhbHVlOm4udmFsdWV9KX1jYXNlIGwuRE9MTEFSOmlmKHQpaWYodGhpcy5leHBlY3RUb2tlbihsLkRPTExBUiksdGhpcy5fbGV4ZXIudG9rZW4ua2luZD09PWwuTkFNRSl7Y29uc3QgaT10aGlzLl9sZXhlci50b2tlbi52YWx1ZTt0aHJvdyBHKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBVbmV4cGVjdGVkIHZhcmlhYmxlICIkJHtpfSIgaW4gY29uc3RhbnQgdmFsdWUuYCl9ZWxzZSB0aHJvdyB0aGlzLnVuZXhwZWN0ZWQobik7cmV0dXJuIHRoaXMucGFyc2VWYXJpYWJsZSgpO2RlZmF1bHQ6dGhyb3cgdGhpcy51bmV4cGVjdGVkKCl9fXBhcnNlQ29uc3RWYWx1ZUxpdGVyYWwoKXtyZXR1cm4gdGhpcy5wYXJzZVZhbHVlTGl0ZXJhbCghMCl9cGFyc2VTdHJpbmdMaXRlcmFsKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gdGhpcy5hZHZhbmNlTGV4ZXIoKSx0aGlzLm5vZGUodCx7a2luZDpULlNUUklORyx2YWx1ZTp0LnZhbHVlLGJsb2NrOnQua2luZD09PWwuQkxPQ0tfU1RSSU5HfSl9cGFyc2VMaXN0KHQpe2NvbnN0IG49KCk9PnRoaXMucGFyc2VWYWx1ZUxpdGVyYWwodCk7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpULkxJU1QsdmFsdWVzOnRoaXMuYW55KGwuQlJBQ0tFVF9MLG4sbC5CUkFDS0VUX1IpfSl9cGFyc2VPYmplY3QodCl7Y29uc3Qgbj0oKT0+dGhpcy5wYXJzZU9iamVjdEZpZWxkKHQpO3JldHVybiB0aGlzLm5vZGUodGhpcy5fbGV4ZXIudG9rZW4se2tpbmQ6VC5PQkpFQ1QsZmllbGRzOnRoaXMuYW55KGwuQlJBQ0VfTCxuLGwuQlJBQ0VfUil9KX1wYXJzZU9iamVjdEZpZWxkKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW4saT10aGlzLnBhcnNlTmFtZSgpO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pLHRoaXMubm9kZShuLHtraW5kOlQuT0JKRUNUX0ZJRUxELG5hbWU6aSx2YWx1ZTp0aGlzLnBhcnNlVmFsdWVMaXRlcmFsKHQpfSl9cGFyc2VEaXJlY3RpdmVzKHQpe2NvbnN0IG49W107Zm9yKDt0aGlzLnBlZWsobC5BVCk7KW4ucHVzaCh0aGlzLnBhcnNlRGlyZWN0aXZlKHQpKTtyZXR1cm4gbn1wYXJzZUNvbnN0RGlyZWN0aXZlcygpe3JldHVybiB0aGlzLnBhcnNlRGlyZWN0aXZlcyghMCl9cGFyc2VEaXJlY3RpdmUodCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gdGhpcy5leHBlY3RUb2tlbihsLkFUKSx0aGlzLm5vZGUobix7a2luZDpULkRJUkVDVElWRSxuYW1lOnRoaXMucGFyc2VOYW1lKCksYXJndW1lbnRzOnRoaXMucGFyc2VBcmd1bWVudHModCl9KX1wYXJzZVR5cGVSZWZlcmVuY2UoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO2xldCBuO2lmKHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkJSQUNLRVRfTCkpe2NvbnN0IGk9dGhpcy5wYXJzZVR5cGVSZWZlcmVuY2UoKTt0aGlzLmV4cGVjdFRva2VuKGwuQlJBQ0tFVF9SKSxuPXRoaXMubm9kZSh0LHtraW5kOlQuTElTVF9UWVBFLHR5cGU6aX0pfWVsc2Ugbj10aGlzLnBhcnNlTmFtZWRUeXBlKCk7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkJBTkcpP3RoaXMubm9kZSh0LHtraW5kOlQuTk9OX05VTExfVFlQRSx0eXBlOm59KTpufXBhcnNlTmFtZWRUeXBlKCl7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpULk5BTUVEX1RZUEUsbmFtZTp0aGlzLnBhcnNlTmFtZSgpfSl9cGVla0Rlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMucGVlayhsLlNUUklORyl8fHRoaXMucGVlayhsLkJMT0NLX1NUUklORyl9cGFyc2VEZXNjcmlwdGlvbigpe2lmKHRoaXMucGVla0Rlc2NyaXB0aW9uKCkpcmV0dXJuIHRoaXMucGFyc2VTdHJpbmdMaXRlcmFsKCl9cGFyc2VTY2hlbWFEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgic2NoZW1hIik7Y29uc3QgaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscj10aGlzLm1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VPcGVyYXRpb25UeXBlRGVmaW5pdGlvbixsLkJSQUNFX1IpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULlNDSEVNQV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sZGlyZWN0aXZlczppLG9wZXJhdGlvblR5cGVzOnJ9KX1wYXJzZU9wZXJhdGlvblR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VPcGVyYXRpb25UeXBlKCk7dGhpcy5leHBlY3RUb2tlbihsLkNPTE9OKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lZFR5cGUoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5PUEVSQVRJT05fVFlQRV9ERUZJTklUSU9OLG9wZXJhdGlvbjpuLHR5cGU6aX0pfXBhcnNlU2NhbGFyVHlwZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJzY2FsYXIiKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuU0NBTEFSX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6aSxkaXJlY3RpdmVzOnJ9KX1wYXJzZU9iamVjdFR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgidHlwZSIpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VJbXBsZW1lbnRzSW50ZXJmYWNlcygpLHM9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLG89dGhpcy5wYXJzZUZpZWxkc0RlZmluaXRpb24oKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5PQkpFQ1RfVFlQRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGludGVyZmFjZXM6cixkaXJlY3RpdmVzOnMsZmllbGRzOm99KX1wYXJzZUltcGxlbWVudHNJbnRlcmZhY2VzKCl7cmV0dXJuIHRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJpbXBsZW1lbnRzIik/dGhpcy5kZWxpbWl0ZWRNYW55KGwuQU1QLHRoaXMucGFyc2VOYW1lZFR5cGUpOltdfXBhcnNlRmllbGRzRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLkJSQUNFX0wsdGhpcy5wYXJzZUZpZWxkRGVmaW5pdGlvbixsLkJSQUNFX1IpfXBhcnNlRmllbGREZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpLGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VBcmd1bWVudERlZnMoKTt0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pO2NvbnN0IHM9dGhpcy5wYXJzZVR5cGVSZWZlcmVuY2UoKSxvPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5GSUVMRF9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGFyZ3VtZW50czpyLHR5cGU6cyxkaXJlY3RpdmVzOm99KX1wYXJzZUFyZ3VtZW50RGVmcygpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLlBBUkVOX0wsdGhpcy5wYXJzZUlucHV0VmFsdWVEZWYsbC5QQVJFTl9SKX1wYXJzZUlucHV0VmFsdWVEZWYoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCksaT10aGlzLnBhcnNlTmFtZSgpO3RoaXMuZXhwZWN0VG9rZW4obC5DT0xPTik7Y29uc3Qgcj10aGlzLnBhcnNlVHlwZVJlZmVyZW5jZSgpO2xldCBzO3RoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkVRVUFMUykmJihzPXRoaXMucGFyc2VDb25zdFZhbHVlTGl0ZXJhbCgpKTtjb25zdCBvPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5JTlBVVF9WQUxVRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLHR5cGU6cixkZWZhdWx0VmFsdWU6cyxkaXJlY3RpdmVzOm99KX1wYXJzZUludGVyZmFjZVR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiaW50ZXJmYWNlIik7Y29uc3QgaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUltcGxlbWVudHNJbnRlcmZhY2VzKCkscz10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCksbz10aGlzLnBhcnNlRmllbGRzRGVmaW5pdGlvbigpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULklOVEVSRkFDRV9UWVBFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksaW50ZXJmYWNlczpyLGRpcmVjdGl2ZXM6cyxmaWVsZHM6b30pfXBhcnNlVW5pb25UeXBlRGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlRGVzY3JpcHRpb24oKTt0aGlzLmV4cGVjdEtleXdvcmQoInVuaW9uIik7Y29uc3QgaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHM9dGhpcy5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5VTklPTl9UWVBFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksZGlyZWN0aXZlczpyLHR5cGVzOnN9KX1wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKXtyZXR1cm4gdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGwuRVFVQUxTKT90aGlzLmRlbGltaXRlZE1hbnkobC5QSVBFLHRoaXMucGFyc2VOYW1lZFR5cGUpOltdfXBhcnNlRW51bVR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiZW51bSIpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VFbnVtVmFsdWVzRGVmaW5pdGlvbigpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULkVOVU1fVFlQRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGRpcmVjdGl2ZXM6cix2YWx1ZXM6c30pfXBhcnNlRW51bVZhbHVlc0RlZmluaXRpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25hbE1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VFbnVtVmFsdWVEZWZpbml0aW9uLGwuQlJBQ0VfUil9cGFyc2VFbnVtVmFsdWVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpLGk9dGhpcy5wYXJzZUVudW1WYWx1ZU5hbWUoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5FTlVNX1ZBTFVFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksZGlyZWN0aXZlczpyfSl9cGFyc2VFbnVtVmFsdWVOYW1lKCl7aWYodGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0idHJ1ZSJ8fHRoaXMuX2xleGVyLnRva2VuLnZhbHVlPT09ImZhbHNlInx8dGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0ibnVsbCIpdGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2UsdGhpcy5fbGV4ZXIudG9rZW4uc3RhcnQsYCR7a2UodGhpcy5fbGV4ZXIudG9rZW4pfSBpcyByZXNlcnZlZCBhbmQgY2Fubm90IGJlIHVzZWQgZm9yIGFuIGVudW0gdmFsdWUuYCk7cmV0dXJuIHRoaXMucGFyc2VOYW1lKCl9cGFyc2VJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgiaW5wdXQiKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscz10aGlzLnBhcnNlSW5wdXRGaWVsZHNEZWZpbml0aW9uKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuSU5QVVRfT0JKRUNUX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZUlucHV0RmllbGRzRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLkJSQUNFX0wsdGhpcy5wYXJzZUlucHV0VmFsdWVEZWYsbC5CUkFDRV9SKX1wYXJzZVR5cGVTeXN0ZW1FeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLmxvb2thaGVhZCgpO2lmKHQua2luZD09PWwuTkFNRSlzd2l0Y2godC52YWx1ZSl7Y2FzZSJzY2hlbWEiOnJldHVybiB0aGlzLnBhcnNlU2NoZW1hRXh0ZW5zaW9uKCk7Y2FzZSJzY2FsYXIiOnJldHVybiB0aGlzLnBhcnNlU2NhbGFyVHlwZUV4dGVuc2lvbigpO2Nhc2UidHlwZSI6cmV0dXJuIHRoaXMucGFyc2VPYmplY3RUeXBlRXh0ZW5zaW9uKCk7Y2FzZSJpbnRlcmZhY2UiOnJldHVybiB0aGlzLnBhcnNlSW50ZXJmYWNlVHlwZUV4dGVuc2lvbigpO2Nhc2UidW5pb24iOnJldHVybiB0aGlzLnBhcnNlVW5pb25UeXBlRXh0ZW5zaW9uKCk7Y2FzZSJlbnVtIjpyZXR1cm4gdGhpcy5wYXJzZUVudW1UeXBlRXh0ZW5zaW9uKCk7Y2FzZSJpbnB1dCI6cmV0dXJuIHRoaXMucGFyc2VJbnB1dE9iamVjdFR5cGVFeHRlbnNpb24oKX10aHJvdyB0aGlzLnVuZXhwZWN0ZWQodCl9cGFyc2VTY2hlbWFFeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZCgiZXh0ZW5kIiksdGhpcy5leHBlY3RLZXl3b3JkKCJzY2hlbWEiKTtjb25zdCBuPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxpPXRoaXMub3B0aW9uYWxNYW55KGwuQlJBQ0VfTCx0aGlzLnBhcnNlT3BlcmF0aW9uVHlwZURlZmluaXRpb24sbC5CUkFDRV9SKTtpZihuLmxlbmd0aD09PTAmJmkubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5TQ0hFTUFfRVhURU5TSU9OLGRpcmVjdGl2ZXM6bixvcGVyYXRpb25UeXBlczppfSl9cGFyc2VTY2FsYXJUeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgic2NhbGFyIik7Y29uc3Qgbj10aGlzLnBhcnNlTmFtZSgpLGk9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpO2lmKGkubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5TQ0FMQVJfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGRpcmVjdGl2ZXM6aX0pfXBhcnNlT2JqZWN0VHlwZUV4dGVuc2lvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKCJleHRlbmQiKSx0aGlzLmV4cGVjdEtleXdvcmQoInR5cGUiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5PQkpFQ1RfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGludGVyZmFjZXM6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZUludGVyZmFjZVR5cGVFeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZCgiZXh0ZW5kIiksdGhpcy5leHBlY3RLZXl3b3JkKCJpbnRlcmZhY2UiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTAmJnMubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5JTlRFUkZBQ0VfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGludGVyZmFjZXM6aSxkaXJlY3RpdmVzOnIsZmllbGRzOnN9KX1wYXJzZVVuaW9uVHlwZUV4dGVuc2lvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKCJleHRlbmQiKSx0aGlzLmV4cGVjdEtleXdvcmQoInVuaW9uIik7Y29uc3Qgbj10aGlzLnBhcnNlTmFtZSgpLGk9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHI9dGhpcy5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTtpZihpLmxlbmd0aD09PTAmJnIubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5VTklPTl9UWVBFX0VYVEVOU0lPTixuYW1lOm4sZGlyZWN0aXZlczppLHR5cGVzOnJ9KX1wYXJzZUVudW1UeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgiZW51bSIpO2NvbnN0IG49dGhpcy5wYXJzZU5hbWUoKSxpPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxyPXRoaXMucGFyc2VFbnVtVmFsdWVzRGVmaW5pdGlvbigpO2lmKGkubGVuZ3RoPT09MCYmci5sZW5ndGg9PT0wKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULkVOVU1fVFlQRV9FWFRFTlNJT04sbmFtZTpuLGRpcmVjdGl2ZXM6aSx2YWx1ZXM6cn0pfXBhcnNlSW5wdXRPYmplY3RUeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgiaW5wdXQiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscj10aGlzLnBhcnNlSW5wdXRGaWVsZHNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTApdGhyb3cgdGhpcy51bmV4cGVjdGVkKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuSU5QVVRfT0JKRUNUX1RZUEVfRVhURU5TSU9OLG5hbWU6bixkaXJlY3RpdmVzOmksZmllbGRzOnJ9KX1wYXJzZURpcmVjdGl2ZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJkaXJlY3RpdmUiKSx0aGlzLmV4cGVjdFRva2VuKGwuQVQpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VBcmd1bWVudERlZnMoKSxzPXRoaXMuZXhwZWN0T3B0aW9uYWxLZXl3b3JkKCJyZXBlYXRhYmxlIik7dGhpcy5leHBlY3RLZXl3b3JkKCJvbiIpO2NvbnN0IG89dGhpcy5wYXJzZURpcmVjdGl2ZUxvY2F0aW9ucygpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULkRJUkVDVElWRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGFyZ3VtZW50czpyLHJlcGVhdGFibGU6cyxsb2NhdGlvbnM6b30pfXBhcnNlRGlyZWN0aXZlTG9jYXRpb25zKCl7cmV0dXJuIHRoaXMuZGVsaW1pdGVkTWFueShsLlBJUEUsdGhpcy5wYXJzZURpcmVjdGl2ZUxvY2F0aW9uKX1wYXJzZURpcmVjdGl2ZUxvY2F0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VOYW1lKCk7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGplLG4udmFsdWUpKXJldHVybiBuO3Rocm93IHRoaXMudW5leHBlY3RlZCh0KX1ub2RlKHQsbil7cmV0dXJuIHRoaXMuX29wdGlvbnMubm9Mb2NhdGlvbiE9PSEwJiYobi5sb2M9bmV3IG9uKHQsdGhpcy5fbGV4ZXIubGFzdFRva2VuLHRoaXMuX2xleGVyLnNvdXJjZSkpLG59cGVlayh0KXtyZXR1cm4gdGhpcy5fbGV4ZXIudG9rZW4ua2luZD09PXR9ZXhwZWN0VG9rZW4odCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtpZihuLmtpbmQ9PT10KXJldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLG47dGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgRXhwZWN0ZWQgJHtTdCh0KX0sIGZvdW5kICR7a2Uobil9LmApfWV4cGVjdE9wdGlvbmFsVG9rZW4odCl7cmV0dXJuIHRoaXMuX2xleGVyLnRva2VuLmtpbmQ9PT10Pyh0aGlzLmFkdmFuY2VMZXhlcigpLCEwKTohMX1leHBlY3RLZXl3b3JkKHQpe2NvbnN0IG49dGhpcy5fbGV4ZXIudG9rZW47aWYobi5raW5kPT09bC5OQU1FJiZuLnZhbHVlPT09dCl0aGlzLmFkdmFuY2VMZXhlcigpO2Vsc2UgdGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgRXhwZWN0ZWQgIiR7dH0iLCBmb3VuZCAke2tlKG4pfS5gKX1leHBlY3RPcHRpb25hbEtleXdvcmQodCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gbi5raW5kPT09bC5OQU1FJiZuLnZhbHVlPT09dD8odGhpcy5hZHZhbmNlTGV4ZXIoKSwhMCk6ITF9dW5leHBlY3RlZCh0KXtjb25zdCBuPXQhPW51bGw/dDp0aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gRyh0aGlzLl9sZXhlci5zb3VyY2Usbi5zdGFydCxgVW5leHBlY3RlZCAke2tlKG4pfS5gKX1hbnkodCxuLGkpe3RoaXMuZXhwZWN0VG9rZW4odCk7Y29uc3Qgcj1bXTtmb3IoOyF0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4oaSk7KXIucHVzaChuLmNhbGwodGhpcykpO3JldHVybiByfW9wdGlvbmFsTWFueSh0LG4saSl7aWYodGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpKXtjb25zdCByPVtdO2RvIHIucHVzaChuLmNhbGwodGhpcykpO3doaWxlKCF0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4oaSkpO3JldHVybiByfXJldHVybltdfW1hbnkodCxuLGkpe3RoaXMuZXhwZWN0VG9rZW4odCk7Y29uc3Qgcj1bXTtkbyByLnB1c2gobi5jYWxsKHRoaXMpKTt3aGlsZSghdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGkpKTtyZXR1cm4gcn1kZWxpbWl0ZWRNYW55KHQsbil7dGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpO2NvbnN0IGk9W107ZG8gaS5wdXNoKG4uY2FsbCh0aGlzKSk7d2hpbGUodGhpcy5leHBlY3RPcHRpb25hbFRva2VuKHQpKTtyZXR1cm4gaX1hZHZhbmNlTGV4ZXIoKXtjb25zdHttYXhUb2tlbnM6dH09dGhpcy5fb3B0aW9ucyxuPXRoaXMuX2xleGVyLmFkdmFuY2UoKTtpZihuLmtpbmQhPT1sLkVPRiYmKCsrdGhpcy5fdG9rZW5Db3VudGVyLHQhPT12b2lkIDAmJnRoaXMuX3Rva2VuQ291bnRlcj50KSl0aHJvdyBHKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBEb2N1bWVudCBjb250YWlucyBtb3JlIHRoYXQgJHt0fSB0b2tlbnMuIFBhcnNpbmcgYWJvcnRlZC5gKX19ZnVuY3Rpb24ga2UoZSl7Y29uc3QgdD1lLnZhbHVlO3JldHVybiBTdChlLmtpbmQpKyh0IT1udWxsP2AgIiR7dH0iYDoiIil9ZnVuY3Rpb24gU3QoZSl7cmV0dXJuIGRuKGUpP2AiJHtlfSJgOmV9ZnVuY3Rpb24gQ24oZSl7cmV0dXJuYCIke2UucmVwbGFjZShSbixQbil9ImB9Y29uc3QgUm49L1tceDAwLVx4MWZceDIyXHg1Y1x4N2YtXHg5Zl0vZztmdW5jdGlvbiBQbihlKXtyZXR1cm4gTG5bZS5jaGFyQ29kZUF0KDApXX1jb25zdCBMbj1bIlxcdTAwMDAiLCJcXHUwMDAxIiwiXFx1MDAwMiIsIlxcdTAwMDMiLCJcXHUwMDA0IiwiXFx1MDAwNSIsIlxcdTAwMDYiLCJcXHUwMDA3IiwiXFxiIiwiXFx0IiwiXFxuIiwiXFx1MDAwQiIsIlxcZiIsIlxcciIsIlxcdTAwMEUiLCJcXHUwMDBGIiwiXFx1MDAxMCIsIlxcdTAwMTEiLCJcXHUwMDEyIiwiXFx1MDAxMyIsIlxcdTAwMTQiLCJcXHUwMDE1IiwiXFx1MDAxNiIsIlxcdTAwMTciLCJcXHUwMDE4IiwiXFx1MDAxOSIsIlxcdTAwMUEiLCJcXHUwMDFCIiwiXFx1MDAxQyIsIlxcdTAwMUQiLCJcXHUwMDFFIiwiXFx1MDAxRiIsIiIsIiIsJ1xcIicsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIlxcXFwiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJcXHUwMDdGIiwiXFx1MDA4MCIsIlxcdTAwODEiLCJcXHUwMDgyIiwiXFx1MDA4MyIsIlxcdTAwODQiLCJcXHUwMDg1IiwiXFx1MDA4NiIsIlxcdTAwODciLCJcXHUwMDg4IiwiXFx1MDA4OSIsIlxcdTAwOEEiLCJcXHUwMDhCIiwiXFx1MDA4QyIsIlxcdTAwOEQiLCJcXHUwMDhFIiwiXFx1MDA4RiIsIlxcdTAwOTAiLCJcXHUwMDkxIiwiXFx1MDA5MiIsIlxcdTAwOTMiLCJcXHUwMDk0IiwiXFx1MDA5NSIsIlxcdTAwOTYiLCJcXHUwMDk3IiwiXFx1MDA5OCIsIlxcdTAwOTkiLCJcXHUwMDlBIiwiXFx1MDA5QiIsIlxcdTAwOUMiLCJcXHUwMDlEIiwiXFx1MDA5RSIsIlxcdTAwOUYiXSxGbj1PYmplY3QuZnJlZXplKHt9KTtmdW5jdGlvbiBNbihlLHQsbj12dCl7Y29uc3QgaT1uZXcgTWFwO2Zvcihjb25zdCBQIG9mIE9iamVjdC52YWx1ZXMoVCkpaS5zZXQoUCwkbih0LFApKTtsZXQgcixzPUFycmF5LmlzQXJyYXkoZSksbz1bZV0sYz0tMSxoPVtdLGQ9ZSx1LHk7Y29uc3QgZz1bXSxiPVtdO2Rve2MrKztjb25zdCBQPWM9PT1vLmxlbmd0aCxxPVAmJmgubGVuZ3RoIT09MDtpZihQKXtpZih1PWIubGVuZ3RoPT09MD92b2lkIDA6Z1tnLmxlbmd0aC0xXSxkPXkseT1iLnBvcCgpLHEpaWYocyl7ZD1kLnNsaWNlKCk7bGV0IEU9MDtmb3IoY29uc3RbdyxrXW9mIGgpe2NvbnN0IEw9dy1FO2s9PT1udWxsPyhkLnNwbGljZShMLDEpLEUrKyk6ZFtMXT1rfX1lbHNle2Q9RCh7fSxkKTtmb3IoY29uc3RbRSx3XW9mIGgpZFtFXT13fWM9ci5pbmRleCxvPXIua2V5cyxoPXIuZWRpdHMscz1yLmluQXJyYXkscj1yLnByZXZ9ZWxzZSBpZih5KXtpZih1PXM/YzpvW2NdLGQ9eVt1XSxkPT1udWxsKWNvbnRpbnVlO2cucHVzaCh1KX1sZXQgdjtpZighQXJyYXkuaXNBcnJheShkKSl7dmFyIG0sTjtndChkKXx8bGUoITEsYEludmFsaWQgQVNUIE5vZGU6ICR7SGUoZCl9LmApO2NvbnN0IEU9UD8obT1pLmdldChkLmtpbmQpKT09PW51bGx8fG09PT12b2lkIDA/dm9pZCAwOm0ubGVhdmU6KE49aS5nZXQoZC5raW5kKSk9PT1udWxsfHxOPT09dm9pZCAwP3ZvaWQgMDpOLmVudGVyO2lmKHY9RT09bnVsbD92b2lkIDA6RS5jYWxsKHQsZCx1LHksZyxiKSx2PT09Rm4pYnJlYWs7aWYodj09PSExKXtpZighUCl7Zy5wb3AoKTtjb250aW51ZX19ZWxzZSBpZih2IT09dm9pZCAwJiYoaC5wdXNoKFt1LHZdKSwhUCkpaWYoZ3QodikpZD12O2Vsc2V7Zy5wb3AoKTtjb250aW51ZX19aWYodj09PXZvaWQgMCYmcSYmaC5wdXNoKFt1LGRdKSxQKWcucG9wKCk7ZWxzZXt2YXIgUjtyPXtpbkFycmF5OnMsaW5kZXg6YyxrZXlzOm8sZWRpdHM6aCxwcmV2OnJ9LHM9QXJyYXkuaXNBcnJheShkKSxvPXM/ZDooUj1uW2Qua2luZF0pIT09bnVsbCYmUiE9PXZvaWQgMD9SOltdLGM9LTEsaD1bXSx5JiZiLnB1c2goeSkseT1kfX13aGlsZShyIT09dm9pZCAwKTtyZXR1cm4gaC5sZW5ndGghPT0wP2hbaC5sZW5ndGgtMV1bMV06ZX1mdW5jdGlvbiAkbihlLHQpe2NvbnN0IG49ZVt0XTtyZXR1cm4gdHlwZW9mIG49PSJvYmplY3QiP246dHlwZW9mIG49PSJmdW5jdGlvbiI/e2VudGVyOm4sbGVhdmU6dm9pZCAwfTp7ZW50ZXI6ZS5lbnRlcixsZWF2ZTplLmxlYXZlfX1mdW5jdGlvbiBCbihlKXtyZXR1cm4gTW4oZSxWbil9Y29uc3QgVW49ODAsVm49e05hbWU6e2xlYXZlOmU9PmUudmFsdWV9LFZhcmlhYmxlOntsZWF2ZTplPT4iJCIrZS5uYW1lfSxEb2N1bWVudDp7bGVhdmU6ZT0+cChlLmRlZmluaXRpb25zLGAKCmApfSxPcGVyYXRpb25EZWZpbml0aW9uOntsZWF2ZShlKXtjb25zdCB0PU8oIigiLHAoZS52YXJpYWJsZURlZmluaXRpb25zLCIsICIpLCIpIiksbj1wKFtlLm9wZXJhdGlvbixwKFtlLm5hbWUsdF0pLHAoZS5kaXJlY3RpdmVzLCIgIildLCIgIik7cmV0dXJuKG49PT0icXVlcnkiPyIiOm4rIiAiKStlLnNlbGVjdGlvblNldH19LFZhcmlhYmxlRGVmaW5pdGlvbjp7bGVhdmU6KHt2YXJpYWJsZTplLHR5cGU6dCxkZWZhdWx0VmFsdWU6bixkaXJlY3RpdmVzOml9KT0+ZSsiOiAiK3QrTygiID0gIixuKStPKCIgIixwKGksIiAiKSl9LFNlbGVjdGlvblNldDp7bGVhdmU6KHtzZWxlY3Rpb25zOmV9KT0+cmUoZSl9LEZpZWxkOntsZWF2ZSh7YWxpYXM6ZSxuYW1lOnQsYXJndW1lbnRzOm4sZGlyZWN0aXZlczppLHNlbGVjdGlvblNldDpyfSl7Y29uc3Qgcz1PKCIiLGUsIjogIikrdDtsZXQgbz1zK08oIigiLHAobiwiLCAiKSwiKSIpO3JldHVybiBvLmxlbmd0aD5VbiYmKG89cytPKGAoCmAsQ2UocChuLGAKYCkpLGAKKWApKSxwKFtvLHAoaSwiICIpLHJdLCIgIil9fSxBcmd1bWVudDp7bGVhdmU6KHtuYW1lOmUsdmFsdWU6dH0pPT5lKyI6ICIrdH0sRnJhZ21lbnRTcHJlYWQ6e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dH0pPT4iLi4uIitlK08oIiAiLHAodCwiICIpKX0sSW5saW5lRnJhZ21lbnQ6e2xlYXZlOih7dHlwZUNvbmRpdGlvbjplLGRpcmVjdGl2ZXM6dCxzZWxlY3Rpb25TZXQ6bn0pPT5wKFsiLi4uIixPKCJvbiAiLGUpLHAodCwiICIpLG5dLCIgIil9LEZyYWdtZW50RGVmaW5pdGlvbjp7bGVhdmU6KHtuYW1lOmUsdHlwZUNvbmRpdGlvbjp0LHZhcmlhYmxlRGVmaW5pdGlvbnM6bixkaXJlY3RpdmVzOmksc2VsZWN0aW9uU2V0OnJ9KT0+YGZyYWdtZW50ICR7ZX0ke08oIigiLHAobiwiLCAiKSwiKSIpfSBvbiAke3R9ICR7TygiIixwKGksIiAiKSwiICIpfWArcn0sSW50VmFsdWU6e2xlYXZlOih7dmFsdWU6ZX0pPT5lfSxGbG9hdFZhbHVlOntsZWF2ZTooe3ZhbHVlOmV9KT0+ZX0sU3RyaW5nVmFsdWU6e2xlYXZlOih7dmFsdWU6ZSxibG9jazp0fSk9PnQ/aG4oZSk6Q24oZSl9LEJvb2xlYW5WYWx1ZTp7bGVhdmU6KHt2YWx1ZTplfSk9PmU/InRydWUiOiJmYWxzZSJ9LE51bGxWYWx1ZTp7bGVhdmU6KCk9PiJudWxsIn0sRW51bVZhbHVlOntsZWF2ZTooe3ZhbHVlOmV9KT0+ZX0sTGlzdFZhbHVlOntsZWF2ZTooe3ZhbHVlczplfSk9PiJbIitwKGUsIiwgIikrIl0ifSxPYmplY3RWYWx1ZTp7bGVhdmU6KHtmaWVsZHM6ZX0pPT4ieyIrcChlLCIsICIpKyJ9In0sT2JqZWN0RmllbGQ6e2xlYXZlOih7bmFtZTplLHZhbHVlOnR9KT0+ZSsiOiAiK3R9LERpcmVjdGl2ZTp7bGVhdmU6KHtuYW1lOmUsYXJndW1lbnRzOnR9KT0+IkAiK2UrTygiKCIscCh0LCIsICIpLCIpIil9LE5hbWVkVHlwZTp7bGVhdmU6KHtuYW1lOmV9KT0+ZX0sTGlzdFR5cGU6e2xlYXZlOih7dHlwZTplfSk9PiJbIitlKyJdIn0sTm9uTnVsbFR5cGU6e2xlYXZlOih7dHlwZTplfSk9PmUrIiEifSxTY2hlbWFEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsZGlyZWN0aXZlczp0LG9wZXJhdGlvblR5cGVzOm59KT0+TygiIixlLGAKYCkrcChbInNjaGVtYSIscCh0LCIgIikscmUobildLCIgIil9LE9wZXJhdGlvblR5cGVEZWZpbml0aW9uOntsZWF2ZTooe29wZXJhdGlvbjplLHR5cGU6dH0pPT5lKyI6ICIrdH0sU2NhbGFyVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsZGlyZWN0aXZlczpufSk9Pk8oIiIsZSxgCmApK3AoWyJzY2FsYXIiLHQscChuLCIgIildLCIgIil9LE9iamVjdFR5cGVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGludGVyZmFjZXM6bixkaXJlY3RpdmVzOmksZmllbGRzOnJ9KT0+TygiIixlLGAKYCkrcChbInR5cGUiLHQsTygiaW1wbGVtZW50cyAiLHAobiwiICYgIikpLHAoaSwiICIpLHJlKHIpXSwiICIpfSxGaWVsZERlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsYXJndW1lbnRzOm4sdHlwZTppLGRpcmVjdGl2ZXM6cn0pPT5PKCIiLGUsYApgKSt0KyhPdChuKT9PKGAoCmAsQ2UocChuLGAKYCkpLGAKKWApOk8oIigiLHAobiwiLCAiKSwiKSIpKSsiOiAiK2krTygiICIscChyLCIgIikpfSxJbnB1dFZhbHVlRGVmaW5pdGlvbjp7bGVhdmU6KHtkZXNjcmlwdGlvbjplLG5hbWU6dCx0eXBlOm4sZGVmYXVsdFZhbHVlOmksZGlyZWN0aXZlczpyfSk9Pk8oIiIsZSxgCmApK3AoW3QrIjogIituLE8oIj0gIixpKSxwKHIsIiAiKV0sIiAiKX0sSW50ZXJmYWNlVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsaW50ZXJmYWNlczpuLGRpcmVjdGl2ZXM6aSxmaWVsZHM6cn0pPT5PKCIiLGUsYApgKStwKFsiaW50ZXJmYWNlIix0LE8oImltcGxlbWVudHMgIixwKG4sIiAmICIpKSxwKGksIiAiKSxyZShyKV0sIiAiKX0sVW5pb25UeXBlRGVmaW5pdGlvbjp7bGVhdmU6KHtkZXNjcmlwdGlvbjplLG5hbWU6dCxkaXJlY3RpdmVzOm4sdHlwZXM6aX0pPT5PKCIiLGUsYApgKStwKFsidW5pb24iLHQscChuLCIgIiksTygiPSAiLHAoaSwiIHwgIikpXSwiICIpfSxFbnVtVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsZGlyZWN0aXZlczpuLHZhbHVlczppfSk9Pk8oIiIsZSxgCmApK3AoWyJlbnVtIix0LHAobiwiICIpLHJlKGkpXSwiICIpfSxFbnVtVmFsdWVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGRpcmVjdGl2ZXM6bn0pPT5PKCIiLGUsYApgKStwKFt0LHAobiwiICIpXSwiICIpfSxJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGRpcmVjdGl2ZXM6bixmaWVsZHM6aX0pPT5PKCIiLGUsYApgKStwKFsiaW5wdXQiLHQscChuLCIgIikscmUoaSldLCIgIil9LERpcmVjdGl2ZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsYXJndW1lbnRzOm4scmVwZWF0YWJsZTppLGxvY2F0aW9uczpyfSk9Pk8oIiIsZSxgCmApKyJkaXJlY3RpdmUgQCIrdCsoT3Qobik/TyhgKApgLENlKHAobixgCmApKSxgCilgKTpPKCIoIixwKG4sIiwgIiksIikiKSkrKGk/IiByZXBlYXRhYmxlIjoiIikrIiBvbiAiK3AociwiIHwgIil9LFNjaGVtYUV4dGVuc2lvbjp7bGVhdmU6KHtkaXJlY3RpdmVzOmUsb3BlcmF0aW9uVHlwZXM6dH0pPT5wKFsiZXh0ZW5kIHNjaGVtYSIscChlLCIgIikscmUodCldLCIgIil9LFNjYWxhclR5cGVFeHRlbnNpb246e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dH0pPT5wKFsiZXh0ZW5kIHNjYWxhciIsZSxwKHQsIiAiKV0sIiAiKX0sT2JqZWN0VHlwZUV4dGVuc2lvbjp7bGVhdmU6KHtuYW1lOmUsaW50ZXJmYWNlczp0LGRpcmVjdGl2ZXM6bixmaWVsZHM6aX0pPT5wKFsiZXh0ZW5kIHR5cGUiLGUsTygiaW1wbGVtZW50cyAiLHAodCwiICYgIikpLHAobiwiICIpLHJlKGkpXSwiICIpfSxJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uOntsZWF2ZTooe25hbWU6ZSxpbnRlcmZhY2VzOnQsZGlyZWN0aXZlczpuLGZpZWxkczppfSk9PnAoWyJleHRlbmQgaW50ZXJmYWNlIixlLE8oImltcGxlbWVudHMgIixwKHQsIiAmICIpKSxwKG4sIiAiKSxyZShpKV0sIiAiKX0sVW5pb25UeXBlRXh0ZW5zaW9uOntsZWF2ZTooe25hbWU6ZSxkaXJlY3RpdmVzOnQsdHlwZXM6bn0pPT5wKFsiZXh0ZW5kIHVuaW9uIixlLHAodCwiICIpLE8oIj0gIixwKG4sIiB8ICIpKV0sIiAiKX0sRW51bVR5cGVFeHRlbnNpb246e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dCx2YWx1ZXM6bn0pPT5wKFsiZXh0ZW5kIGVudW0iLGUscCh0LCIgIikscmUobildLCIgIil9LElucHV0T2JqZWN0VHlwZUV4dGVuc2lvbjp7bGVhdmU6KHtuYW1lOmUsZGlyZWN0aXZlczp0LGZpZWxkczpufSk9PnAoWyJleHRlbmQgaW5wdXQiLGUscCh0LCIgIikscmUobildLCIgIil9fTtmdW5jdGlvbiBwKGUsdD0iIil7dmFyIG47cmV0dXJuKG49ZT09bnVsbD92b2lkIDA6ZS5maWx0ZXIoaT0+aSkuam9pbih0KSkhPT1udWxsJiZuIT09dm9pZCAwP246IiJ9ZnVuY3Rpb24gcmUoZSl7cmV0dXJuIE8oYHsKYCxDZShwKGUsYApgKSksYAp9YCl9ZnVuY3Rpb24gTyhlLHQsbj0iIil7cmV0dXJuIHQhPW51bGwmJnQhPT0iIj9lK3QrbjoiIn1mdW5jdGlvbiBDZShlKXtyZXR1cm4gTygiICAiLGUucmVwbGFjZSgvXG4vZyxgCiAgYCkpfWZ1bmN0aW9uIE90KGUpe3ZhciB0O3JldHVybih0PWU9PW51bGw/dm9pZCAwOmUuc29tZShuPT5uLmluY2x1ZGVzKGAKYCkpKSE9PW51bGwmJnQhPT12b2lkIDA/dDohMX1jb25zdCB3dD1lPT57dmFyIGkscjtsZXQgdDtjb25zdCBuPWUuZGVmaW5pdGlvbnMuZmlsdGVyKHM9PnMua2luZD09PSJPcGVyYXRpb25EZWZpbml0aW9uIik7cmV0dXJuIG4ubGVuZ3RoPT09MSYmKHQ9KHI9KGk9blswXSk9PW51bGw/dm9pZCAwOmkubmFtZSk9PW51bGw/dm9pZCAwOnIudmFsdWUpLHR9LFllPWU9PntpZih0eXBlb2YgZT09InN0cmluZyIpe2xldCBuO3RyeXtjb25zdCBpPUl0KGUpO249d3QoaSl9Y2F0Y2goaSl7fXJldHVybntxdWVyeTplLG9wZXJhdGlvbk5hbWU6bn19Y29uc3QgdD13dChlKTtyZXR1cm57cXVlcnk6Qm4oZSksb3BlcmF0aW9uTmFtZTp0fX07Y2xhc3MgZGUgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0LG4pe2NvbnN0IGk9YCR7ZGUuZXh0cmFjdE1lc3NhZ2UodCl9OiAke0pTT04uc3RyaW5naWZ5KHtyZXNwb25zZTp0LHJlcXVlc3Q6bn0pfWA7c3VwZXIoaSksT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsZGUucHJvdG90eXBlKSx0aGlzLnJlc3BvbnNlPXQsdGhpcy5yZXF1ZXN0PW4sdHlwZW9mIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlPT0iZnVuY3Rpb24iJiZFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLGRlKX1zdGF0aWMgZXh0cmFjdE1lc3NhZ2UodCl7dmFyIG4saSxyO3JldHVybihyPShpPShuPXQuZXJyb3JzKT09bnVsbD92b2lkIDA6blswXSk9PW51bGw/dm9pZCAwOmkubWVzc2FnZSkhPW51bGw/cjpgR3JhcGhRTCBFcnJvciAoQ29kZTogJHt0LnN0YXR1c30pYH19dmFyIHFuPXR5cGVvZiBnbG9iYWxUaGlzIT0idW5kZWZpbmVkIj9nbG9iYWxUaGlzOnR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiP3dpbmRvdzp0eXBlb2YgZ2xvYmFsIT0idW5kZWZpbmVkIj9nbG9iYWw6dHlwZW9mIHNlbGYhPSJ1bmRlZmluZWQiP3NlbGY6e307ZnVuY3Rpb24gRHQoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsImRlZmF1bHQiKT9lLmRlZmF1bHQ6ZX12YXIgSmU9e2V4cG9ydHM6e319OyhmdW5jdGlvbihlLHQpe3ZhciBuPXR5cGVvZiBzZWxmIT0idW5kZWZpbmVkIj9zZWxmOnFuLGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKCl7dGhpcy5mZXRjaD0hMSx0aGlzLkRPTUV4Y2VwdGlvbj1uLkRPTUV4Y2VwdGlvbn1yZXR1cm4gcy5wcm90b3R5cGU9bixuZXcgc30oKTsoZnVuY3Rpb24ocyl7KGZ1bmN0aW9uKG8pe3ZhciBjPXtzZWFyY2hQYXJhbXM6IlVSTFNlYXJjaFBhcmFtcyJpbiBzLGl0ZXJhYmxlOiJTeW1ib2wiaW4gcyYmIml0ZXJhdG9yImluIFN5bWJvbCxibG9iOiJGaWxlUmVhZGVyImluIHMmJiJCbG9iImluIHMmJmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgQmxvYiwhMH1jYXRjaChhKXtyZXR1cm4hMX19KCksZm9ybURhdGE6IkZvcm1EYXRhImluIHMsYXJyYXlCdWZmZXI6IkFycmF5QnVmZmVyImluIHN9O2Z1bmN0aW9uIGgoYSl7cmV0dXJuIGEmJkRhdGFWaWV3LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpfWlmKGMuYXJyYXlCdWZmZXIpdmFyIGQ9WyJbb2JqZWN0IEludDhBcnJheV0iLCJbb2JqZWN0IFVpbnQ4QXJyYXldIiwiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLCJbb2JqZWN0IEludDE2QXJyYXldIiwiW29iamVjdCBVaW50MTZBcnJheV0iLCJbb2JqZWN0IEludDMyQXJyYXldIiwiW29iamVjdCBVaW50MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLCJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXSx1PUFycmF5QnVmZmVyLmlzVmlld3x8ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmQuaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSkpPi0xfTtmdW5jdGlvbiB5KGEpe2lmKHR5cGVvZiBhIT0ic3RyaW5nIiYmKGE9U3RyaW5nKGEpKSwvW15hLXowLTlcLSMkJSYnKisuXl9gfH5dL2kudGVzdChhKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGNoYXJhY3RlciBpbiBoZWFkZXIgZmllbGQgbmFtZSIpO3JldHVybiBhLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gZyhhKXtyZXR1cm4gdHlwZW9mIGEhPSJzdHJpbmciJiYoYT1TdHJpbmcoYSkpLGF9ZnVuY3Rpb24gYihhKXt2YXIgZj17bmV4dDpmdW5jdGlvbigpe3ZhciBfPWEuc2hpZnQoKTtyZXR1cm57ZG9uZTpfPT09dm9pZCAwLHZhbHVlOl99fX07cmV0dXJuIGMuaXRlcmFibGUmJihmW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gZn0pLGZ9ZnVuY3Rpb24gbShhKXt0aGlzLm1hcD17fSxhIGluc3RhbmNlb2YgbT9hLmZvckVhY2goZnVuY3Rpb24oZixfKXt0aGlzLmFwcGVuZChfLGYpfSx0aGlzKTpBcnJheS5pc0FycmF5KGEpP2EuZm9yRWFjaChmdW5jdGlvbihmKXt0aGlzLmFwcGVuZChmWzBdLGZbMV0pfSx0aGlzKTphJiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhhKS5mb3JFYWNoKGZ1bmN0aW9uKGYpe3RoaXMuYXBwZW5kKGYsYVtmXSl9LHRoaXMpfW0ucHJvdG90eXBlLmFwcGVuZD1mdW5jdGlvbihhLGYpe2E9eShhKSxmPWcoZik7dmFyIF89dGhpcy5tYXBbYV07dGhpcy5tYXBbYV09Xz9fKyIsICIrZjpmfSxtLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24oYSl7ZGVsZXRlIHRoaXMubWFwW3koYSldfSxtLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9eShhKSx0aGlzLmhhcyhhKT90aGlzLm1hcFthXTpudWxsfSxtLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KHkoYSkpfSxtLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oYSxmKXt0aGlzLm1hcFt5KGEpXT1nKGYpfSxtLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKGEsZil7Zm9yKHZhciBfIGluIHRoaXMubWFwKXRoaXMubWFwLmhhc093blByb3BlcnR5KF8pJiZhLmNhbGwoZix0aGlzLm1hcFtfXSxfLHRoaXMpfSxtLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7dmFyIGE9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihmLF8pe2EucHVzaChfKX0pLGIoYSl9LG0ucHJvdG90eXBlLnZhbHVlcz1mdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZil7YS5wdXNoKGYpfSksYihhKX0sbS5wcm90b3R5cGUuZW50cmllcz1mdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZixfKXthLnB1c2goW18sZl0pfSksYihhKX0sYy5pdGVyYWJsZSYmKG0ucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl09bS5wcm90b3R5cGUuZW50cmllcyk7ZnVuY3Rpb24gTihhKXtpZihhLmJvZHlVc2VkKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKCJBbHJlYWR5IHJlYWQiKSk7YS5ib2R5VXNlZD0hMH1mdW5jdGlvbiBSKGEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihmLF8pe2Eub25sb2FkPWZ1bmN0aW9uKCl7ZihhLnJlc3VsdCl9LGEub25lcnJvcj1mdW5jdGlvbigpe18oYS5lcnJvcil9fSl9ZnVuY3Rpb24gUChhKXt2YXIgZj1uZXcgRmlsZVJlYWRlcixfPVIoZik7cmV0dXJuIGYucmVhZEFzQXJyYXlCdWZmZXIoYSksX31mdW5jdGlvbiBxKGEpe3ZhciBmPW5ldyBGaWxlUmVhZGVyLF89UihmKTtyZXR1cm4gZi5yZWFkQXNUZXh0KGEpLF99ZnVuY3Rpb24gdihhKXtmb3IodmFyIGY9bmV3IFVpbnQ4QXJyYXkoYSksXz1uZXcgQXJyYXkoZi5sZW5ndGgpLFM9MDtTPGYubGVuZ3RoO1MrKylfW1NdPVN0cmluZy5mcm9tQ2hhckNvZGUoZltTXSk7cmV0dXJuIF8uam9pbigiIil9ZnVuY3Rpb24gRShhKXtpZihhLnNsaWNlKXJldHVybiBhLnNsaWNlKDApO3ZhciBmPW5ldyBVaW50OEFycmF5KGEuYnl0ZUxlbmd0aCk7cmV0dXJuIGYuc2V0KG5ldyBVaW50OEFycmF5KGEpKSxmLmJ1ZmZlcn1mdW5jdGlvbiB3KCl7cmV0dXJuIHRoaXMuYm9keVVzZWQ9ITEsdGhpcy5faW5pdEJvZHk9ZnVuY3Rpb24oYSl7dGhpcy5fYm9keUluaXQ9YSxhP3R5cGVvZiBhPT0ic3RyaW5nIj90aGlzLl9ib2R5VGV4dD1hOmMuYmxvYiYmQmxvYi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihhKT90aGlzLl9ib2R5QmxvYj1hOmMuZm9ybURhdGEmJkZvcm1EYXRhLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpP3RoaXMuX2JvZHlGb3JtRGF0YT1hOmMuc2VhcmNoUGFyYW1zJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYSk/dGhpcy5fYm9keVRleHQ9YS50b1N0cmluZygpOmMuYXJyYXlCdWZmZXImJmMuYmxvYiYmaChhKT8odGhpcy5fYm9keUFycmF5QnVmZmVyPUUoYS5idWZmZXIpLHRoaXMuX2JvZHlJbml0PW5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSk6Yy5hcnJheUJ1ZmZlciYmKEFycmF5QnVmZmVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpfHx1KGEpKT90aGlzLl9ib2R5QXJyYXlCdWZmZXI9RShhKTp0aGlzLl9ib2R5VGV4dD1hPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKTp0aGlzLl9ib2R5VGV4dD0iIix0aGlzLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKXx8KHR5cGVvZiBhPT0ic3RyaW5nIj90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiKTp0aGlzLl9ib2R5QmxvYiYmdGhpcy5fYm9keUJsb2IudHlwZT90aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLHRoaXMuX2JvZHlCbG9iLnR5cGUpOmMuc2VhcmNoUGFyYW1zJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYSkmJnRoaXMuaGVhZGVycy5zZXQoImNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IikpfSxjLmJsb2ImJih0aGlzLmJsb2I9ZnVuY3Rpb24oKXt2YXIgYT1OKHRoaXMpO2lmKGEpcmV0dXJuIGE7aWYodGhpcy5fYm9keUJsb2IpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIGJsb2IiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5VGV4dF0pKX0sdGhpcy5hcnJheUJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ib2R5QXJyYXlCdWZmZXI/Tih0aGlzKXx8UHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcik6dGhpcy5ibG9iKCkudGhlbihQKX0pLHRoaXMudGV4dD1mdW5jdGlvbigpe3ZhciBhPU4odGhpcyk7aWYoYSlyZXR1cm4gYTtpZih0aGlzLl9ib2R5QmxvYilyZXR1cm4gcSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUodih0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKTtpZih0aGlzLl9ib2R5Rm9ybURhdGEpdGhyb3cgbmV3IEVycm9yKCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIHRleHQiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2JvZHlUZXh0KX0sYy5mb3JtRGF0YSYmKHRoaXMuZm9ybURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0KCkudGhlbih4KX0pLHRoaXMuanNvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKEpTT04ucGFyc2UpfSx0aGlzfXZhciBrPVsiREVMRVRFIiwiR0VUIiwiSEVBRCIsIk9QVElPTlMiLCJQT1NUIiwiUFVUIl07ZnVuY3Rpb24gTChhKXt2YXIgZj1hLnRvVXBwZXJDYXNlKCk7cmV0dXJuIGsuaW5kZXhPZihmKT4tMT9mOmF9ZnVuY3Rpb24gSShhLGYpe2Y9Znx8e307dmFyIF89Zi5ib2R5O2lmKGEgaW5zdGFuY2VvZiBJKXtpZihhLmJvZHlVc2VkKXRocm93IG5ldyBUeXBlRXJyb3IoIkFscmVhZHkgcmVhZCIpO3RoaXMudXJsPWEudXJsLHRoaXMuY3JlZGVudGlhbHM9YS5jcmVkZW50aWFscyxmLmhlYWRlcnN8fCh0aGlzLmhlYWRlcnM9bmV3IG0oYS5oZWFkZXJzKSksdGhpcy5tZXRob2Q9YS5tZXRob2QsdGhpcy5tb2RlPWEubW9kZSx0aGlzLnNpZ25hbD1hLnNpZ25hbCwhXyYmYS5fYm9keUluaXQhPW51bGwmJihfPWEuX2JvZHlJbml0LGEuYm9keVVzZWQ9ITApfWVsc2UgdGhpcy51cmw9U3RyaW5nKGEpO2lmKHRoaXMuY3JlZGVudGlhbHM9Zi5jcmVkZW50aWFsc3x8dGhpcy5jcmVkZW50aWFsc3x8InNhbWUtb3JpZ2luIiwoZi5oZWFkZXJzfHwhdGhpcy5oZWFkZXJzKSYmKHRoaXMuaGVhZGVycz1uZXcgbShmLmhlYWRlcnMpKSx0aGlzLm1ldGhvZD1MKGYubWV0aG9kfHx0aGlzLm1ldGhvZHx8IkdFVCIpLHRoaXMubW9kZT1mLm1vZGV8fHRoaXMubW9kZXx8bnVsbCx0aGlzLnNpZ25hbD1mLnNpZ25hbHx8dGhpcy5zaWduYWwsdGhpcy5yZWZlcnJlcj1udWxsLCh0aGlzLm1ldGhvZD09PSJHRVQifHx0aGlzLm1ldGhvZD09PSJIRUFEIikmJl8pdGhyb3cgbmV3IFR5cGVFcnJvcigiQm9keSBub3QgYWxsb3dlZCBmb3IgR0VUIG9yIEhFQUQgcmVxdWVzdHMiKTt0aGlzLl9pbml0Qm9keShfKX1JLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzLHtib2R5OnRoaXMuX2JvZHlJbml0fSl9O2Z1bmN0aW9uIHgoYSl7dmFyIGY9bmV3IEZvcm1EYXRhO3JldHVybiBhLnRyaW0oKS5zcGxpdCgiJiIpLmZvckVhY2goZnVuY3Rpb24oXyl7aWYoXyl7dmFyIFM9Xy5zcGxpdCgiPSIpLEM9Uy5zaGlmdCgpLnJlcGxhY2UoL1wrL2csIiAiKSxBPVMuam9pbigiPSIpLnJlcGxhY2UoL1wrL2csIiAiKTtmLmFwcGVuZChkZWNvZGVVUklDb21wb25lbnQoQyksZGVjb2RlVVJJQ29tcG9uZW50KEEpKX19KSxmfWZ1bmN0aW9uIHooYSl7dmFyIGY9bmV3IG0sXz1hLnJlcGxhY2UoL1xyP1xuW1x0IF0rL2csIiAiKTtyZXR1cm4gXy5zcGxpdCgvXHI/XG4vKS5mb3JFYWNoKGZ1bmN0aW9uKFMpe3ZhciBDPVMuc3BsaXQoIjoiKSxBPUMuc2hpZnQoKS50cmltKCk7aWYoQSl7dmFyIEs9Qy5qb2luKCI6IikudHJpbSgpO2YuYXBwZW5kKEEsSyl9fSksZn13LmNhbGwoSS5wcm90b3R5cGUpO2Z1bmN0aW9uIFYoYSxmKXtmfHwoZj17fSksdGhpcy50eXBlPSJkZWZhdWx0Iix0aGlzLnN0YXR1cz1mLnN0YXR1cz09PXZvaWQgMD8yMDA6Zi5zdGF0dXMsdGhpcy5vaz10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDAsdGhpcy5zdGF0dXNUZXh0PSJzdGF0dXNUZXh0ImluIGY/Zi5zdGF0dXNUZXh0OiJPSyIsdGhpcy5oZWFkZXJzPW5ldyBtKGYuaGVhZGVycyksdGhpcy51cmw9Zi51cmx8fCIiLHRoaXMuX2luaXRCb2R5KGEpfXcuY2FsbChWLnByb3RvdHlwZSksVi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFYodGhpcy5fYm9keUluaXQse3N0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0OnRoaXMuc3RhdHVzVGV4dCxoZWFkZXJzOm5ldyBtKHRoaXMuaGVhZGVycyksdXJsOnRoaXMudXJsfSl9LFYuZXJyb3I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgVihudWxsLHtzdGF0dXM6MCxzdGF0dXNUZXh0OiIifSk7cmV0dXJuIGEudHlwZT0iZXJyb3IiLGF9O3ZhciBIPVszMDEsMzAyLDMwMywzMDcsMzA4XTtWLnJlZGlyZWN0PWZ1bmN0aW9uKGEsZil7aWYoSC5pbmRleE9mKGYpPT09LTEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgc3RhdHVzIGNvZGUiKTtyZXR1cm4gbmV3IFYobnVsbCx7c3RhdHVzOmYsaGVhZGVyczp7bG9jYXRpb246YX19KX0sby5ET01FeGNlcHRpb249cy5ET01FeGNlcHRpb247dHJ5e25ldyBvLkRPTUV4Y2VwdGlvbn1jYXRjaChhKXtvLkRPTUV4Y2VwdGlvbj1mdW5jdGlvbihmLF8pe3RoaXMubWVzc2FnZT1mLHRoaXMubmFtZT1fO3ZhciBTPUVycm9yKGYpO3RoaXMuc3RhY2s9Uy5zdGFja30sby5ET01FeGNlcHRpb24ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxvLkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3I9by5ET01FeGNlcHRpb259ZnVuY3Rpb24gWChhLGYpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihfLFMpe3ZhciBDPW5ldyBJKGEsZik7aWYoQy5zaWduYWwmJkMuc2lnbmFsLmFib3J0ZWQpcmV0dXJuIFMobmV3IG8uRE9NRXhjZXB0aW9uKCJBYm9ydGVkIiwiQWJvcnRFcnJvciIpKTt2YXIgQT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZnVuY3Rpb24gSygpe0EuYWJvcnQoKX1BLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBqPXtzdGF0dXM6QS5zdGF0dXMsc3RhdHVzVGV4dDpBLnN0YXR1c1RleHQsaGVhZGVyczp6KEEuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCl8fCIiKX07ai51cmw9InJlc3BvbnNlVVJMImluIEE/QS5yZXNwb25zZVVSTDpqLmhlYWRlcnMuZ2V0KCJYLVJlcXVlc3QtVVJMIik7dmFyIFc9InJlc3BvbnNlImluIEE/QS5yZXNwb25zZTpBLnJlc3BvbnNlVGV4dDtfKG5ldyBWKFcsaikpfSxBLm9uZXJyb3I9ZnVuY3Rpb24oKXtTKG5ldyBUeXBlRXJyb3IoIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWQiKSl9LEEub250aW1lb3V0PWZ1bmN0aW9uKCl7UyhuZXcgVHlwZUVycm9yKCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSxBLm9uYWJvcnQ9ZnVuY3Rpb24oKXtTKG5ldyBvLkRPTUV4Y2VwdGlvbigiQWJvcnRlZCIsIkFib3J0RXJyb3IiKSl9LEEub3BlbihDLm1ldGhvZCxDLnVybCwhMCksQy5jcmVkZW50aWFscz09PSJpbmNsdWRlIj9BLndpdGhDcmVkZW50aWFscz0hMDpDLmNyZWRlbnRpYWxzPT09Im9taXQiJiYoQS53aXRoQ3JlZGVudGlhbHM9ITEpLCJyZXNwb25zZVR5cGUiaW4gQSYmYy5ibG9iJiYoQS5yZXNwb25zZVR5cGU9ImJsb2IiKSxDLmhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihqLFcpe0Euc2V0UmVxdWVzdEhlYWRlcihXLGopfSksQy5zaWduYWwmJihDLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSyksQS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtBLnJlYWR5U3RhdGU9PT00JiZDLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsSyl9KSxBLnNlbmQodHlwZW9mIEMuX2JvZHlJbml0PT0idW5kZWZpbmVkIj9udWxsOkMuX2JvZHlJbml0KX0pfXJldHVybiBYLnBvbHlmaWxsPSEwLHMuZmV0Y2h8fChzLmZldGNoPVgscy5IZWFkZXJzPW0scy5SZXF1ZXN0PUkscy5SZXNwb25zZT1WKSxvLkhlYWRlcnM9bSxvLlJlcXVlc3Q9SSxvLlJlc3BvbnNlPVYsby5mZXRjaD1YLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxvfSkoe30pfSkoaSksaS5mZXRjaC5wb255ZmlsbD0hMCxkZWxldGUgaS5mZXRjaC5wb2x5ZmlsbDt2YXIgcj1pO3Q9ci5mZXRjaCx0LmRlZmF1bHQ9ci5mZXRjaCx0LmZldGNoPXIuZmV0Y2gsdC5IZWFkZXJzPXIuSGVhZGVycyx0LlJlcXVlc3Q9ci5SZXF1ZXN0LHQuUmVzcG9uc2U9ci5SZXNwb25zZSxlLmV4cG9ydHM9dH0pKEplLEplLmV4cG9ydHMpO3ZhciBRZT1KZS5leHBvcnRzLFJlPUR0KFFlKSxqbj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxkZWZhdWx0OlJlfSk7Y29uc3QgcGU9ZT0+e2xldCB0PXt9O3JldHVybiBlJiYodHlwZW9mIEhlYWRlcnMhPSJ1bmRlZmluZWQiJiZlIGluc3RhbmNlb2YgSGVhZGVyc3x8am4mJlFlLkhlYWRlcnMmJmUgaW5zdGFuY2VvZiBRZS5IZWFkZXJzP3Q9QihlKTpBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaCgoW24saV0pPT57biYmaSE9PXZvaWQgMCYmKHRbbl09aSl9KTp0PWUpLHR9LGt0PWU9PmUucmVwbGFjZSgvKFtccyxdfCNbXlxuXHJdKykrL2csIiAiKS50cmltKCksR249ZT0+e2lmKCFBcnJheS5pc0FycmF5KGUucXVlcnkpKXtjb25zdCBpPWUscj1bYHF1ZXJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGt0KGkucXVlcnkpKX1gXTtyZXR1cm4gZS52YXJpYWJsZXMmJnIucHVzaChgdmFyaWFibGVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGkuanNvblNlcmlhbGl6ZXIuc3RyaW5naWZ5KGkudmFyaWFibGVzKSl9YCksaS5vcGVyYXRpb25OYW1lJiZyLnB1c2goYG9wZXJhdGlvbk5hbWU9JHtlbmNvZGVVUklDb21wb25lbnQoaS5vcGVyYXRpb25OYW1lKX1gKSxyLmpvaW4oIiYiKX1pZih0eXBlb2YgZS52YXJpYWJsZXMhPSJ1bmRlZmluZWQiJiYhQXJyYXkuaXNBcnJheShlLnZhcmlhYmxlcykpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY3JlYXRlIHF1ZXJ5IHdpdGggZ2l2ZW4gdmFyaWFibGUgdHlwZSwgYXJyYXkgZXhwZWN0ZWQiKTtjb25zdCB0PWUsbj1lLnF1ZXJ5LnJlZHVjZSgoaSxyLHMpPT4oaS5wdXNoKHtxdWVyeTprdChyKSx2YXJpYWJsZXM6dC52YXJpYWJsZXM/dC5qc29uU2VyaWFsaXplci5zdHJpbmdpZnkodC52YXJpYWJsZXNbc10pOnZvaWQgMH0pLGkpLFtdKTtyZXR1cm5gcXVlcnk9JHtlbmNvZGVVUklDb21wb25lbnQodC5qc29uU2VyaWFsaXplci5zdHJpbmdpZnkobikpfWB9LHpuPWU9PnQ9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe3ZhciBOO2NvbnN0e3VybDpuLHF1ZXJ5OmksdmFyaWFibGVzOnIsb3BlcmF0aW9uTmFtZTpzLGZldGNoOm8sZmV0Y2hPcHRpb25zOmMsbWlkZGxld2FyZTpofT10LGQ9RCh7fSx0LmhlYWRlcnMpO2xldCB1PSIiLHk7ZT09PSJQT1NUIj8oeT1ZbihpLHIscyxjLmpzb25TZXJpYWxpemVyKSx0eXBlb2YgeT09InN0cmluZyImJihkWyJDb250ZW50LVR5cGUiXT0iYXBwbGljYXRpb24vanNvbiIpKTp1PUduKHtxdWVyeTppLHZhcmlhYmxlczpyLG9wZXJhdGlvbk5hbWU6cyxqc29uU2VyaWFsaXplcjooTj1jLmpzb25TZXJpYWxpemVyKSE9bnVsbD9OOkZ9KTtjb25zdCBnPUQoe21ldGhvZDplLGhlYWRlcnM6ZCxib2R5Onl9LGMpO2xldCBiPW4sbT1nO2lmKGgpe2NvbnN0IFI9eWllbGQgUHJvbWlzZS5yZXNvbHZlKGgoQmUoRCh7fSxnKSx7dXJsOm4sb3BlcmF0aW9uTmFtZTpzLHZhcmlhYmxlczpyfSkpKSx7dXJsOnF9PVIsdj1nZShSLFsidXJsIl0pO2I9cSxtPXZ9cmV0dXJuIHUmJihiPWAke2J9PyR7dX1gKSx5aWVsZCBvKGIsbSl9KTtjbGFzcyBIbntjb25zdHJ1Y3Rvcih0LG49e30pe3RoaXMudXJsPXQsdGhpcy5yZXF1ZXN0Q29uZmlnPW4sdGhpcy5yYXdSZXF1ZXN0PSguLi5pKT0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3RbcixzLG9dPWksYz1PZShyLHMsbyksUj10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6aCxmZXRjaDpkPVJlLG1ldGhvZDp1PSJQT1NUIixyZXF1ZXN0TWlkZGxld2FyZTp5LHJlc3BvbnNlTWlkZGxld2FyZTpnfT1SLGI9Z2UoUixbImhlYWRlcnMiLCJmZXRjaCIsIm1ldGhvZCIsInJlcXVlc3RNaWRkbGV3YXJlIiwicmVzcG9uc2VNaWRkbGV3YXJlIl0pLHt1cmw6bX09dGhpcztjLnNpZ25hbCE9PXZvaWQgMCYmKGIuc2lnbmFsPWMuc2lnbmFsKTtjb25zdHtvcGVyYXRpb25OYW1lOk59PVllKGMucXVlcnkpO3JldHVybiBYZSh7dXJsOm0scXVlcnk6Yy5xdWVyeSx2YXJpYWJsZXM6Yy52YXJpYWJsZXMsaGVhZGVyczpEKEQoe30scGUoV2UoaCkpKSxwZShjLnJlcXVlc3RIZWFkZXJzKSksb3BlcmF0aW9uTmFtZTpOLGZldGNoOmQsbWV0aG9kOnUsZmV0Y2hPcHRpb25zOmIsbWlkZGxld2FyZTp5fSkudGhlbihQPT4oZyYmZyhQKSxQKSkuY2F0Y2goUD0+e3Rocm93IGcmJmcoUCksUH0pfSl9cmVxdWVzdCh0LC4uLm4pe3JldHVybiBKKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdFtpLHJdPW4scz1lZSh0LGksciksTj10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6byxmZXRjaDpjPVJlLG1ldGhvZDpoPSJQT1NUIixyZXF1ZXN0TWlkZGxld2FyZTpkLHJlc3BvbnNlTWlkZGxld2FyZTp1fT1OLHk9Z2UoTixbImhlYWRlcnMiLCJmZXRjaCIsIm1ldGhvZCIsInJlcXVlc3RNaWRkbGV3YXJlIiwicmVzcG9uc2VNaWRkbGV3YXJlIl0pLHt1cmw6Z309dGhpcztzLnNpZ25hbCE9PXZvaWQgMCYmKHkuc2lnbmFsPXMuc2lnbmFsKTtjb25zdHtxdWVyeTpiLG9wZXJhdGlvbk5hbWU6bX09WWUocy5kb2N1bWVudCk7cmV0dXJuIFhlKHt1cmw6ZyxxdWVyeTpiLHZhcmlhYmxlczpzLnZhcmlhYmxlcyxoZWFkZXJzOkQoRCh7fSxwZShXZShvKSkpLHBlKHMucmVxdWVzdEhlYWRlcnMpKSxvcGVyYXRpb25OYW1lOm0sZmV0Y2g6YyxtZXRob2Q6aCxmZXRjaE9wdGlvbnM6eSxtaWRkbGV3YXJlOmR9KS50aGVuKFI9Pih1JiZ1KFIpLFIuZGF0YSkpLmNhdGNoKFI9Pnt0aHJvdyB1JiZ1KFIpLFJ9KX0pfWJhdGNoUmVxdWVzdHModCxuKXt2YXIgZDtjb25zdCBpPVVlKHQsbiksaD10aGlzLnJlcXVlc3RDb25maWcse2hlYWRlcnM6cn09aCxzPWdlKGgsWyJoZWFkZXJzIl0pO2kuc2lnbmFsIT09dm9pZCAwJiYocy5zaWduYWw9aS5zaWduYWwpO2NvbnN0IG89aS5kb2N1bWVudHMubWFwKCh7ZG9jdW1lbnQ6dX0pPT5ZZSh1KS5xdWVyeSksYz1pLmRvY3VtZW50cy5tYXAoKHt2YXJpYWJsZXM6dX0pPT51KTtyZXR1cm4gWGUoe3VybDp0aGlzLnVybCxxdWVyeTpvLHZhcmlhYmxlczpjLGhlYWRlcnM6RChEKHt9LHBlKFdlKHIpKSkscGUoaS5yZXF1ZXN0SGVhZGVycykpLG9wZXJhdGlvbk5hbWU6dm9pZCAwLGZldGNoOihkPXRoaXMucmVxdWVzdENvbmZpZy5mZXRjaCkhPW51bGw/ZDpSZSxtZXRob2Q6dGhpcy5yZXF1ZXN0Q29uZmlnLm1ldGhvZHx8IlBPU1QiLGZldGNoT3B0aW9uczpzLG1pZGRsZXdhcmU6dGhpcy5yZXF1ZXN0Q29uZmlnLnJlcXVlc3RNaWRkbGV3YXJlfSkudGhlbih1PT4odGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSYmdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSh1KSx1LmRhdGEpKS5jYXRjaCh1PT57dGhyb3cgdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSYmdGhpcy5yZXF1ZXN0Q29uZmlnLnJlc3BvbnNlTWlkZGxld2FyZSh1KSx1fSl9c2V0SGVhZGVycyh0KXtyZXR1cm4gdGhpcy5yZXF1ZXN0Q29uZmlnLmhlYWRlcnM9dCx0aGlzfXNldEhlYWRlcih0LG4pe2NvbnN0e2hlYWRlcnM6aX09dGhpcy5yZXF1ZXN0Q29uZmlnO3JldHVybiBpP2lbdF09bjp0aGlzLnJlcXVlc3RDb25maWcuaGVhZGVycz17W3RdOm59LHRoaXN9c2V0RW5kcG9pbnQodCl7cmV0dXJuIHRoaXMudXJsPXQsdGhpc319Y29uc3QgWGU9ZT0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7dmFyIHUseTtjb25zdHtxdWVyeTp0LHZhcmlhYmxlczpuLGZldGNoT3B0aW9uczppfT1lLHI9em4oJCgodT1lLm1ldGhvZCkhPW51bGw/dToicG9zdCIpKSxzPUFycmF5LmlzQXJyYXkoZS5xdWVyeSksbz15aWVsZCByKGUpLGM9eWllbGQgSm4obywoeT1pLmpzb25TZXJpYWxpemVyKSE9bnVsbD95OkYpLGg9QXJyYXkuaXNBcnJheShjKT8hYy5zb21lKCh7ZGF0YTpifSk9PiFiKTohIWMuZGF0YSxkPUFycmF5LmlzQXJyYXkoYyl8fCFjLmVycm9yc3x8QXJyYXkuaXNBcnJheShjLmVycm9ycykmJiFjLmVycm9ycy5sZW5ndGh8fGkuZXJyb3JQb2xpY3k9PT0iYWxsInx8aS5lcnJvclBvbGljeT09PSJpZ25vcmUiO2lmKG8ub2smJmQmJmgpe2NvbnN0IGc9KEFycmF5LmlzQXJyYXkoYyksYykse2Vycm9yczpifT1nLG09Z2UoZyxbImVycm9ycyJdKSxOPWkuZXJyb3JQb2xpY3k9PT0iaWdub3JlIj9tOmM7cmV0dXJuIEJlKEQoe30scz97ZGF0YTpOfTpOKSx7aGVhZGVyczpvLmhlYWRlcnMsc3RhdHVzOm8uc3RhdHVzfSl9ZWxzZXtjb25zdCBiPXR5cGVvZiBjPT0ic3RyaW5nIj97ZXJyb3I6Y306Yzt0aHJvdyBuZXcgZGUoQmUoRCh7fSxiKSx7c3RhdHVzOm8uc3RhdHVzLGhlYWRlcnM6by5oZWFkZXJzfSkse3F1ZXJ5OnQsdmFyaWFibGVzOm59KX19KSxZbj0oZSx0LG4saSk9Pntjb25zdCByPWkhPW51bGw/aTpGO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiByLnN0cmluZ2lmeSh7cXVlcnk6ZSx2YXJpYWJsZXM6dCxvcGVyYXRpb25OYW1lOm59KTtpZih0eXBlb2YgdCE9InVuZGVmaW5lZCImJiFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNyZWF0ZSByZXF1ZXN0IGJvZHkgd2l0aCBnaXZlbiB2YXJpYWJsZSB0eXBlLCBhcnJheSBleHBlY3RlZCIpO2NvbnN0IHM9ZS5yZWR1Y2UoKG8sYyxoKT0+KG8ucHVzaCh7cXVlcnk6Yyx2YXJpYWJsZXM6dD90W2hdOnZvaWQgMH0pLG8pLFtdKTtyZXR1cm4gci5zdHJpbmdpZnkocyl9LEpuPShlLHQpPT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtsZXQgbjtyZXR1cm4gZS5oZWFkZXJzLmZvckVhY2goKGkscik9PntyLnRvTG93ZXJDYXNlKCk9PT0iY29udGVudC10eXBlIiYmKG49aSl9KSxuJiYobi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2pzb24iKXx8bi50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoImFwcGxpY2F0aW9uL2dyYXBocWwranNvbiIpfHxuLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgiYXBwbGljYXRpb24vZ3JhcGhxbC1yZXNwb25zZStqc29uIikpP3QucGFyc2UoeWllbGQgZS50ZXh0KCkpOmUudGV4dCgpfSksV2U9ZT0+dHlwZW9mIGU9PSJmdW5jdGlvbiI/ZSgpOmU7dmFyIFplPXtleHBvcnRzOnt9fTsoZnVuY3Rpb24oZSx0KXt0PWUuZXhwb3J0cz1uLHQuZ2V0U2VyaWFsaXplPWk7ZnVuY3Rpb24gbihyLHMsbyxjKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkocixpKHMsYyksbyl9ZnVuY3Rpb24gaShyLHMpe3ZhciBvPVtdLGM9W107cmV0dXJuIHM9PW51bGwmJihzPWZ1bmN0aW9uKGgsZCl7cmV0dXJuIG9bMF09PT1kPyJbQ2lyY3VsYXIgfl0iOiJbQ2lyY3VsYXIgfi4iK2Muc2xpY2UoMCxvLmluZGV4T2YoZCkpLmpvaW4oIi4iKSsiXSJ9KSxmdW5jdGlvbihoLGQpe2lmKG8ubGVuZ3RoPjApe3ZhciB1PW8uaW5kZXhPZih0aGlzKTt+dT9vLnNwbGljZSh1KzEpOm8ucHVzaCh0aGlzKSx+dT9jLnNwbGljZSh1LDEvMCxoKTpjLnB1c2goaCksfm8uaW5kZXhPZihkKSYmKGQ9cy5jYWxsKHRoaXMsaCxkKSl9ZWxzZSBvLnB1c2goZCk7cmV0dXJuIHI9PW51bGw/ZDpyLmNhbGwodGhpcyxoLGQpfX19KShaZSxaZS5leHBvcnRzKTt2YXIgUW49WmUuZXhwb3J0cyxtZT1EdChRbik7Y29uc3QgQ3Q9MWUzKjE1O3ZhciBQZT1mdW5jdGlvbigpe3JldHVybiBQZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIG4saT0xLHI9YXJndW1lbnRzLmxlbmd0aDtpPHI7aSsrKXtuPWFyZ3VtZW50c1tpXTtmb3IodmFyIHMgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixzKSYmKHRbc109bltzXSl9cmV0dXJuIHR9LFBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dHlwZW9mIFN1cHByZXNzZWRFcnJvcj09ImZ1bmN0aW9uIiYmU3VwcHJlc3NlZEVycm9yO3ZhciBMZT1uZXcgTWFwLEtlPW5ldyBNYXAsUnQ9ITAsRmU9ITE7ZnVuY3Rpb24gUHQoZSl7cmV0dXJuIGUucmVwbGFjZSgvW1xzLF0rL2csIiAiKS50cmltKCl9ZnVuY3Rpb24gWG4oZSl7cmV0dXJuIFB0KGUuc291cmNlLmJvZHkuc3Vic3RyaW5nKGUuc3RhcnQsZS5lbmQpKX1mdW5jdGlvbiBXbihlKXt2YXIgdD1uZXcgU2V0LG49W107cmV0dXJuIGUuZGVmaW5pdGlvbnMuZm9yRWFjaChmdW5jdGlvbihpKXtpZihpLmtpbmQ9PT0iRnJhZ21lbnREZWZpbml0aW9uIil7dmFyIHI9aS5uYW1lLnZhbHVlLHM9WG4oaS5sb2MpLG89S2UuZ2V0KHIpO28mJiFvLmhhcyhzKT9SdCYmY29uc29sZS53YXJuKCJXYXJuaW5nOiBmcmFnbWVudCB3aXRoIG5hbWUgIityK2AgYWxyZWFkeSBleGlzdHMuCmdyYXBocWwtdGFnIGVuZm9yY2VzIGFsbCBmcmFnbWVudCBuYW1lcyBhY3Jvc3MgeW91ciBhcHBsaWNhdGlvbiB0byBiZSB1bmlxdWU7IHJlYWQgbW9yZSBhYm91dAp0aGlzIGluIHRoZSBkb2NzOiBodHRwOi8vZGV2LmFwb2xsb2RhdGEuY29tL2NvcmUvZnJhZ21lbnRzLmh0bWwjdW5pcXVlLW5hbWVzYCk6b3x8S2Uuc2V0KHIsbz1uZXcgU2V0KSxvLmFkZChzKSx0LmhhcyhzKXx8KHQuYWRkKHMpLG4ucHVzaChpKSl9ZWxzZSBuLnB1c2goaSl9KSxQZShQZSh7fSxlKSx7ZGVmaW5pdGlvbnM6bn0pfWZ1bmN0aW9uIFpuKGUpe3ZhciB0PW5ldyBTZXQoZS5kZWZpbml0aW9ucyk7dC5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kubG9jJiZkZWxldGUgaS5sb2MsT2JqZWN0LmtleXMoaSkuZm9yRWFjaChmdW5jdGlvbihyKXt2YXIgcz1pW3JdO3MmJnR5cGVvZiBzPT0ib2JqZWN0IiYmdC5hZGQocyl9KX0pO3ZhciBuPWUubG9jO3JldHVybiBuJiYoZGVsZXRlIG4uc3RhcnRUb2tlbixkZWxldGUgbi5lbmRUb2tlbiksZX1mdW5jdGlvbiBLbihlKXt2YXIgdD1QdChlKTtpZighTGUuaGFzKHQpKXt2YXIgbj1JdChlLHtleHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlczpGZSxhbGxvd0xlZ2FjeUZyYWdtZW50VmFyaWFibGVzOkZlfSk7aWYoIW58fG4ua2luZCE9PSJEb2N1bWVudCIpdGhyb3cgbmV3IEVycm9yKCJOb3QgYSB2YWxpZCBHcmFwaFFMIGRvY3VtZW50LiIpO0xlLnNldCh0LFpuKFduKG4pKSl9cmV0dXJuIExlLmdldCh0KX1mdW5jdGlvbiBRKGUpe2Zvcih2YXIgdD1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W24tMV09YXJndW1lbnRzW25dO3R5cGVvZiBlPT0ic3RyaW5nIiYmKGU9W2VdKTt2YXIgaT1lWzBdO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24ocixzKXtyJiZyLmtpbmQ9PT0iRG9jdW1lbnQiP2krPXIubG9jLnNvdXJjZS5ib2R5OmkrPXIsaSs9ZVtzKzFdfSksS24oaSl9ZnVuY3Rpb24gZXIoKXtMZS5jbGVhcigpLEtlLmNsZWFyKCl9ZnVuY3Rpb24gdHIoKXtSdD0hMX1mdW5jdGlvbiBucigpe0ZlPSEwfWZ1bmN0aW9uIHJyKCl7RmU9ITF9dmFyIE5lPXtncWw6USxyZXNldENhY2hlczplcixkaXNhYmxlRnJhZ21lbnRXYXJuaW5nczp0cixlbmFibGVFeHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlczpucixkaXNhYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM6cnJ9OyhmdW5jdGlvbihlKXtlLmdxbD1OZS5ncWwsZS5yZXNldENhY2hlcz1OZS5yZXNldENhY2hlcyxlLmRpc2FibGVGcmFnbWVudFdhcm5pbmdzPU5lLmRpc2FibGVGcmFnbWVudFdhcm5pbmdzLGUuZW5hYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM9TmUuZW5hYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXMsZS5kaXNhYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXM9TmUuZGlzYWJsZUV4cGVyaW1lbnRhbEZyYWdtZW50VmFyaWFibGVzfSkoUXx8KFE9e30pKSxRLmRlZmF1bHQ9UTtjb25zdCBMdD1RYAoJZnJhZ21lbnQgTWF0Y2hQYXJ0cyBvbiBNYXRjaENvbmZpZyB7CgkJcmVnZXhWYWx1ZQoJCW1hdGNoVmFsdWUKCX0KYCxpcj1RYAoJbXV0YXRpb24gUHVzaFBheWxvYWQoCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHBheWxvYWRfaWQ6IElEIQoJCSRldmVudHM6IFJlcGxheUV2ZW50c0lucHV0IQoJCSRtZXNzYWdlczogU3RyaW5nIQoJCSRyZXNvdXJjZXM6IFN0cmluZyEKCQkkd2ViX3NvY2tldF9ldmVudHM6IFN0cmluZyEKCQkkZXJyb3JzOiBbRXJyb3JPYmplY3RJbnB1dF0hCgkJJGlzX2JlYWNvbjogQm9vbGVhbgoJCSRoYXNfc2Vzc2lvbl91bmxvYWRlZDogQm9vbGVhbgoJCSRoaWdobGlnaHRfbG9nczogU3RyaW5nCgkpIHsKCQlwdXNoUGF5bG9hZCgKCQkJc2Vzc2lvbl9zZWN1cmVfaWQ6ICRzZXNzaW9uX3NlY3VyZV9pZAoJCQlwYXlsb2FkX2lkOiAkcGF5bG9hZF9pZAoJCQlldmVudHM6ICRldmVudHMKCQkJbWVzc2FnZXM6ICRtZXNzYWdlcwoJCQlyZXNvdXJjZXM6ICRyZXNvdXJjZXMKCQkJd2ViX3NvY2tldF9ldmVudHM6ICR3ZWJfc29ja2V0X2V2ZW50cwoJCQllcnJvcnM6ICRlcnJvcnMKCQkJaXNfYmVhY29uOiAkaXNfYmVhY29uCgkJCWhhc19zZXNzaW9uX3VubG9hZGVkOiAkaGFzX3Nlc3Npb25fdW5sb2FkZWQKCQkJaGlnaGxpZ2h0X2xvZ3M6ICRoaWdobGlnaHRfbG9ncwoJCSkKCX0KYCxzcj1RYAoJbXV0YXRpb24gUHVzaFNlc3Npb25FdmVudHMoCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHBheWxvYWRfaWQ6IEludDY0SUQhCgkJJGRhdGE6IFN0cmluZyEKCSkgewoJCXB1c2hTZXNzaW9uRXZlbnRzKAoJCQlzZXNzaW9uX3NlY3VyZV9pZDogJHNlc3Npb25fc2VjdXJlX2lkCgkJCXBheWxvYWRfaWQ6ICRwYXlsb2FkX2lkCgkJCWRhdGE6ICRkYXRhCgkJKQoJfQpgLG9yPVFgCgltdXRhdGlvbiBpZGVudGlmeVNlc3Npb24oCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHVzZXJfaWRlbnRpZmllcjogU3RyaW5nIQoJCSR1c2VyX29iamVjdDogQW55CgkpIHsKCQlpZGVudGlmeVNlc3Npb24oCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJdXNlcl9pZGVudGlmaWVyOiAkdXNlcl9pZGVudGlmaWVyCgkJCXVzZXJfb2JqZWN0OiAkdXNlcl9vYmplY3QKCQkpCgl9CmAsYXI9UWAKCW11dGF0aW9uIGFkZFNlc3Npb25Qcm9wZXJ0aWVzKAoJCSRzZXNzaW9uX3NlY3VyZV9pZDogU3RyaW5nIQoJCSRwcm9wZXJ0aWVzX29iamVjdDogQW55CgkpIHsKCQlhZGRTZXNzaW9uUHJvcGVydGllcygKCQkJc2Vzc2lvbl9zZWN1cmVfaWQ6ICRzZXNzaW9uX3NlY3VyZV9pZAoJCQlwcm9wZXJ0aWVzX29iamVjdDogJHByb3BlcnRpZXNfb2JqZWN0CgkJKQoJfQpgLGNyPVFgCgltdXRhdGlvbiBwdXNoTWV0cmljcygkbWV0cmljczogW01ldHJpY0lucHV0XSEpIHsKCQlwdXNoTWV0cmljcyhtZXRyaWNzOiAkbWV0cmljcykKCX0KYCx1cj1RYAoJbXV0YXRpb24gYWRkU2Vzc2lvbkZlZWRiYWNrKAoJCSRzZXNzaW9uX3NlY3VyZV9pZDogU3RyaW5nIQoJCSR1c2VyX25hbWU6IFN0cmluZwoJCSR1c2VyX2VtYWlsOiBTdHJpbmcKCQkkdmVyYmF0aW06IFN0cmluZyEKCQkkdGltZXN0YW1wOiBUaW1lc3RhbXAhCgkpIHsKCQlhZGRTZXNzaW9uRmVlZGJhY2soCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJdXNlcl9uYW1lOiAkdXNlcl9uYW1lCgkJCXVzZXJfZW1haWw6ICR1c2VyX2VtYWlsCgkJCXZlcmJhdGltOiAkdmVyYmF0aW0KCQkJdGltZXN0YW1wOiAkdGltZXN0YW1wCgkJKQoJfQpgLGxyPVFgCgltdXRhdGlvbiBpbml0aWFsaXplU2Vzc2lvbigKCQkkc2Vzc2lvbl9zZWN1cmVfaWQ6IFN0cmluZyEKCQkkc2Vzc2lvbl9rZXk6IFN0cmluZwoJCSRvcmdhbml6YXRpb25fdmVyYm9zZV9pZDogU3RyaW5nIQoJCSRlbmFibGVfc3RyaWN0X3ByaXZhY3k6IEJvb2xlYW4hCgkJJHByaXZhY3lfc2V0dGluZzogU3RyaW5nIQoJCSRlbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHM6IEJvb2xlYW4hCgkJJGNsaWVudFZlcnNpb246IFN0cmluZyEKCQkkZmlyc3Rsb2FkVmVyc2lvbjogU3RyaW5nIQoJCSRjbGllbnRDb25maWc6IFN0cmluZyEKCQkkZW52aXJvbm1lbnQ6IFN0cmluZyEKCQkkaWQ6IFN0cmluZyEKCQkkYXBwVmVyc2lvbjogU3RyaW5nCgkJJHNlcnZpY2VOYW1lOiBTdHJpbmchCgkJJGNsaWVudF9pZDogU3RyaW5nIQoJCSRuZXR3b3JrX3JlY29yZGluZ19kb21haW5zOiBbU3RyaW5nIV0KCQkkZGlzYWJsZV9zZXNzaW9uX3JlY29yZGluZzogQm9vbGVhbgoJKSB7CgkJaW5pdGlhbGl6ZVNlc3Npb24oCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJc2Vzc2lvbl9rZXk6ICRzZXNzaW9uX2tleQoJCQlvcmdhbml6YXRpb25fdmVyYm9zZV9pZDogJG9yZ2FuaXphdGlvbl92ZXJib3NlX2lkCgkJCWVuYWJsZV9zdHJpY3RfcHJpdmFjeTogJGVuYWJsZV9zdHJpY3RfcHJpdmFjeQoJCQllbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHM6ICRlbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHMKCQkJY2xpZW50VmVyc2lvbjogJGNsaWVudFZlcnNpb24KCQkJZmlyc3Rsb2FkVmVyc2lvbjogJGZpcnN0bG9hZFZlcnNpb24KCQkJY2xpZW50Q29uZmlnOiAkY2xpZW50Q29uZmlnCgkJCWVudmlyb25tZW50OiAkZW52aXJvbm1lbnQKCQkJYXBwVmVyc2lvbjogJGFwcFZlcnNpb24KCQkJc2VydmljZU5hbWU6ICRzZXJ2aWNlTmFtZQoJCQlmaW5nZXJwcmludDogJGlkCgkJCWNsaWVudF9pZDogJGNsaWVudF9pZAoJCQluZXR3b3JrX3JlY29yZGluZ19kb21haW5zOiAkbmV0d29ya19yZWNvcmRpbmdfZG9tYWlucwoJCQlkaXNhYmxlX3Nlc3Npb25fcmVjb3JkaW5nOiAkZGlzYWJsZV9zZXNzaW9uX3JlY29yZGluZwoJCQlwcml2YWN5X3NldHRpbmc6ICRwcml2YWN5X3NldHRpbmcKCQkpIHsKCQkJc2VjdXJlX2lkCgkJCXByb2plY3RfaWQKCQkJc2FtcGxpbmcgewoJCQkJc3BhbnMgewoJCQkJCW5hbWUgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZXMgewoJCQkJCQlrZXkgewoJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQl9CgkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQl9CgkJCQkJZXZlbnRzIHsKCQkJCQkJbmFtZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQkJYXR0cmlidXRlcyB7CgkJCQkJCQlrZXkgewoJCQkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQkJCX0KCQkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJCXNhbXBsaW5nUmF0aW8KCQkJCX0KCQkJCWxvZ3MgewoJCQkJCW1lc3NhZ2UgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCXNldmVyaXR5VGV4dCB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQkJYXR0cmlidXRlcyB7CgkJCQkJCWtleSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQkJYXR0cmlidXRlIHsKCQkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQkJfQoJCQkJCX0KCQkJCQlzYW1wbGluZ1JhdGlvCgkJCQl9CgkJCX0KCQl9Cgl9Cgkke0x0fQpgLGhyPVFgCglxdWVyeSBJZ25vcmUoJGlkOiBJRCEpIHsKCQlpZ25vcmUoaWQ6ICRpZCkKCX0KYCxmcj1RYAoJcXVlcnkgR2V0U2FtcGxpbmdDb25maWcoJG9yZ2FuaXphdGlvbl92ZXJib3NlX2lkOiBTdHJpbmchKSB7CgkJc2FtcGxpbmcob3JnYW5pemF0aW9uX3ZlcmJvc2VfaWQ6ICRvcmdhbml6YXRpb25fdmVyYm9zZV9pZCkgewoJCQlzcGFucyB7CgkJCQluYW1lIHsKCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQl9CgkJCQlhdHRyaWJ1dGVzIHsKCQkJCQlrZXkgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQl9CgkJCQlldmVudHMgewoJCQkJCW5hbWUgewoJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJfQoJCQkJCWF0dHJpYnV0ZXMgewoJCQkJCQlrZXkgewoJCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCQl9CgkJCQkJCWF0dHJpYnV0ZSB7CgkJCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlzYW1wbGluZ1JhdGlvCgkJCX0KCQkJbG9ncyB7CgkJCQltZXNzYWdlIHsKCQkJCQkuLi5NYXRjaFBhcnRzCgkJCQl9CgkJCQlzZXZlcml0eVRleHQgewoJCQkJCS4uLk1hdGNoUGFydHMKCQkJCX0KCQkJCWF0dHJpYnV0ZXMgewoJCQkJCWtleSB7CgkJCQkJCS4uLk1hdGNoUGFydHMKCQkJCQl9CgkJCQkJYXR0cmlidXRlIHsKCQkJCQkJLi4uTWF0Y2hQYXJ0cwoJCQkJCX0KCQkJCX0KCQkJCXNhbXBsaW5nUmF0aW8KCQkJfQoJCX0KCX0KCSR7THR9CmAsZHI9KGUsdCxuLGkpPT5lKCk7ZnVuY3Rpb24gcHIoZSx0PWRyKXtyZXR1cm57UHVzaFBheWxvYWQobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoaXIsbixEKEQoe30saSkscikpLCJQdXNoUGF5bG9hZCIsIm11dGF0aW9uIixuKX0sUHVzaFNlc3Npb25FdmVudHMobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3Qoc3IsbixEKEQoe30saSkscikpLCJQdXNoU2Vzc2lvbkV2ZW50cyIsIm11dGF0aW9uIixuKX0saWRlbnRpZnlTZXNzaW9uKG4saSl7cmV0dXJuIHQocj0+ZS5yZXF1ZXN0KG9yLG4sRChEKHt9LGkpLHIpKSwiaWRlbnRpZnlTZXNzaW9uIiwibXV0YXRpb24iLG4pfSxhZGRTZXNzaW9uUHJvcGVydGllcyhuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChhcixuLEQoRCh7fSxpKSxyKSksImFkZFNlc3Npb25Qcm9wZXJ0aWVzIiwibXV0YXRpb24iLG4pfSxwdXNoTWV0cmljcyhuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChjcixuLEQoRCh7fSxpKSxyKSksInB1c2hNZXRyaWNzIiwibXV0YXRpb24iLG4pfSxhZGRTZXNzaW9uRmVlZGJhY2sobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QodXIsbixEKEQoe30saSkscikpLCJhZGRTZXNzaW9uRmVlZGJhY2siLCJtdXRhdGlvbiIsbil9LGluaXRpYWxpemVTZXNzaW9uKG4saSl7cmV0dXJuIHQocj0+ZS5yZXF1ZXN0KGxyLG4sRChEKHt9LGkpLHIpKSwiaW5pdGlhbGl6ZVNlc3Npb24iLCJtdXRhdGlvbiIsbil9LElnbm9yZShuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChocixuLEQoRCh7fSxpKSxyKSksIklnbm9yZSIsInF1ZXJ5IixuKX0sR2V0U2FtcGxpbmdDb25maWcobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoZnIsbixEKEQoe30saSkscikpLCJHZXRTYW1wbGluZ0NvbmZpZyIsInF1ZXJ5IixuKX19fXZhciB0ZT1VaW50OEFycmF5LG5lPVVpbnQxNkFycmF5LGV0PUludDMyQXJyYXksdHQ9bmV3IHRlKFswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDAsMCwwLDBdKSxudD1uZXcgdGUoWzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTMsMCwwXSksRnQ9bmV3IHRlKFsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSksTXQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49bmV3IG5lKDMxKSxpPTA7aTwzMTsrK2kpbltpXT10Kz0xPDxlW2ktMV07Zm9yKHZhciByPW5ldyBldChuWzMwXSksaT0xO2k8MzA7KytpKWZvcih2YXIgcz1uW2ldO3M8bltpKzFdOysrcylyW3NdPXMtbltpXTw8NXxpO3JldHVybntiOm4scn19LCR0PU10KHR0LDIpLG1yPSR0LmIscnQ9JHQucjttclsyOF09MjU4LHJ0WzI1OF09Mjg7Zm9yKHZhciB5cj1NdChudCwwKSxCdD15ci5yLGl0PW5ldyBuZSgzMjc2OCksTT0wO008MzI3Njg7KytNKXt2YXIgYWU9KE0mNDM2OTApPj4xfChNJjIxODQ1KTw8MTthZT0oYWUmNTI0MjgpPj4yfChhZSYxMzEwNyk8PDIsYWU9KGFlJjYxNjgwKT4+NHwoYWUmMzg1NSk8PDQsaXRbTV09KChhZSY2NTI4MCk+Pjh8KGFlJjI1NSk8PDgpPj4xfWZvcih2YXIgeGU9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgaT1lLmxlbmd0aCxyPTAscz1uZXcgbmUodCk7cjxpOysrcillW3JdJiYrK3NbZVtyXS0xXTt2YXIgbz1uZXcgbmUodCk7Zm9yKHI9MTtyPHQ7KytyKW9bcl09b1tyLTFdK3Nbci0xXTw8MTt2YXIgYztpZihuKXtjPW5ldyBuZSgxPDx0KTt2YXIgaD0xNS10O2ZvcihyPTA7cjxpOysrcilpZihlW3JdKWZvcih2YXIgZD1yPDw0fGVbcl0sdT10LWVbcl0seT1vW2Vbcl0tMV0rKzw8dSxnPXl8KDE8PHUpLTE7eTw9ZzsrK3kpY1tpdFt5XT4+aF09ZH1lbHNlIGZvcihjPW5ldyBuZShpKSxyPTA7cjxpOysrcillW3JdJiYoY1tyXT1pdFtvW2Vbcl0tMV0rK10+PjE1LWVbcl0pO3JldHVybiBjfSx1ZT1uZXcgdGUoMjg4KSxNPTA7TTwxNDQ7KytNKXVlW01dPTg7Zm9yKHZhciBNPTE0NDtNPDI1NjsrK00pdWVbTV09OTtmb3IodmFyIE09MjU2O008MjgwOysrTSl1ZVtNXT03O2Zvcih2YXIgTT0yODA7TTwyODg7KytNKXVlW01dPTg7Zm9yKHZhciBNZT1uZXcgdGUoMzIpLE09MDtNPDMyOysrTSlNZVtNXT01O3ZhciB2cj14ZSh1ZSw5LDApLGdyPXhlKE1lLDUsMCksVXQ9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrNykvOHwwfSxWdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuKG49PW51bGx8fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCksbmV3IHRlKGUuc3ViYXJyYXkodCxuKSl9LG9lPWZ1bmN0aW9uKGUsdCxuKXtuPDw9dCY3O3ZhciBpPXQvOHwwO2VbaV18PW4sZVtpKzFdfD1uPj44fSxBZT1mdW5jdGlvbihlLHQsbil7bjw8PXQmNzt2YXIgaT10Lzh8MDtlW2ldfD1uLGVbaSsxXXw9bj4+OCxlW2krMl18PW4+PjE2fSxzdD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTxlLmxlbmd0aDsrK2kpZVtpXSYmbi5wdXNoKHtzOmksZjplW2ldfSk7dmFyIHI9bi5sZW5ndGgscz1uLnNsaWNlKCk7aWYoIXIpcmV0dXJue3Q6enQsbDowfTtpZihyPT0xKXt2YXIgbz1uZXcgdGUoblswXS5zKzEpO3JldHVybiBvW25bMF0uc109MSx7dDpvLGw6MX19bi5zb3J0KGZ1bmN0aW9uKHcsayl7cmV0dXJuIHcuZi1rLmZ9KSxuLnB1c2goe3M6LTEsZjoyNTAwMX0pO3ZhciBjPW5bMF0saD1uWzFdLGQ9MCx1PTEseT0yO2ZvcihuWzBdPXtzOi0xLGY6Yy5mK2guZixsOmMscjpofTt1IT1yLTE7KWM9bltuW2RdLmY8blt5XS5mP2QrKzp5KytdLGg9bltkIT11JiZuW2RdLmY8blt5XS5mP2QrKzp5KytdLG5bdSsrXT17czotMSxmOmMuZitoLmYsbDpjLHI6aH07Zm9yKHZhciBnPXNbMF0ucyxpPTE7aTxyOysraSlzW2ldLnM+ZyYmKGc9c1tpXS5zKTt2YXIgYj1uZXcgbmUoZysxKSxtPW90KG5bdS0xXSxiLDApO2lmKG0+dCl7dmFyIGk9MCxOPTAsUj1tLXQsUD0xPDxSO2ZvcihzLnNvcnQoZnVuY3Rpb24oayxMKXtyZXR1cm4gYltMLnNdLWJbay5zXXx8ay5mLUwuZn0pO2k8cjsrK2kpe3ZhciBxPXNbaV0ucztpZihiW3FdPnQpTis9UC0oMTw8bS1iW3FdKSxiW3FdPXQ7ZWxzZSBicmVha31mb3IoTj4+PVI7Tj4wOyl7dmFyIHY9c1tpXS5zO2Jbdl08dD9OLT0xPDx0LWJbdl0rKy0xOisraX1mb3IoO2k+PTAmJk47LS1pKXt2YXIgRT1zW2ldLnM7YltFXT09dCYmKC0tYltFXSwrK04pfW09dH1yZXR1cm57dDpuZXcgdGUoYiksbDptfX0sb3Q9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlLnM9PS0xP01hdGgubWF4KG90KGUubCx0LG4rMSksb3QoZS5yLHQsbisxKSk6dFtlLnNdPW59LHF0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aDt0JiYhZVstLXRdOyk7Zm9yKHZhciBuPW5ldyBuZSgrK3QpLGk9MCxyPWVbMF0scz0xLG89ZnVuY3Rpb24oaCl7bltpKytdPWh9LGM9MTtjPD10OysrYylpZihlW2NdPT1yJiZjIT10KSsrcztlbHNle2lmKCFyJiZzPjIpe2Zvcig7cz4xMzg7cy09MTM4KW8oMzI3NTQpO3M+MiYmKG8ocz4xMD9zLTExPDw1fDI4NjkwOnMtMzw8NXwxMjMwNSkscz0wKX1lbHNlIGlmKHM+Myl7Zm9yKG8ociksLS1zO3M+NjtzLT02KW8oODMwNCk7cz4yJiYobyhzLTM8PDV8ODIwOCkscz0wKX1mb3IoO3MtLTspbyhyKTtzPTEscj1lW2NdfXJldHVybntjOm4uc3ViYXJyYXkoMCxpKSxuOnR9fSxJZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wLGk9MDtpPHQubGVuZ3RoOysraSluKz1lW2ldKnRbaV07cmV0dXJuIG59LGp0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgaT1uLmxlbmd0aCxyPVV0KHQrMik7ZVtyXT1pJjI1NSxlW3IrMV09aT4+OCxlW3IrMl09ZVtyXV4yNTUsZVtyKzNdPWVbcisxXV4yNTU7Zm9yKHZhciBzPTA7czxpOysrcyllW3Ircys0XT1uW3NdO3JldHVybihyKzQraSkqOH0sR3Q9ZnVuY3Rpb24oZSx0LG4saSxyLHMsbyxjLGgsZCx1KXtvZSh0LHUrKyxuKSwrK3JbMjU2XTtmb3IodmFyIHk9c3QociwxNSksZz15LnQsYj15LmwsbT1zdChzLDE1KSxOPW0udCxSPW0ubCxQPXF0KGcpLHE9UC5jLHY9UC5uLEU9cXQoTiksdz1FLmMsaz1FLm4sTD1uZXcgbmUoMTkpLEk9MDtJPHEubGVuZ3RoOysrSSkrK0xbcVtJXSYzMV07Zm9yKHZhciBJPTA7STx3Lmxlbmd0aDsrK0kpKytMW3dbSV0mMzFdO2Zvcih2YXIgeD1zdChMLDcpLHo9eC50LFY9eC5sLEg9MTk7SD40JiYheltGdFtILTFdXTstLUgpO3ZhciBYPWQrNTw8MyxhPUllKHIsdWUpK0llKHMsTWUpK28sZj1JZShyLGcpK0llKHMsTikrbysxNCszKkgrSWUoTCx6KSsyKkxbMTZdKzMqTFsxN10rNypMWzE4XTtpZihoPj0wJiZYPD1hJiZYPD1mKXJldHVybiBqdCh0LHUsZS5zdWJhcnJheShoLGgrZCkpO3ZhciBfLFMsQyxBO2lmKG9lKHQsdSwxKyhmPGEpKSx1Kz0yLGY8YSl7Xz14ZShnLGIsMCksUz1nLEM9eGUoTixSLDApLEE9Tjt2YXIgSz14ZSh6LFYsMCk7b2UodCx1LHYtMjU3KSxvZSh0LHUrNSxrLTEpLG9lKHQsdSsxMCxILTQpLHUrPTE0O2Zvcih2YXIgST0wO0k8SDsrK0kpb2UodCx1KzMqSSx6W0Z0W0ldXSk7dSs9MypIO2Zvcih2YXIgaj1bcSx3XSxXPTA7VzwyOysrVylmb3IodmFyIHllPWpbV10sST0wO0k8eWUubGVuZ3RoOysrSSl7dmFyIGllPXllW0ldJjMxO29lKHQsdSxLW2llXSksdSs9eltpZV0saWU+MTUmJihvZSh0LHUseWVbSV0+PjUmMTI3KSx1Kz15ZVtJXT4+MTIpfX1lbHNlIF89dnIsUz11ZSxDPWdyLEE9TWU7Zm9yKHZhciBJPTA7STxjOysrSSl7dmFyIFk9aVtJXTtpZihZPjI1NSl7dmFyIGllPVk+PjE4JjMxO0FlKHQsdSxfW2llKzI1N10pLHUrPVNbaWUrMjU3XSxpZT43JiYob2UodCx1LFk+PjIzJjMxKSx1Kz10dFtpZV0pO3ZhciB2ZT1ZJjMxO0FlKHQsdSxDW3ZlXSksdSs9QVt2ZV0sdmU+MyYmKEFlKHQsdSxZPj41JjgxOTEpLHUrPW50W3ZlXSl9ZWxzZSBBZSh0LHUsX1tZXSksdSs9U1tZXX1yZXR1cm4gQWUodCx1LF9bMjU2XSksdStTWzI1Nl19LEVyPW5ldyBldChbNjU1NDAsMTMxMDgwLDEzMTA4OCwxMzExMDQsMjYyMTc2LDEwNDg3MDQsMTA0ODgzMiwyMTE0NTYwLDIxMTc2MzJdKSx6dD1uZXcgdGUoMCksX3I9ZnVuY3Rpb24oZSx0LG4saSxyLHMpe3ZhciBvPXMuenx8ZS5sZW5ndGgsYz1uZXcgdGUoaStvKzUqKDErTWF0aC5jZWlsKG8vN2UzKSkrciksaD1jLnN1YmFycmF5KGksYy5sZW5ndGgtciksZD1zLmwsdT0ocy5yfHwwKSY3O2lmKHQpe3UmJihoWzBdPXMucj4+Myk7Zm9yKHZhciB5PUVyW3QtMV0sZz15Pj4xMyxiPXkmODE5MSxtPSgxPDxuKS0xLE49cy5wfHxuZXcgbmUoMzI3NjgpLFI9cy5ofHxuZXcgbmUobSsxKSxQPU1hdGguY2VpbChuLzMpLHE9MipQLHY9ZnVuY3Rpb24obHQpe3JldHVybihlW2x0XV5lW2x0KzFdPDxQXmVbbHQrMl08PHEpJm19LEU9bmV3IGV0KDI1ZTMpLHc9bmV3IG5lKDI4OCksaz1uZXcgbmUoMzIpLEw9MCxJPTAseD1zLml8fDAsej0wLFY9cy53fHwwLEg9MDt4KzI8bzsrK3gpe3ZhciBYPXYoeCksYT14JjMyNzY3LGY9UltYXTtpZihOW2FdPWYsUltYXT1hLFY8PXgpe3ZhciBfPW8teDtpZigoTD43ZTN8fHo+MjQ1NzYpJiYoXz40MjN8fCFkKSl7dT1HdChlLGgsMCxFLHcsayxJLHosSCx4LUgsdSksej1MPUk9MCxIPXg7Zm9yKHZhciBTPTA7UzwyODY7KytTKXdbU109MDtmb3IodmFyIFM9MDtTPDMwOysrUylrW1NdPTB9dmFyIEM9MixBPTAsSz1iLGo9YS1mJjMyNzY3O2lmKF8+MiYmWD09dih4LWopKWZvcih2YXIgVz1NYXRoLm1pbihnLF8pLTEseWU9TWF0aC5taW4oMzI3NjcseCksaWU9TWF0aC5taW4oMjU4LF8pO2o8PXllJiYtLUsmJmEhPWY7KXtpZihlW3grQ109PWVbeCtDLWpdKXtmb3IodmFyIFk9MDtZPGllJiZlW3grWV09PWVbeCtZLWpdOysrWSk7aWYoWT5DKXtpZihDPVksQT1qLFk+VylicmVhaztmb3IodmFyIHZlPU1hdGgubWluKGosWS0yKSxXdD0wLFM9MDtTPHZlOysrUyl7dmFyIGN0PXgtaitTJjMyNzY3LEJyPU5bY3RdLFp0PWN0LUJyJjMyNzY3O1p0Pld0JiYoV3Q9WnQsZj1jdCl9fX1hPWYsZj1OW2FdLGorPWEtZiYzMjc2N31pZihBKXtFW3orK109MjY4NDM1NDU2fHJ0W0NdPDwxOHxCdFtBXTt2YXIgS3Q9cnRbQ10mMzEsZW49QnRbQV0mMzE7SSs9dHRbS3RdK250W2VuXSwrK3dbMjU3K0t0XSwrK2tbZW5dLFY9eCtDLCsrTH1lbHNlIEVbeisrXT1lW3hdLCsrd1tlW3hdXX19Zm9yKHg9TWF0aC5tYXgoeCxWKTt4PG87Kyt4KUVbeisrXT1lW3hdLCsrd1tlW3hdXTt1PUd0KGUsaCxkLEUsdyxrLEkseixILHgtSCx1KSxkfHwocy5yPXUmN3xoW3UvOHwwXTw8Myx1LT03LHMuaD1SLHMucD1OLHMuaT14LHMudz1WKX1lbHNle2Zvcih2YXIgeD1zLnd8fDA7eDxvK2Q7eCs9NjU1MzUpe3ZhciB1dD14KzY1NTM1O3V0Pj1vJiYoaFt1Lzh8MF09ZCx1dD1vKSx1PWp0KGgsdSsxLGUuc3ViYXJyYXkoeCx1dCkpfXMuaT1vfXJldHVybiBWdChjLDAsaStVdCh1KStyKX0sVHI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9bmV3IEludDMyQXJyYXkoMjU2KSx0PTA7dDwyNTY7Kyt0KXtmb3IodmFyIG49dCxpPTk7LS1pOyluPShuJjEmJi0zMDY2NzQ5MTIpXm4+Pj4xO2VbdF09bn1yZXR1cm4gZX0oKSxicj1mdW5jdGlvbigpe3ZhciBlPS0xO3JldHVybntwOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj1lLGk9MDtpPHQubGVuZ3RoOysraSluPVRyW24mMjU1XnRbaV1dXm4+Pj44O2U9bn0sZDpmdW5jdGlvbigpe3JldHVybn5lfX19LE5yPWZ1bmN0aW9uKGUsdCxuLGkscil7aWYoIXImJihyPXtsOjF9LHQuZGljdGlvbmFyeSkpe3ZhciBzPXQuZGljdGlvbmFyeS5zdWJhcnJheSgtMzI3NjgpLG89bmV3IHRlKHMubGVuZ3RoK2UubGVuZ3RoKTtvLnNldChzKSxvLnNldChlLHMubGVuZ3RoKSxlPW8sci53PXMubGVuZ3RofXJldHVybiBfcihlLHQubGV2ZWw9PW51bGw/Njp0LmxldmVsLHQubWVtPT1udWxsP3IubD9NYXRoLmNlaWwoTWF0aC5tYXgoOCxNYXRoLm1pbigxMyxNYXRoLmxvZyhlLmxlbmd0aCkpKSoxLjUpOjIwOjEyK3QubWVtLG4saSxyKX0sYXQ9ZnVuY3Rpb24oZSx0LG4pe2Zvcig7bjsrK3QpZVt0XT1uLG4+Pj49OH0seHI9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmZpbGVuYW1lO2lmKGVbMF09MzEsZVsxXT0xMzksZVsyXT04LGVbOF09dC5sZXZlbDwyPzQ6dC5sZXZlbD09OT8yOjAsZVs5XT0zLHQubXRpbWUhPTAmJmF0KGUsNCxNYXRoLmZsb29yKG5ldyBEYXRlKHQubXRpbWV8fERhdGUubm93KCkpLzFlMykpLG4pe2VbM109ODtmb3IodmFyIGk9MDtpPD1uLmxlbmd0aDsrK2kpZVtpKzEwXT1uLmNoYXJDb2RlQXQoaSl9fSxBcj1mdW5jdGlvbihlKXtyZXR1cm4gMTArKGUuZmlsZW5hbWU/ZS5maWxlbmFtZS5sZW5ndGgrMTowKX07ZnVuY3Rpb24gSXIoZSx0KXt0fHwodD17fSk7dmFyIG49YnIoKSxpPWUubGVuZ3RoO24ucChlKTt2YXIgcj1OcihlLHQsQXIodCksOCkscz1yLmxlbmd0aDtyZXR1cm4geHIocix0KSxhdChyLHMtOCxuLmQoKSksYXQocixzLTQsaSkscn12YXIgSHQ9dHlwZW9mIFRleHRFbmNvZGVyIT0idW5kZWZpbmVkIiYmbmV3IFRleHRFbmNvZGVyLFNyPXR5cGVvZiBUZXh0RGVjb2RlciE9InVuZGVmaW5lZCImJm5ldyBUZXh0RGVjb2RlcixPcj0wO3RyeXtTci5kZWNvZGUoenQse3N0cmVhbTohMH0pLE9yPTF9Y2F0Y2goZSl7fWZ1bmN0aW9uIHdyKGUsdCl7dmFyIG47aWYoSHQpcmV0dXJuIEh0LmVuY29kZShlKTtmb3IodmFyIGk9ZS5sZW5ndGgscj1uZXcgdGUoZS5sZW5ndGgrKGUubGVuZ3RoPj4xKSkscz0wLG89ZnVuY3Rpb24oZCl7cltzKytdPWR9LG49MDtuPGk7KytuKXtpZihzKzU+ci5sZW5ndGgpe3ZhciBjPW5ldyB0ZShzKzgrKGktbjw8MSkpO2Muc2V0KHIpLHI9Y312YXIgaD1lLmNoYXJDb2RlQXQobik7aDwxMjh8fHQ/byhoKTpoPDIwNDg/KG8oMTkyfGg+PjYpLG8oMTI4fGgmNjMpKTpoPjU1Mjk1JiZoPDU3MzQ0PyhoPTY1NTM2KyhoJjEwNDc1NTIpfGUuY2hhckNvZGVBdCgrK24pJjEwMjMsbygyNDB8aD4+MTgpLG8oMTI4fGg+PjEyJjYzKSxvKDEyOHxoPj42JjYzKSxvKDEyOHxoJjYzKSk6KG8oMjI0fGg+PjEyKSxvKDEyOHxoPj42JjYzKSxvKDEyOHxoJjYzKSl9cmV0dXJuIFZ0KHIsMCxzKX1mdW5jdGlvbiBEcihlKXtyZXR1cm4gSih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3QgdD13cihKU09OLnN0cmluZ2lmeShlKSksbj1Jcih0KSxpPXlpZWxkIG5ldyBQcm9taXNlKHI9Pntjb25zdCBzPW5ldyBGaWxlUmVhZGVyO3Mub25sb2FkPSgpPT5yKHMucmVzdWx0KSxzLnJlYWRBc0RhdGFVUkwobmV3IEJsb2IoW25ldyBVaW50OEFycmF5KG4pXSkpfSk7cmV0dXJue2NvbXByZXNzZWRCYXNlNjQ6aS5zbGljZShpLmluZGV4T2YoIiwiKSsxKSxjb21wcmVzc2VkU2l6ZTpuLmxlbmd0aCxidWZmZXJMZW5ndGg6dC5sZW5ndGh9fSl9Y2xhc3Mga3J7Y29uc3RydWN0b3IodCxuKXtmdCh0aGlzLCJkZWJ1ZyIpO2Z0KHRoaXMsIm5hbWUiKTt0aGlzLmRlYnVnPXQsdGhpcy5uYW1lPW59bG9nKC4uLnQpe2lmKHRoaXMuZGVidWcpe2xldCBuPWBbJHtEYXRlLm5vdygpfV1gO3RoaXMubmFtZSYmKG4rPWAgLSAke3RoaXMubmFtZX1gKSxjb25zb2xlLmxvZy5hcHBseShjb25zb2xlLFtuLC4uLnRdKX19d2FybiguLi50KXtsZXQgbj1gWyR7RGF0ZS5ub3coKX1dYDt0aGlzLm5hbWUmJihuKz1gIC0gJHt0aGlzLm5hbWV9YCksY29uc29sZS53YXJuLmFwcGx5KGNvbnNvbGUsW24sLi4udF0pfX12YXIgWXQ9KGU9PihlLkJpbGxpbmdRdW90YUV4Y2VlZGVkPSJCaWxsaW5nUXVvdGFFeGNlZWRlZCIsZSkpKFl0fHx7fSk7Y29uc3QgQ3I9MyxScj0xZTMsUHI9NTAwLExyPVtZdC5CaWxsaW5nUXVvdGFFeGNlZWRlZC50b1N0cmluZygpXSxGcj1lPT57dmFyIG47cmV0dXJuKChuPWUucmVzcG9uc2UuZXJyb3JzKT09bnVsbD92b2lkIDA6bi5maW5kKGk9PkxyLmluY2x1ZGVzKGkubWVzc2FnZSkpKT09PXZvaWQgMH0sTXI9KCk9Pntjb25zdCBlPSh0LG4saSxyLHM9MCk9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe3RyeXtyZXR1cm4geWllbGQgdCgpfWNhdGNoKG8pe2lmKG8gaW5zdGFuY2VvZiBkZSYmIUZyKG8pKXRocm93IG87aWYoczxDcilyZXR1cm4geWllbGQgbmV3IFByb21pc2UoYz0+c2V0VGltZW91dChjLFJyK1ByKk1hdGgucG93KDIscykpKSx5aWVsZCBlKHQsbixpLHIscysxKTt0aHJvdyBjb25zb2xlLmVycm9yKGBoaWdobGlnaHQuaW86IGRhdGEgcmVxdWVzdCBmYWlsZWQgYWZ0ZXIgJHtzfSByZXRyaWVzYCksb319KTtyZXR1cm4gZX0sSnQ9NSxRdD0yZTMsJHI9WyJudW1iZXIiLCJzdHJpbmciLCJib29sZWFuIl07dmFyIFo9KGU9PihlW2UuSW5pdGlhbGl6ZT0wXT0iSW5pdGlhbGl6ZSIsZVtlLlJlc2V0PTFdPSJSZXNldCIsZVtlLkFzeW5jRXZlbnRzPTJdPSJBc3luY0V2ZW50cyIsZVtlLklkZW50aWZ5PTNdPSJJZGVudGlmeSIsZVtlLlByb3BlcnRpZXM9NF09IlByb3BlcnRpZXMiLGVbZS5NZXRyaWNzPTVdPSJNZXRyaWNzIixlW2UuRmVlZGJhY2s9Nl09IkZlZWRiYWNrIixlW2UuQ3VzdG9tRXZlbnQ9N109IkN1c3RvbUV2ZW50IixlW2UuU3RvcD04XT0iU3RvcCIsZVtlLkdldFN0YXR1cz05XT0iR2V0U3RhdHVzIixlKSkoWnx8e30pO2NvbnN0IFNlPXNlbGY7ZnVuY3Rpb24gWHQoZSx0KXtjb25zdCBuPXt9LGk9W10scj1bXTtmb3IoY29uc3RbcyxvXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtpZihvPT1udWxsKWNvbnRpbnVlOyRyLmluY2x1ZGVzKHR5cGVvZiBvKXx8aS5wdXNoKHtbc106b30pO2xldCBjO3R5cGVvZiBvPT0ic3RyaW5nIj9jPW86Yz1tZShvKSxjLmxlbmd0aD5RdCYmKHIucHVzaCh7W3NdOm99KSxjPWMuc3Vic3RyaW5nKDAsUXQpKSxuW3NdPWN9cmV0dXJuIHQhPT0ic2Vzc2lvbiImJihpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYEhpZ2hsaWdodCB3YXMgcGFzc2VkIG9uZSBvciBtb3JlICR7dH0gcHJvcGVydGllcyBub3Qgb2YgdHlwZSBzdHJpbmcsIG51bWJlciwgb3IgYm9vbGVhbi5gLGkpLHIubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgSGlnaGxpZ2h0IHdhcyBwYXNzZWQgb25lIG9yIG1vcmUgJHt0fSBwcm9wZXJ0aWVzIGV4Y2VlZGluZyAyMDAwIGNoYXJhY3RlcnMsIHdoaWNoIHdpbGwgYmUgdHJ1bmNhdGVkLmAscikpLG59e2xldCBlLHQsbixpPTAscj0wLHM9ITEsbz0wLGM9bmV3IGtyKCExLCJbd29ya2VyXSIpO2NvbnN0IGg9W10sZD1bXSx1PSgpPT5vIT09MCYmaTxKdCYmISEobiE9bnVsbCYmbi5sZW5ndGgpLHk9KHYsRSk9PntTZS5wb3N0TWVzc2FnZSh7cmVzcG9uc2U6e3R5cGU6Wi5DdXN0b21FdmVudCx0YWc6dixwYXlsb2FkOkV9fSl9LGc9dj0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3R7aWQ6RSxldmVudHM6dyxtZXNzYWdlczprLGVycm9yczpMLHJlc291cmNlc1N0cmluZzpJLHdlYlNvY2tldEV2ZW50c1N0cmluZzp4LGhhc1Nlc3Npb25VbmxvYWRlZDp6LGhpZ2hsaWdodExvZ3M6Vn09dixIPW1lKHttZXNzYWdlczprfSk7bGV0IFg9e3Nlc3Npb25fc2VjdXJlX2lkOm4scGF5bG9hZF9pZDpFLnRvU3RyaW5nKCksZXZlbnRzOntldmVudHM6d30sbWVzc2FnZXM6SCxyZXNvdXJjZXM6SSx3ZWJfc29ja2V0X2V2ZW50czp4LGVycm9yczpMLGlzX2JlYWNvbjohMSxoYXNfc2Vzc2lvbl91bmxvYWRlZDp6fTtWJiYoWC5oaWdobGlnaHRfbG9ncz1WKTtjb25zdHtjb21wcmVzc2VkQmFzZTY0OmEsYnVmZmVyTGVuZ3RoOmYsY29tcHJlc3NlZFNpemU6X309eWllbGQgRHIoWCksUz17dHlwZTpaLkFzeW5jRXZlbnRzLGlkOkUsZXZlbnRzU2l6ZTpmLGNvbXByZXNzZWRTaXplOmEubGVuZ3RofTtjLmxvZyhgUHVzaGluZyBwYXlsb2FkOiAke0pTT04uc3RyaW5naWZ5KHtzZXNzaW9uU2VjdXJlSUQ6bixpZDpFLGZpcnN0U0lEOk1hdGgubWluKC4uLlguZXZlbnRzLmV2ZW50cy5tYXAoVz0+Vz09bnVsbD92b2lkIDA6Vy5fc2lkKS5maWx0ZXIoVz0+ISFXKSksZXZlbnRzTGVuZ3RoOlguZXZlbnRzLmV2ZW50cy5sZW5ndGgsbWVzc2FnZXNMZW5ndGg6ay5sZW5ndGgscmVzb3VyY2VzTGVuZ3RoOkkubGVuZ3RoLHdlYlNvY2tldExlbmd0aDp4Lmxlbmd0aCxlcnJvcnNMZW5ndGg6TC5sZW5ndGgsYnVmTGVuZ3RoOmYsY29tcHJlc3NlZExlbmd0aDpfLGNvbXByZXNzZWRCYXNlNjRMZW5ndGg6YS5sZW5ndGh9LHZvaWQgMCwyKX1gKTtjb25zdCBDPWUuUHVzaFNlc3Npb25FdmVudHMoe3Nlc3Npb25fc2VjdXJlX2lkOm4scGF5bG9hZF9pZDpFLnRvU3RyaW5nKCksZGF0YTphfSk7bGV0IEE9UHJvbWlzZS5yZXNvbHZlKCk7aC5sZW5ndGgmJihBPWUucHVzaE1ldHJpY3Moe21ldHJpY3M6aH0pLGguc3BsaWNlKDApKTtsZXQgSz1wZXJmb3JtYW5jZS5ub3coKTtjb25zdCBqPXNldEludGVydmFsKCgpPT57SyYmcGVyZm9ybWFuY2Uubm93KCktSz5DdCYmKGNvbnNvbGUud2FybihgVXBsb2FkaW5nIHB1c2hQYXlsb2FkIHRvb2sgdG9vIGxvbmcsIGZhaWx1cmUgbnVtYmVyICMke3J9LmApLHIrPTEsY2xlYXJJbnRlcnZhbChqKSxyPj1KdCYmKGNvbnNvbGUud2FybigiVXBsb2FkaW5nIHB1c2hQYXlsb2FkIHRvb2sgdG9vIGxvbmcsIHN0b3BwaW5nIHJlY29yZGluZyB0byBhdm9pZCBPT00uIiksU2UucG9zdE1lc3NhZ2Uoe3Jlc3BvbnNlOnt0eXBlOlouU3RvcCxyZXF1ZXN0U3RhcnQ6Syxhc3luY0V2ZW50c1Jlc3BvbnNlOlN9fSksbSh7dHlwZTpaLlByb3BlcnRpZXMscHJvcGVydGllc09iamVjdDp7c3RvcFJlYXNvbjoiUHVzaCBQYXlsb2FkIFRpbWVvdXQifSxwcm9wZXJ0eVR5cGU6e3R5cGU6InRyYWNrIn19KSkpfSwxMDApO3RyeXt5aWVsZCBQcm9taXNlLmFsbChbQyxBXSksciYmcGVyZm9ybWFuY2Uubm93KCktSzw9Q3QmJihjb25zb2xlLndhcm4oYHB1c2hQYXlsb2FkIHN1Y2NlZWRlZCBhZnRlciAjJHtyfSBmYWlsdXJlcywgcmVzZXR0aW5nIHN0b3Agc3dpdGNoLmApLHI9MCl9ZmluYWxseXtLPTAsY2xlYXJJbnRlcnZhbChqKX1TZS5wb3N0TWVzc2FnZSh7cmVzcG9uc2U6U30pfSksYj12PT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdHt1c2VyT2JqZWN0OkUsdXNlcklkZW50aWZpZXI6dyxzb3VyY2U6a309djtrPT09InNlZ21lbnQiP3koIlNlZ21lbnQgSWRlbnRpZnkiLG1lKEQoe3VzZXJJZGVudGlmaWVyOnd9LEUpKSk6eSgiSWRlbnRpZnkiLG1lKEQoe3VzZXJJZGVudGlmaWVyOnd9LEUpKSkseWllbGQgZS5pZGVudGlmeVNlc3Npb24oe3Nlc3Npb25fc2VjdXJlX2lkOm4sdXNlcl9pZGVudGlmaWVyOncsdXNlcl9vYmplY3Q6WHQoRSwidXNlciIpfSk7Y29uc3QgTD1rPT09InNlZ21lbnQiP2s6ImRlZmF1bHQiO2MubG9nKGBJZGVudGlmeSAoJHt3fSwgc291cmNlOiAke0x9KSB3LyBvYmo6ICR7bWUoRSl9IEAgJHt0fWApfSksbT12PT5KKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdHtwcm9wZXJ0aWVzT2JqZWN0OkUscHJvcGVydHlUeXBlOnd9PXY7bGV0IGs7KHc9PW51bGw/dm9pZCAwOncudHlwZSk9PT0ic2Vzc2lvbiI/KGs9IlNlc3Npb24iLHlpZWxkIGUuYWRkU2Vzc2lvblByb3BlcnRpZXMoe3Nlc3Npb25fc2VjdXJlX2lkOm4scHJvcGVydGllc19vYmplY3Q6WHQoRSwic2Vzc2lvbiIpfSkpOih3PT1udWxsP3ZvaWQgMDp3LnNvdXJjZSk9PT0ic2VnbWVudCI/az0iU2VnbWVudCI6az0iVHJhY2siLGshPT0iU2Vzc2lvbiImJnkoayxtZShFKSksYy5sb2coYEFkZGluZyAke2t9IFByb3BlcnRpZXMgdG8gc2Vzc2lvbiAoJHtufSkgdy8gb2JqOiAke0pTT04uc3RyaW5naWZ5KEUpfSBAICR7dH1gKX0pLE49dj0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7aC5wdXNoKC4uLnYubWV0cmljcy5tYXAoRT0+KHtuYW1lOkUubmFtZSx2YWx1ZTpFLnZhbHVlLHNlc3Npb25fc2VjdXJlX2lkOm4sY2F0ZWdvcnk6RS5jYXRlZ29yeSxncm91cDpFLmdyb3VwLHRpbWVzdGFtcDpFLnRpbWVzdGFtcC50b0lTT1N0cmluZygpLHRhZ3M6RS50YWdzfSkpKX0pLFI9dj0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Y29uc3R7dGltZXN0YW1wOkUsdmVyYmF0aW06dyx1c2VyRW1haWw6ayx1c2VyTmFtZTpMfT12O3lpZWxkIGUuYWRkU2Vzc2lvbkZlZWRiYWNrKHtzZXNzaW9uX3NlY3VyZV9pZDpuLHRpbWVzdGFtcDpFLHZlcmJhdGltOncsdXNlcl9lbWFpbDprLHVzZXJfbmFtZTpMfSl9KSxQPXY9PkoodGhpcyxudWxsLGZ1bmN0aW9uKigpe3YudHlwZT09PVouQXN5bmNFdmVudHM/eWllbGQgZyh2KTp2LnR5cGU9PT1aLklkZW50aWZ5P3lpZWxkIGIodik6di50eXBlPT09Wi5Qcm9wZXJ0aWVzP3lpZWxkIG0odik6di50eXBlPT09Wi5NZXRyaWNzP3lpZWxkIE4odik6di50eXBlPT09Wi5GZWVkYmFjayYmKHlpZWxkIFIodikpfSkscT0oKT0+Sih0aGlzLG51bGwsZnVuY3Rpb24qKCl7Zm9yKDtkLmxlbmd0aD4wJiZ1KCk7KXtjb25zdCB2PWQuc2hpZnQoKTt0cnl7eWllbGQgUCh2KSxpPTB9Y2F0Y2goRSl7cyYmY29uc29sZS5lcnJvcihFKSxpKz0xfX19KTtTZS5vbm1lc3NhZ2U9ZnVuY3Rpb24odil7cmV0dXJuIEoodGhpcyxudWxsLGZ1bmN0aW9uKigpe2lmKHYuZGF0YS5tZXNzYWdlLnR5cGU9PT1aLkluaXRpYWxpemUpe3Q9di5kYXRhLm1lc3NhZ2UuYmFja2VuZCxuPXYuZGF0YS5tZXNzYWdlLnNlc3Npb25TZWN1cmVJRCxzPXYuZGF0YS5tZXNzYWdlLmRlYnVnLG89di5kYXRhLm1lc3NhZ2UucmVjb3JkaW5nU3RhcnRUaW1lLGMuZGVidWc9cyxlPXByKG5ldyBIbih0LHtoZWFkZXJzOnt9fSksTXIoKSkseWllbGQgcSgpO3JldHVybn1pZih2LmRhdGEubWVzc2FnZS50eXBlPT09Wi5SZXNldCl7ZC5sZW5ndGg9MCxoLmxlbmd0aD0wLGk9MCxyPTAsbj0iIixvPTA7cmV0dXJufWlmKHYuZGF0YS5tZXNzYWdlLnR5cGU9PT1aLkdldFN0YXR1cyl7U2UucG9zdE1lc3NhZ2Uoe3Jlc3BvbnNlOnt0eXBlOlouR2V0U3RhdHVzLHBlbmRpbmdDb3VudDpkLmxlbmd0aCxpbml0aWFsaXplZDp1KCl9fSk7cmV0dXJufWlmKCF1KCkpe2QucHVzaCh2LmRhdGEubWVzc2FnZSk7cmV0dXJufXRyeXt5aWVsZCBQKHYuZGF0YS5tZXNzYWdlKSxpPTAseWllbGQgcSgpfWNhdGNoKEUpe3MmJmNvbnNvbGUuZXJyb3IoRSksaSs9MX19KX19fSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGlnaGxpZ2h0LWNsaWVudC13b3JrZXItRHNiS01weHEuanMubWFwCg==",Hg=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),su=typeof self<"u"&&self.Blob&&new Blob([Hg(nu)],{type:"text/javascript;charset=utf-8"});function Pg(e){let t;try{if(t=su&&(self.URL||self.webkitURL).createObjectURL(su),!t)throw"";const i=new Worker(t,{name:e?.name});return i.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),i}catch{return new Worker("data:text/javascript;base64,"+nu,{name:e?.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}var Ke=(e=>(e[e.Initialize=0]="Initialize",e[e.Reset=1]="Reset",e[e.AsyncEvents=2]="AsyncEvents",e[e.Identify=3]="Identify",e[e.Properties=4]="Properties",e[e.Metrics=5]="Metrics",e[e.Feedback=6]="Feedback",e[e.CustomEvent=7]="CustomEvent",e[e.Stop=8]="Stop",e[e.GetStatus=9]="GetStatus",e))(Ke||{});const Dg=({apiKey:e})=>{(function(t,i){var n=t.amplitude||{_q:[],_iq:{}},s=i.createElement("script");s.type="text/javascript",s.integrity="sha384-+EO59vL/X7v6VE2s6/F4HxfHlK0nDUVWKVg8K9oUlvffAeeaShVBmbORTC2D3UF+",s.crossOrigin="anonymous",s.async=!0,s.src="https://cdn.amplitude.com/libs/amplitude-8.17.0-min.gz.js",s.onload=function(){t.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK"),amplitude.getInstance().init(e)};var r=i.getElementsByTagName("script")[0];r.parentNode.insertBefore(s,r);function l(d,S){d.prototype[S]=function(){return this._q.push([S].concat(Array.prototype.slice.call(arguments,0))),this}}for(var o=function(){return this._q=[],this},a=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove"],c=0;c<a.length;c++)l(o,a[c]);n.Identify=o;for(var u=function(){return this._q=[],this},h=["setProductId","setQuantity","setPrice","setRevenueType","setEventProperties"],p=0;p<h.length;p++)l(u,h[p]);n.Revenue=u;var m=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","enableTracking","setGlobalUserProperties","identify","clearUserProperties","setGroup","logRevenueV2","regenerateDeviceId","groupIdentify","onInit","logEventWithTimestamp","logEventWithGroups","setSessionId","resetSessionId"];function f(d){function S(V){d[V]=function(){d._q.push([V].concat(Array.prototype.slice.call(arguments,0)))}}for(var I=0;I<m.length;I++)S(m[I])}f(n),n.getInstance=function(d){return d=(!d||d.length===0?"$default_instance":d).toLowerCase(),Object.prototype.hasOwnProperty.call(n._iq,d)||(n._iq[d]={_q:[]},f(n._iq[d])),n._iq[d]},t.amplitude=n})(window,document)},Bg=({projectToken:e})=>{if(window.mixpanel)return;(function(i,n){if(!n.__SV){var s,r;window.mixpanel=n,n._i=[],n.init=function(l,o,a){function c(p,m){var f=m.split(".");f.length==2&&(p=p[f[0]],m=f[1]),p[m]=function(){p.push([m].concat(Array.prototype.slice.call(arguments,0)))}}var u=n;for(typeof a<"u"?u=n[a]=[]:a="mixpanel",u.people=u.people||[],u.toString=function(p){var m="mixpanel";return a!=="mixpanel"&&(m+="."+a),p||(m+=" (stub)"),m},u.people.toString=function(){return u.toString(1)+".people (stub)"},s="disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split(" "),r=0;r<s.length;r++)c(u,s[r]);var h="set set_once union unset remove delete".split(" ");u.get_group=function(){function p(S){m[S]=function(){call2_args=arguments,call2=[S].concat(Array.prototype.slice.call(call2_args,0)),u.push([f,call2])}}for(var m={},f=["get_group"].concat(Array.prototype.slice.call(arguments,0)),d=0;d<h.length;d++)p(h[d]);return m},n._i.push([l,o,a])},n.__SV=1.2}})(document,window.mixpanel||[]);const t=document.createElement("script");t.src=Qg,document.head.appendChild(t),t.addEventListener("load",()=>{var i;(i=window.mixpanel)==null||i.init(e)})},Qg="https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";class jg{constructor(t){U(this,"options"),U(this,"isRunningOnHighlight"),U(this,"organizationID"),U(this,"graphqlSDK"),U(this,"events"),U(this,"sessionData"),U(this,"ready"),U(this,"manualStopped"),U(this,"state"),U(this,"logger"),U(this,"enableSegmentIntegration"),U(this,"privacySetting"),U(this,"enableCanvasRecording"),U(this,"samplingStrategy"),U(this,"inlineImages"),U(this,"inlineVideos"),U(this,"inlineStylesheet"),U(this,"debugOptions"),U(this,"listeners"),U(this,"firstloadVersion"),U(this,"environment"),U(this,"sessionShortcut"),U(this,"appVersion"),U(this,"serviceName"),U(this,"_worker"),U(this,"_optionsInternal"),U(this,"_backendUrl"),U(this,"_recordingStartTime"),U(this,"_isOnLocalHost"),U(this,"_onToggleFeedbackFormVisibility"),U(this,"_isCrossOriginIframe"),U(this,"_eventBytesSinceSnapshot"),U(this,"_lastSnapshotTime"),U(this,"_lastVisibilityChangeTime"),U(this,"pushPayloadTimerId"),U(this,"hasSessionUnloaded"),U(this,"hasPushedData"),U(this,"reloaded"),U(this,"_hasPreviouslyInitialized"),U(this,"_recordStop"),U(this,"_integrations",[]);var i,n,s,r,l;this.options=t,typeof((i=this.options)==null?void 0:i.debug)=="boolean"?this.debugOptions=this.options.debug?{clientInteractions:!0}:{}:this.debugOptions=(s=(n=this.options)==null?void 0:n.debug)!=null?s:{},this.logger=new Qr(this.debugOptions.clientInteractions),this._worker=new Pg,this._worker.onmessage=a=>{var c,u,h;((c=a.data.response)==null?void 0:c.type)===Ke.AsyncEvents?(this._eventBytesSinceSnapshot+=a.data.response.eventsSize,this.logger.log(`Web worker sent payloadID ${a.data.response.id} size ${a.data.response.eventsSize} bytes, compression ratio ${a.data.response.eventsSize/a.data.response.compressedSize}.
|
|
354
|
+
Total since snapshot: ${(this._eventBytesSinceSnapshot/1e6).toFixed(1)}MB`)):((u=a.data.response)==null?void 0:u.type)===Ke.CustomEvent?this.addCustomEvent(a.data.response.tag,a.data.response.payload):((h=a.data.response)==null?void 0:h.type)===Ke.Stop&&(Xe("worker.onmessage","warn","Stopping recording due to worker failure",a.data.response),this.stop(!1))};let o=Mi();if(this.reloaded=!1,!((r=this.sessionData)!=null&&r.sessionSecureID)&&o!=null&&o.sessionSecureID)this.sessionData=o,this.options.sessionSecureID=o.sessionSecureID,this.reloaded=!0,this.logger.log(`Tab reloaded, continuing previous session: ${this.sessionData.sessionSecureID}`);else{for(const a of Object.values(be))Ui(a);this.sessionData={sessionSecureID:this.options.sessionSecureID,projectID:0,sessionStartTime:Date.now()}}this._hasPreviouslyInitialized=!1;try{window.parent.document&&(this._isCrossOriginIframe=!1)}catch{this._isCrossOriginIframe=(l=this.options.recordCrossOriginIframe)!=null?l:!0}this._initMembers(this.options)}_reset(t){return ye(this,arguments,function*({forceNew:i,sessionKey:n}){this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0);let s,r;if(!i)try{s=Ge(be.USER_IDENTIFIER);const l=Ge(be.USER_OBJECT);l&&(r=JSON.parse(l))}catch{}for(const l of Object.values(be))Ui(l);this.sessionData.sessionSecureID=n?Ht(`${this.organizationID}-${n}`):Ht(),this.sessionData.sessionKey=n,this.sessionData.sessionStartTime=Date.now(),this.options.sessionSecureID=this.sessionData.sessionSecureID,this.stop(),this._worker.postMessage({message:{type:Ke.Reset}}),yield this.start(),s&&r&&this.identify(s,r)})}_initMembers(t){var i,n,s,r,l,o,a,c,u;this.sessionShortcut=!1,this._recordingStartTime=0,this._isOnLocalHost=window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"||window.location.hostname==="",this.ready=!1,this.state="NotRecording",this.manualStopped=!1,this.enableSegmentIntegration=!!t.enableSegmentIntegration,this.privacySetting=(i=t.privacySetting)!=null?i:"default",this.enableCanvasRecording=(n=t.enableCanvasRecording)!=null?n:!1,this.inlineImages=(s=t.inlineImages)!=null?s:this._isOnLocalHost,this.inlineVideos=(r=t.inlineVideos)!=null?r:this._isOnLocalHost,this.inlineStylesheet=(l=t.inlineStylesheet)!=null?l:this._isOnLocalHost,this.samplingStrategy=Y({canvasFactor:.5,canvasMaxSnapshotDimension:360,canvasClearWebGLBuffer:!0,dataUrlOptions:Ed()},(o=t.samplingStrategy)!=null?o:{canvas:2}),this._backendUrl=(a=t?.backendUrl)!=null?a:"https://pub.observability.app.launchdarkly.com",this._backendUrl[0]==="/"&&(this._backendUrl=new URL(this._backendUrl,document.baseURI).href);const h=new gd(`${this._backendUrl}`,{headers:{}});this.graphqlSDK=Md(h,ph()),this.environment=(c=t.environment)!=null?c:"production",this.appVersion=t.appVersion,this.serviceName=(u=t.serviceName)!=null?u:"browser",typeof t.organizationID=="string"?this.organizationID=t.organizationID:this.organizationID=t.organizationID.toString(),this.isRunningOnHighlight=this.organizationID==="1"||this.organizationID==="1jdkoe52",this.firstloadVersion=t.firstloadVersion||"unknown",this.sessionShortcut=t.sessionShortcut||!1,this._onToggleFeedbackFormVisibility=()=>{};const p=t,m=It(p,["firstloadVersion"]);this._optionsInternal=m,this.listeners=[],this.events=[],this.hasSessionUnloaded=!1,this.hasPushedData=!1,window.Intercom&&window.Intercom("onShow",()=>{window.Intercom("update",{highlightSessionURL:this.getCurrentSessionURLWithTimestamp()}),this.addProperties({event:"Intercom onShow"})}),this._eventBytesSinceSnapshot=0,this._lastSnapshotTime=new Date().getTime(),this._lastVisibilityChangeTime=new Date().getTime()}identify(t,i={},n){if(!t||t===""){Xe("identify","warn","Highlight's identify() call was passed an empty identifier.",{user_identifier:t,user_object:i});return}this.sessionData.userIdentifier=t.toString(),this.sessionData.userObject=i,Ee(be.USER_IDENTIFIER,t.toString()),Ee(be.USER_OBJECT,JSON.stringify(i)),this._worker.postMessage({message:{type:Ke.Identify,userIdentifier:t,userObject:i,source:n}})}track(t,i){this.addProperties(he(Y({},i),{event:t}))}addProperties(t={},i){const n=Y({},t);Object.entries(n).forEach(([s,r])=>{try{structuredClone(r)}catch{delete n[s]}}),this._worker.postMessage({message:{type:Ke.Properties,propertiesObject:n,propertyType:i}})}addSessionProperties(t){this.addProperties(t,{type:"session"})}start(t){return ye(this,null,function*(){var i,n,s,r,l,o,a,c,u,h;if(!((i=navigator?.userAgent)!=null&&i.includes("Googlebot")||(n=navigator?.userAgent)!=null&&n.includes("AdsBot")))try{if(t!=null&&t.forceNew){yield this._reset(t);return}if(t!=null&&t.sessionKey&&t?.sessionKey!==this.sessionData.sessionKey){yield this._reset(he(Y({},t),{forceNew:!0}));return}this.logger.log("Initializing...",t,this.sessionData,this.options),this.sessionData=(s=Mi(this.sessionData.sessionSecureID))!=null?s:this.sessionData,(r=this.sessionData)!=null&&r.sessionStartTime?this._recordingStartTime=(l=this.sessionData)==null?void 0:l.sessionStartTime:(this._recordingStartTime=new Date().getTime(),this.sessionData.sessionStartTime=this._recordingStartTime);let p=Ge(ps.CLIENT_ID);p||(p=Ht(),Ee(ps.CLIENT_ID,p));let m;this.options.disableSessionRecording||this.options.disableNetworkRecording!==void 0||typeof this.options.networkRecording=="boolean"?m=!1:m=((o=this.options.networkRecording)==null?void 0:o.recordHeadersAndBody)||!1;let f=[];if(typeof this.options.networkRecording=="object"&&(a=this.options.networkRecording.destinationDomains)!=null&&a.length&&(f=this.options.networkRecording.destinationDomains),this._isCrossOriginIframe)yield this._setupCrossOriginIframe();else{const R=yield this.graphqlSDK.initializeSession({organization_verbose_id:this.organizationID,enable_strict_privacy:this.privacySetting==="strict",privacy_setting:this.privacySetting,enable_recording_network_contents:m,clientVersion:this.firstloadVersion,firstloadVersion:this.firstloadVersion,clientConfig:JSON.stringify(this._optionsInternal),environment:this.environment,id:p,appVersion:this.appVersion,serviceName:this.serviceName,session_secure_id:this.sessionData.sessionSecureID,session_key:this.sessionData.sessionKey,client_id:p,network_recording_domains:f,disable_session_recording:this.options.disableSessionRecording});if(R.initializeSession.secure_id!==this.sessionData.sessionSecureID&&this.logger.log(`Unexpected secure id returned by initializeSession: ${R.initializeSession.secure_id}, expected ${this.sessionData.sessionSecureID}`),this.sessionData.sessionSecureID=R.initializeSession.secure_id,this.sessionData.projectID=parseInt(((c=R?.initializeSession)==null?void 0:c.project_id)||"0"),!this.sessionData.projectID||!this.sessionData.sessionSecureID){console.error("Failed to initialize Highlight; an error occurred on our end.",this.sessionData);return}}zt(""),nt(this.sessionData),this.logger.log(`Loaded Highlight
|
|
355
355
|
Remote: ${this._backendUrl}
|
|
356
356
|
Project ID: ${this.sessionData.projectID}
|
|
357
|
-
SessionSecureID: ${this.sessionData.sessionSecureID}`),this.options.sessionSecureID=this.sessionData.sessionSecureID,this._worker.postMessage({message:{type:Ke.Initialize,sessionSecureID:this.sessionData.sessionSecureID,backend:this._backendUrl,debug:!!this.debugOptions.clientInteractions,recordingStartTime:this._recordingStartTime}});for(const R of this._integrations)R.init(this.sessionData.sessionSecureID);if(this.sessionData.userIdentifier&&this.identify(this.sessionData.userIdentifier,this.sessionData.userObject),this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0),this._isCrossOriginIframe||(this.pushPayloadTimerId=setTimeout(()=>{this._save()},
|
|
357
|
+
SessionSecureID: ${this.sessionData.sessionSecureID}`),this.options.sessionSecureID=this.sessionData.sessionSecureID,this._worker.postMessage({message:{type:Ke.Initialize,sessionSecureID:this.sessionData.sessionSecureID,backend:this._backendUrl,debug:!!this.debugOptions.clientInteractions,recordingStartTime:this._recordingStartTime}});for(const R of this._integrations)R.init(this.sessionData.sessionSecureID);if(this.sessionData.userIdentifier&&this.identify(this.sessionData.userIdentifier,this.sessionData.userObject),this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0),this._isCrossOriginIframe||(this.pushPayloadTimerId=setTimeout(()=>{this._save()},Xo)),this.options.disableSessionRecording){this.logger.log("Highlight is NOT RECORDING a session replay per H.init setting."),this.ready=!0,this.state="Recording",this.manualStopped=!1;return}const d=(R,G)=>{G&&this.logger.log("received isCheckout emit",{event:R}),this.events.push(R)};d.bind(this);const S=!!this._recordStop;this._recordStop&&(this._recordStop(),this._recordStop=void 0);const[I,V]=hg(this.privacySetting,this.options.maskAllInputs,this.options.maskInputOptions);this._recordStop=Be({ignoreClass:(u=this.options.ignoreClass)!=null?u:"highlight-ignore",ignoreSelector:this.options.ignoreSelector,blockClass:(h=this.options.blockClass)!=null?h:"highlight-block",blockSelector:this.options.blockSelector,emit:d,recordCrossOriginIframes:this.options.recordCrossOriginIframe,privacySetting:this.privacySetting,maskAllInputs:I,maskInputOptions:V,maskTextClass:this.options.maskTextClass,maskTextSelector:this.options.maskTextSelector,recordCanvas:this.enableCanvasRecording,sampling:{canvas:{fps:this.samplingStrategy.canvas,fpsManual:this.samplingStrategy.canvasManualSnapshot,resizeFactor:this.samplingStrategy.canvasFactor,clearWebGLBuffer:this.samplingStrategy.canvasClearWebGLBuffer,initialSnapshotDelay:this.samplingStrategy.canvasInitialSnapshotDelay,dataURLOptions:this.samplingStrategy.dataUrlOptions,maxSnapshotDimension:this.samplingStrategy.canvasMaxSnapshotDimension}},keepIframeSrcFn:R=>!this.options.recordCrossOriginIframe,inlineImages:this.inlineImages,inlineVideos:this.inlineVideos,collectFonts:this.inlineImages,inlineStylesheet:this.inlineStylesheet,plugins:[Kh()],logger:typeof this.options.debug=="boolean"&&this.options.debug||typeof this.options.debug=="object"&&this.options.debug.domRecording?{debug:this.logger.log,warn:Xe.bind("RecordSDK","warn")}:void 0}),S||this.options.recordCrossOriginIframe&&this._setupCrossOriginIframeParent(),document.referrer&&(window&&document.referrer.includes(window.location.origin)||(this.addCustomEvent("Referrer",document.referrer),this.addProperties({referrer:document.referrer},{type:"session"}))),this.sessionData.sessionKey&&this.addProperties({sessionKey:this.sessionData.sessionKey},{type:"session"}),this._setupWindowListeners(),this.ready=!0,this.state="Recording",this.manualStopped=!1}catch(p){Xe("initializeSession _setupWindowListeners","warn",p)}})}_visibilityHandler(t){return ye(this,null,function*(){if(this.manualStopped){this.logger.log("Ignoring visibility event due to manual stop.");return}new Date().getTime()-this._lastVisibilityChangeTime<Bd||(this._lastVisibilityChangeTime=new Date().getTime(),this.logger.log(`Detected window ${t?"hidden":"visible"}.`),t?(this.addCustomEvent("TabHidden",!0),this.options.disableBackgroundRecording&&this.stop()):(this.options.disableBackgroundRecording&&(yield this.start()),this.addCustomEvent("TabHidden",!1)))})}_setupCrossOriginIframe(){return ye(this,null,function*(){this.logger.log("highlight in cross-origin iframe is waiting "),yield new Promise(t=>{const i=n=>{if(n.data.highlight===zc){const s=n.data;this.logger.log("highlight got window message ",s),this.sessionData.projectID=s.projectID,this.sessionData.sessionSecureID=s.sessionSecureID,window.parent.postMessage({highlight:Hc},"*"),window.removeEventListener("message",i),t()}};window.addEventListener("message",i)})})}_setupCrossOriginIframeParent(){this.logger.log("highlight setting up cross origin iframe parent notification"),setInterval(()=>{window.document.querySelectorAll("iframe").forEach(t=>{var i;(i=t.contentWindow)==null||i.postMessage({highlight:zc,projectID:this.sessionData.projectID,sessionSecureID:this.sessionData.sessionSecureID},"*")})},Xo),window.addEventListener("message",t=>{t.data.highlight===Hc&&this.logger.log("highlight got response from initialized iframe")})}_setupWindowListeners(){var t;try{const n=this;this.enableSegmentIntegration&&this.listeners.push(bg(r=>{if(r.type==="track"){const l={};l["segment-event"]=r.event,n.addProperties(l,{type:"track",source:"segment"})}else if(r.type==="identify"){const l=r.userId.replace(/^"(.*)"$/,"$1");n.identify(l,r.traits,"segment")}})),this.listeners.push(Xh(r=>{this.reloaded?(this.addCustomEvent("Reload",r),this.reloaded=!1,n.addProperties({reload:!0},{type:"session"})):this.addCustomEvent("Navigate",r)})),this.listeners.push(vh(r=>{this.addCustomEvent("Viewport",r)})),this.listeners.push(pg((r,l)=>{let o=null,a=null;if(l&&l.target){const c=l.target;o=Rh(c),a=c.textContent,a&&a.length>2e3&&(a=a.substring(0,2e3))}this.addCustomEvent("Click",{clickTarget:r,clickTextContent:a,clickSelector:o})})),this.listeners.push(mg(r=>{r&&this.addCustomEvent("Focus",r)})),this.sessionShortcut&&gg(this.sessionShortcut,()=>{window.open(this.getCurrentSessionURLWithTimestamp(),"_blank")}),this._hasPreviouslyInitialized||((t=window.electron)!=null&&t.ipcRenderer?(window.electron.ipcRenderer.on("highlight.run",({visible:r})=>{this._visibilityHandler(!r)}),this.logger.log("Set up Electron highlight.run events.")):(fg(r=>this._visibilityHandler(r)),this.logger.log("Set up document visibility listener.")),this._hasPreviouslyInitialized=!0);const s=()=>{this.hasSessionUnloaded=!0,this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0)};window.addEventListener("beforeunload",s),this.listeners.push(()=>window.removeEventListener("beforeunload",s))}catch(n){Xe("initializeSession _setupWindowListeners","warn",n)}const i=()=>{this.addCustomEvent("Page Unload",""),zt(this.sessionData.sessionSecureID),nt(this.sessionData)};if(window.addEventListener("beforeunload",i),this.listeners.push(()=>window.removeEventListener("beforeunload",i)),navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/iPhone/i)){const n=()=>{this.addCustomEvent("Page Unload",""),zt(this.sessionData.sessionSecureID),nt(this.sessionData)};window.addEventListener("pagehide",n),this.listeners.push(()=>window.removeEventListener("beforeunload",n))}}stop(t){this.manualStopped=!!t,this.manualStopped&&this.addCustomEvent("Stop","H.stop() was called which stops Highlight from recording."),this.state="NotRecording",t&&this._recordStop&&(this._recordStop(),this._recordStop=void 0),this.listeners.forEach(i=>i()),this.listeners=[]}getCurrentSessionURLWithTimestamp(){const t=new Date().getTime(),{projectID:i,sessionSecureID:n}=this.sessionData,s=(t-this._recordingStartTime)/1e3;return`https://${Go}/${i}/sessions/${n}?ts=${s}`}getCurrentSessionURL(){const t=this.sessionData.projectID,i=this.sessionData.sessionSecureID;return t&&i?`https://${Go}/${t}/sessions/${i}`:null}snapshot(t){return ye(this,null,function*(){yield Be.snapshotCanvas(t)})}addSessionFeedback({timestamp:t,verbatim:i,user_email:n,user_name:s}){var r;this._worker.postMessage({message:{type:Ke.Feedback,verbatim:i,timestamp:t,userName:s||this.sessionData.userIdentifier,userEmail:n||((r=this.sessionData.userObject)==null?void 0:r.name)}})}_save(){return ye(this,null,function*(){var t;try{this.state==="Recording"&&this.listeners&&!this.sessionData.sessionKey&&this.sessionData.sessionStartTime&&Date.now()-this.sessionData.sessionStartTime>Dd&&(this.logger.log("Resetting session",{start:this.sessionData.sessionStartTime}),yield this._reset({}));let i;((t=this.options)==null?void 0:t.sendMode)==="local"&&(i=n=>ye(this,null,function*(){let s=new Blob([JSON.stringify({query:po(So),variables:n})],{type:"application/json"});return yield window.fetch(`${this._backendUrl}`,{method:"POST",body:s}),0})),yield this._sendPayload({sendFn:i}),this.hasPushedData=!0,this.sessionData.lastPushTime=Date.now(),nt(this.sessionData)}catch(i){Xe("_save","warn",i)}this.state==="Recording"&&(this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0),this.pushPayloadTimerId=setTimeout(()=>{this._save()},Pd))})}addCustomEvent(t,i){if(this.state==="NotRecording"){let n;const s=()=>{clearInterval(n),this.state==="Recording"&&this.events.length>0?Kc(t,i):n=setTimeout(s,500)};n=setTimeout(s,500)}else this.state==="Recording"&&(this.events.length>0||this.hasPushedData)&&Kc(t,i)}_sendPayload(t){return ye(this,arguments,function*({sendFn:i}){const n=[...this.events],{bytes:s,time:r}=this.enableCanvasRecording?Vo.canvas:Vo.normal;this._eventBytesSinceSnapshot>=s&&new Date().getTime()-this._lastSnapshotTime>=r&&this.takeFullSnapshot(),this.logger.log(`Sending: ${n.length} events,
|
|
358
358
|
To: ${this._backendUrl}
|
|
359
359
|
Org: ${this.organizationID}
|
|
360
|
-
SessionSecureID: ${this.sessionData.sessionSecureID}`);const l=new Date().getTime(),o=
|
|
360
|
+
SessionSecureID: ${this.sessionData.sessionSecureID}`);const l=new Date().getTime(),o=Wg();if(i){const a={session_secure_id:this.sessionData.sessionSecureID,payload_id:l.toString(),events:{events:n},messages:Xd({messages:[]}),resources:JSON.stringify({resources:[]}),web_socket_events:JSON.stringify({webSocketEvents:[]}),errors:[],is_beacon:!1,has_session_unloaded:this.hasSessionUnloaded,highlight_logs:o||void 0},{compressedBase64:c}=yield zg(a);yield i({session_secure_id:this.sessionData.sessionSecureID,payload_id:l.toString(),data:c})}else this._worker.postMessage({message:{type:Ke.AsyncEvents,id:l,events:n,messages:[],errors:[],resourcesString:JSON.stringify({resources:[]}),webSocketEventsString:JSON.stringify({webSocketEvents:[]}),hasSessionUnloaded:this.hasSessionUnloaded,highlightLogs:o}});nt(this.sessionData),this.events=this.events.slice(n.length),vg(o)})}takeFullSnapshot(){if(!this._recordStop){this.logger.log("skipping full snapshot as rrweb is not running");return}this.logger.log("taking full snapshot",{bytesSinceSnapshot:this._eventBytesSinceSnapshot,lastSnapshotTime:this._lastSnapshotTime}),Be.takeFullSnapshot(),this._eventBytesSinceSnapshot=0,this._lastSnapshotTime=new Date().getTime()}register(t,i){this._integrations.push(new Sh(t,i))}getHooks(t){return this._integrations.flatMap(i=>{var n,s;return(s=(n=i.getHooks)==null?void 0:n.call(i,t))!=null?s:[]})}getRecordingState(){var t;return(t=this==null?void 0:this.state)!=null?t:"NotRecording"}getSession(){const t=this.sessionData.sessionSecureID,i=Mi(t);if(!i)return null;const n=`${this.getFrontendUrl()}/sessions/${t}`;if(!n||!i?.sessionStartTime)return null;const s=new Date().getTime();let r;try{r=new URL(n)}catch(a){return Xe("identify","warn",`failed to construct session url from ${n}`,a),null}const l=new URL(r),o=(s-this._recordingStartTime)/1e3;return l.searchParams.set("ts",o.toString()),{url:r.toString(),urlWithTimestamp:l.toString(),sessionSecureID:t}}getFrontendUrl(){var t,i;const n=this._backendUrl.match(_d);if(n&&(t=n?.groups)!=null&&t.domain){const s=(i=n.groups.domain)!=null?i:"";return`https://${jd[s]}${Ad}`}return Qd}}class Ag extends Th{constructor(t){super(t),U(this,"record"),U(this,"options"),this.options=t}initialize(t,i){var n,s,r,l,o,a,c,u,h;try{if(typeof window>"u"||typeof document>"u"){console.warn("@launchdarkly/session-replay is not initializing because it is not supported in this environment.");return}if(typeof Worker>"u"){console.warn("@launchdarkly/session-replay is not initializing because Worker is not supported.");return}if(!t){console.warn("@launchdarkly/session-replay is not initializing because the SDK credential is undefined.");return}this.configureSession(t,i);const p=he(Y({},i),{organizationID:t,firstloadVersion:Ch,environment:i?.environment||"production",appVersion:i?.version,sessionSecureID:this.sessionSecureID,privacySetting:(n=i?.privacySetting)!=null?n:"strict"});this.record=new jg(p),i!=null&&i.manualStart||this.record.start(),Re.LDRecord.load(this.record),!((r=(s=i?.integrations)==null?void 0:s.mixpanel)!=null&&r.disabled)&&(o=(l=i?.integrations)==null?void 0:l.mixpanel)!=null&&o.projectToken&&Bg(i.integrations.mixpanel),!((c=(a=i?.integrations)==null?void 0:a.amplitude)!=null&&c.disabled)&&(h=(u=i?.integrations)==null?void 0:u.amplitude)!=null&&h.apiKey&&Dg(i.integrations.amplitude)}catch(p){Xe("Error initializing @launchdarkly/session-replay SDK","error",p)}}getMetadata(){return{name:"@launchdarkly/session-replay"}}register(t,i){var n;(n=this.record)==null||n.register(t,i)}getHooks(t){var i,n,s,r;const l=Y(Y({[zd]:t.sdk.name,[Hd]:t.sdk.version,[mh]:t.clientSideId,[fh]:"LaunchDarkly"},(i=t.application)!=null&&i.id?{[bh]:t.application.id}:{}),(n=t.application)!=null&&n.version?{[yh]:t.application.version}:{});return this.initialize((r=(s=t.sdkKey)!=null?s:t.mobileKey)!=null?r:t.clientSideId,this.options),[{getMetadata:()=>({name:"@launchdarkly/session-replay/hooks"}),afterIdentify:(o,a,c)=>{var u,h,p,m,f,d,S,I;for(const V of(p=(h=(u=this.record)==null?void 0:u.getHooks)==null?void 0:h.call(u,t))!=null?p:[])(m=V.afterIdentify)==null||m.call(V,o,a,c);if(c.status==="completed"){const V=he(Y({},Zh(o.context)),{key:(S=(d=(f=this.options)==null?void 0:f.contextFriendlyName)==null?void 0:d.call(f,o.context))!=null?S:Lo(o.context),canonicalKey:Lo(o.context)});(I=this.record)==null||I.identify(V.key,Y(Y({},l),V),"LaunchDarkly")}return a},afterEvaluation:(o,a,c)=>{var u,h,p,m;for(const f of(p=(h=(u=this.record)==null?void 0:u.getHooks)==null?void 0:h.call(u,t))!=null?p:[])(m=f.afterEvaluation)==null||m.call(f,o,a,c);return a},afterTrack:o=>{var a,c,u,h,p;for(const m of(u=(c=(a=this.record)==null?void 0:a.getHooks)==null?void 0:c.call(a,t))!=null?u:[])(h=m.afterTrack)==null||h.call(m,o);(p=this.record)==null||p.track(o.key,{data:o.data,value:o.metricValue})}}]}}class ru extends jn{start(){return this._sdk.start()}stop(){return this._sdk.stop()}recordGauge(t){return this._bufferCall("recordGauge",[t])}recordCount(t){return this._bufferCall("recordCount",[t])}recordIncr(t){return this._bufferCall("recordIncr",[t])}recordHistogram(t){return this._bufferCall("recordHistogram",[t])}recordUpDownCounter(t){return this._bufferCall("recordUpDownCounter",[t])}startSpan(t,i,n,s){return this._bufferCall("startSpan",[t,i,n,s])}startManualSpan(t,i,n,s){return this._bufferCall("startManualSpan",[t,i,n,s])}register(t,i){return this._bufferCall("register",[t,i])}recordLog(t,i,n){return this._bufferCall("recordLog",[t,i,n])}recordError(t,i,n,s,r){return this._bufferCall("recordError",[t,i,n,s,r])}setLDContextKeyAttributes(t){return this._bufferCall("setLDContextKeyAttributes",[t])}getLDContextKeyAttributes(){return this._bufferCall("getLDContextKeyAttributes",[])}}let Ii;typeof globalThis<"u"?globalThis.LDObserve?Ii=globalThis.LDObserve:(Ii=new ru,globalThis.LDObserve=Ii):Ii=new ru;const _g=Object.freeze(Object.defineProperty({__proto__:null,get LDObserve(){return Ii}},Symbol.toStringTag,{value:"Module"}));Re.default=Ag,Object.defineProperties(Re,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
361
361
|
//# sourceMappingURL=index.umd.js.map
|