diff --git "a/assets/worker-BkXdq74Y.js" "b/assets/worker-BkXdq74Y.js" new file mode 100644--- /dev/null +++ "b/assets/worker-BkXdq74Y.js" @@ -0,0 +1,2891 @@ +var K8=Object.defineProperty;var X8=(a,n,i)=>n in a?K8(a,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):a[n]=i;var Be=(a,n,i)=>X8(a,typeof n!="symbol"?n+"":n,i);const j0=new Map,yi=[],Z8=(a,n,i)=>{if(n&&typeof n.init=="function"&&typeof n.createInferenceSessionHandler=="function"){const g=j0.get(a);if(g===void 0)j0.set(a,{backend:n,priority:i});else{if(g.priority>i)return;if(g.priority===i&&g.backend!==n)throw new Error(`cannot register backend "${a}" using priority ${i}`)}if(i>=0){const p=yi.indexOf(a);p!==-1&&yi.splice(p,1);for(let h=0;h{const n=j0.get(a);if(!n)return"backend not found.";if(n.initialized)return n.backend;if(n.aborted)return n.error;{const i=!!n.initPromise;try{return i||(n.initPromise=n.backend.init(a)),await n.initPromise,n.initialized=!0,n.backend}catch(g){return i||(n.error=`${g}`,n.aborted=!0),n.error}finally{delete n.initPromise}}},q8=async a=>{const n=a.executionProviders||[],i=n.map(E=>typeof E=="string"?E:E.name),g=i.length===0?yi:i;let p;const h=[],C=new Set;for(const E of g){const v=await J8(E);typeof v=="string"?h.push({name:E,err:v}):(p||(p=v),p===v&&C.add(E))}if(!p)throw new Error(`no available backend found. ERR: ${h.map(E=>`[${E.name}] ${E.err}`).join(", ")}`);for(const{name:E,err:v}of h)i.includes(E)&&console.warn(`removing requested execution provider "${E}" from session options because it is not available: ${v}`);const w=n.filter(E=>C.has(typeof E=="string"?E:E.name));return[p,new Proxy(a,{get:(E,v)=>v==="executionProviders"?w:Reflect.get(E,v)})]},$8="1.22.0";let Pf="warning";const Oa={wasm:{},webgl:{},webgpu:{},versions:{common:$8},set logLevel(a){if(a!==void 0){if(typeof a!="string"||["verbose","info","warning","error","fatal"].indexOf(a)===-1)throw new Error(`Unsupported logging level: ${a}`);Pf=a}},get logLevel(){return Pf}};Object.defineProperty(Oa,"logLevel",{enumerable:!0});const e6=Oa,A6=(a,n)=>{const i=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);i.width=a.dims[3],i.height=a.dims[2];const g=i.getContext("2d");if(g!=null){let p,h;(n==null?void 0:n.tensorLayout)!==void 0&&n.tensorLayout==="NHWC"?(p=a.dims[2],h=a.dims[3]):(p=a.dims[3],h=a.dims[2]);const C=(n==null?void 0:n.format)!==void 0?n.format:"RGB",w=n==null?void 0:n.norm;let E,v;w===void 0||w.mean===void 0?E=[255,255,255,255]:typeof w.mean=="number"?E=[w.mean,w.mean,w.mean,w.mean]:(E=[w.mean[0],w.mean[1],w.mean[2],0],w.mean[3]!==void 0&&(E[3]=w.mean[3])),w===void 0||w.bias===void 0?v=[0,0,0,0]:typeof w.bias=="number"?v=[w.bias,w.bias,w.bias,w.bias]:(v=[w.bias[0],w.bias[1],w.bias[2],0],w.bias[3]!==void 0&&(v[3]=w.bias[3]));const D=h*p;let B=0,x=D,S=D*2,F=-1;C==="RGBA"?(B=0,x=D,S=D*2,F=D*3):C==="RGB"?(B=0,x=D,S=D*2):C==="RBG"&&(B=0,S=D,x=D*2);for(let R=0;R{const i=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d");let g;if(i!=null){let p,h,C;(n==null?void 0:n.tensorLayout)!==void 0&&n.tensorLayout==="NHWC"?(p=a.dims[2],h=a.dims[1],C=a.dims[3]):(p=a.dims[3],h=a.dims[2],C=a.dims[1]);const w=n!==void 0&&n.format!==void 0?n.format:"RGB",E=n==null?void 0:n.norm;let v,D;E===void 0||E.mean===void 0?v=[255,255,255,255]:typeof E.mean=="number"?v=[E.mean,E.mean,E.mean,E.mean]:(v=[E.mean[0],E.mean[1],E.mean[2],255],E.mean[3]!==void 0&&(v[3]=E.mean[3])),E===void 0||E.bias===void 0?D=[0,0,0,0]:typeof E.bias=="number"?D=[E.bias,E.bias,E.bias,E.bias]:(D=[E.bias[0],E.bias[1],E.bias[2],0],E.bias[3]!==void 0&&(D[3]=E.bias[3]));const B=h*p;if(n!==void 0&&(n.format!==void 0&&C===4&&n.format!=="RGBA"||C===3&&n.format!=="RGB"&&n.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");const x=4;let S=0,F=1,R=2,K=3,L=0,N=B,V=B*2,d=-1;w==="RGBA"?(L=0,N=B,V=B*2,d=B*3):w==="RGB"?(L=0,N=B,V=B*2):w==="RBG"&&(L=0,V=B,N=B*2),g=i.createImageData(p,h);for(let k=0;k{if(a===void 0)throw new Error("Image buffer must be defined");if(n.height===void 0||n.width===void 0)throw new Error("Image height and width must be defined");if(n.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");const{height:i,width:g}=n,p=n.norm??{mean:255,bias:0};let h,C;typeof p.mean=="number"?h=[p.mean,p.mean,p.mean,p.mean]:h=[p.mean[0],p.mean[1],p.mean[2],p.mean[3]??255],typeof p.bias=="number"?C=[p.bias,p.bias,p.bias,p.bias]:C=[p.bias[0],p.bias[1],p.bias[2],p.bias[3]??0];const w=n.format!==void 0?n.format:"RGBA",E=n.tensorFormat!==void 0&&n.tensorFormat!==void 0?n.tensorFormat:"RGB",v=i*g,D=E==="RGBA"?new Float32Array(v*4):new Float32Array(v*3);let B=4,x=0,S=1,F=2,R=3,K=0,L=v,N=v*2,V=-1;w==="RGB"&&(B=3,x=0,S=1,F=2,R=-1),E==="RGBA"?V=v*3:E==="RBG"?(K=0,N=v,L=v*2):E==="BGR"&&(N=0,L=v,K=v*2);for(let k=0;k{const i=typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement,g=typeof ImageData<"u"&&a instanceof ImageData,p=typeof ImageBitmap<"u"&&a instanceof ImageBitmap,h=typeof a=="string";let C,w=n??{};const E=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},v=D=>typeof HTMLCanvasElement<"u"&&D instanceof HTMLCanvasElement||D instanceof OffscreenCanvas?D.getContext("2d"):null;if(i){const D=E();D.width=a.width,D.height=a.height;const B=v(D);if(B!=null){let x=a.height,S=a.width;if(n!==void 0&&n.resizedHeight!==void 0&&n.resizedWidth!==void 0&&(x=n.resizedHeight,S=n.resizedWidth),n!==void 0){if(w=n,n.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");w.tensorFormat="RGBA",w.height=x,w.width=S}else w.tensorFormat="RGBA",w.height=x,w.width=S;B.drawImage(a,0,0),C=B.getImageData(0,0,S,x).data}else throw new Error("Can not access image data")}else if(g){let D,B;if(n!==void 0&&n.resizedWidth!==void 0&&n.resizedHeight!==void 0?(D=n.resizedHeight,B=n.resizedWidth):(D=a.height,B=a.width),n!==void 0&&(w=n),w.format="RGBA",w.height=D,w.width=B,n!==void 0){const x=E();x.width=B,x.height=D;const S=v(x);if(S!=null)S.putImageData(a,0,0),C=S.getImageData(0,0,B,D).data;else throw new Error("Can not access image data")}else C=a.data}else if(p){if(n===void 0)throw new Error("Please provide image config with format for Imagebitmap");const D=E();D.width=a.width,D.height=a.height;const B=v(D);if(B!=null){const x=a.height,S=a.width;return B.drawImage(a,0,0,S,x),C=B.getImageData(0,0,S,x).data,w.height=x,w.width=S,Yl(C,w)}else throw new Error("Can not access image data")}else{if(h)return new Promise((D,B)=>{const x=E(),S=v(x);if(!a||!S)return B();const F=new Image;F.crossOrigin="Anonymous",F.src=a,F.onload=()=>{x.width=F.width,x.height=F.height,S.drawImage(F,0,0,x.width,x.height);const R=S.getImageData(0,0,x.width,x.height);w.height=x.height,w.width=x.width,D(Yl(R.data,w))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(C!==void 0)return Yl(C,w);throw new Error("Input data provided is not supported - aborted tensor creation")},s6=(a,n)=>{const{width:i,height:g,download:p,dispose:h}=n,C=[1,g,i,4];return new ha({location:"texture",type:"float32",texture:a,dims:C,download:p,dispose:h})},a6=(a,n)=>{const{dataType:i,dims:g,download:p,dispose:h}=n;return new ha({location:"gpu-buffer",type:i??"float32",gpuBuffer:a,dims:g,download:p,dispose:h})},n6=(a,n)=>{const{dataType:i,dims:g,download:p,dispose:h}=n;return new ha({location:"ml-tensor",type:i??"float32",mlTensor:a,dims:g,download:p,dispose:h})},i6=(a,n,i)=>new ha({location:"cpu-pinned",type:a,data:n,dims:i??[n.length]}),so=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),W0=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]);let Qf=!1;const o6=()=>{if(!Qf){Qf=!0;const a=typeof BigInt64Array<"u"&&BigInt64Array.from,n=typeof BigUint64Array<"u"&&BigUint64Array.from,i=globalThis.Float16Array,g=typeof i<"u"&&i.from;a&&(so.set("int64",BigInt64Array),W0.set(BigInt64Array,"int64")),n&&(so.set("uint64",BigUint64Array),W0.set(BigUint64Array,"uint64")),g?(so.set("float16",i),W0.set(i,"float16")):so.set("float16",Uint16Array)}},l6=a=>{let n=1;for(let i=0;i{switch(a.location){case"cpu":return new ha(a.type,a.data,n);case"cpu-pinned":return new ha({location:"cpu-pinned",data:a.data,type:a.type,dims:n});case"texture":return new ha({location:"texture",texture:a.texture,type:a.type,dims:n});case"gpu-buffer":return new ha({location:"gpu-buffer",gpuBuffer:a.gpuBuffer,type:a.type,dims:n});case"ml-tensor":return new ha({location:"ml-tensor",mlTensor:a.mlTensor,type:a.type,dims:n});default:throw new Error(`tensorReshape: tensor location ${a.location} is not supported`)}};let ha=class{constructor(n,i,g){o6();let p,h;if(typeof n=="object"&&"location"in n)switch(this.dataLocation=n.location,p=n.type,h=n.dims,n.location){case"cpu-pinned":{const w=so.get(p);if(!w)throw new TypeError(`unsupported type "${p}" to create tensor from pinned buffer`);if(!(n.data instanceof w))throw new TypeError(`buffer should be of type ${w.name}`);this.cpuData=n.data;break}case"texture":{if(p!=="float32")throw new TypeError(`unsupported type "${p}" to create tensor from texture`);this.gpuTextureData=n.texture,this.downloader=n.download,this.disposer=n.dispose;break}case"gpu-buffer":{if(p!=="float32"&&p!=="float16"&&p!=="int32"&&p!=="int64"&&p!=="uint32"&&p!=="uint8"&&p!=="bool"&&p!=="uint4"&&p!=="int4")throw new TypeError(`unsupported type "${p}" to create tensor from gpu buffer`);this.gpuBufferData=n.gpuBuffer,this.downloader=n.download,this.disposer=n.dispose;break}case"ml-tensor":{if(p!=="float32"&&p!=="float16"&&p!=="int32"&&p!=="int64"&&p!=="uint32"&&p!=="uint64"&&p!=="int8"&&p!=="uint8"&&p!=="bool"&&p!=="uint4"&&p!=="int4")throw new TypeError(`unsupported type "${p}" to create tensor from MLTensor`);this.mlTensorData=n.mlTensor,this.downloader=n.download,this.disposer=n.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let w,E;if(typeof n=="string")if(p=n,E=g,n==="string"){if(!Array.isArray(i))throw new TypeError("A string tensor's data must be a string array.");w=i}else{const v=so.get(n);if(v===void 0)throw new TypeError(`Unsupported tensor type: ${n}.`);if(Array.isArray(i)){if(n==="float16"&&v===Uint16Array||n==="uint4"||n==="int4")throw new TypeError(`Creating a ${n} tensor from number array is not supported. Please use ${v.name} as data.`);n==="uint64"||n==="int64"?w=v.from(i,BigInt):w=v.from(i)}else if(i instanceof v)w=i;else if(i instanceof Uint8ClampedArray)if(n==="uint8")w=Uint8Array.from(i);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(n==="float16"&&i instanceof Uint16Array&&v!==Uint16Array)w=new globalThis.Float16Array(i.buffer,i.byteOffset,i.length);else throw new TypeError(`A ${p} tensor's data must be type of ${v}`)}else if(E=i,Array.isArray(n)){if(n.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");const v=typeof n[0];if(v==="string")p="string",w=n;else if(v==="boolean")p="bool",w=Uint8Array.from(n);else throw new TypeError(`Invalid element type of data array: ${v}.`)}else if(n instanceof Uint8ClampedArray)p="uint8",w=Uint8Array.from(n);else{const v=W0.get(n.constructor);if(v===void 0)throw new TypeError(`Unsupported type for tensor data: ${n.constructor}.`);p=v,w=n}if(E===void 0)E=[w.length];else if(!Array.isArray(E))throw new TypeError("A tensor's dims must be a number array");h=E,this.cpuData=w,this.dataLocation="cpu"}const C=l6(h);if(this.cpuData&&C!==this.cpuData.length&&!((p==="uint4"||p==="int4")&&Math.ceil(C/2)===this.cpuData.length))throw new Error(`Tensor's size(${C}) does not match data length(${this.cpuData.length}).`);this.type=p,this.dims=h,this.size=C}static async fromImage(n,i){return r6(n,i)}static fromTexture(n,i){return s6(n,i)}static fromGpuBuffer(n,i){return a6(n,i)}static fromMLTensor(n,i){return n6(n,i)}static fromPinnedBuffer(n,i,g){return i6(n,i,g)}toDataURL(n){return A6(this,n)}toImageData(n){return t6(this,n)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(n){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;const i=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=i,n&&this.disposer&&(this.disposer(),this.disposer=void 0),i}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(n){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return c6(this,n)}};const to=ha,Mm=(a,n)=>{(typeof Oa.trace>"u"?!Oa.wasm.trace:!Oa.trace)||console.timeStamp(`${a}::ORT::${n}`)},Bm=(a,n)=>{var p;const i=((p=new Error().stack)==null?void 0:p.split(/\r\n|\r|\n/g))||[];let g=!1;for(let h=0;h{(typeof Oa.trace>"u"?!Oa.wasm.trace:!Oa.trace)||Bm("BEGIN",a)},q2=a=>{(typeof Oa.trace>"u"?!Oa.wasm.trace:!Oa.trace)||Bm("END",a)};let u6=class vm{constructor(n){this.handler=n}async run(n,i,g){J2();const p={};let h={};if(typeof n!="object"||n===null||n instanceof to||Array.isArray(n))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let C=!0;if(typeof i=="object"){if(i===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(i instanceof to)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(i)){if(i.length===0)throw new TypeError("'fetches' cannot be an empty array.");C=!1;for(const v of i){if(typeof v!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(v)===-1)throw new RangeError(`'fetches' contains invalid output name: ${v}.`);p[v]=null}if(typeof g=="object"&&g!==null)h=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else{let v=!1;const D=Object.getOwnPropertyNames(i);for(const B of this.outputNames)if(D.indexOf(B)!==-1){const x=i[B];(x===null||x instanceof to)&&(v=!0,C=!1,p[B]=x)}if(v){if(typeof g=="object"&&g!==null)h=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else h=i}}else if(typeof i<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(const v of this.inputNames)if(typeof n[v]>"u")throw new Error(`input '${v}' is missing in 'feeds'.`);if(C)for(const v of this.outputNames)p[v]=null;const w=await this.handler.run(n,p,h),E={};for(const v in w)if(Object.hasOwnProperty.call(w,v)){const D=w[v];D instanceof to?E[v]=D:E[v]=new to(D.type,D.data,D.dims)}return q2(),E}async release(){return this.handler.dispose()}static async create(n,i,g,p){J2();let h,C={};if(typeof n=="string"){if(h=n,typeof i=="object"&&i!==null)C=i;else if(typeof i<"u")throw new TypeError("'options' must be an object.")}else if(n instanceof Uint8Array){if(h=n,typeof i=="object"&&i!==null)C=i;else if(typeof i<"u")throw new TypeError("'options' must be an object.")}else if(n instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&n instanceof SharedArrayBuffer){const D=n;let B=0,x=n.byteLength;if(typeof i=="object"&&i!==null)C=i;else if(typeof i=="number"){if(B=i,!Number.isSafeInteger(B))throw new RangeError("'byteOffset' must be an integer.");if(B<0||B>=D.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${D.byteLength}).`);if(x=n.byteLength-B,typeof g=="number"){if(x=g,!Number.isSafeInteger(x))throw new RangeError("'byteLength' must be an integer.");if(x<=0||B+x>D.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${D.byteLength-B}].`);if(typeof p=="object"&&p!==null)C=p;else if(typeof p<"u")throw new TypeError("'options' must be an object.")}else if(typeof g<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof i<"u")throw new TypeError("'options' must be an object.");h=new Uint8Array(D,B,x)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");const[w,E]=await q8(C),v=await w.createInferenceSessionHandler(h,E);return q2(),new vm(v)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}get inputMetadata(){return this.handler.inputMetadata}get outputMetadata(){return this.handler.outputMetadata}};const d6=u6;var f6=Object.freeze({__proto__:null,InferenceSession:d6,TRACE:Mm,TRACE_FUNC_BEGIN:J2,TRACE_FUNC_END:q2,Tensor:to,env:e6,registerBackend:Z8});/*! + * ONNX Runtime Web v1.22.0-dev.20250409-89f8206ba4 + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */var Cc=Object.defineProperty,g6=Object.getOwnPropertyDescriptor,p6=Object.getOwnPropertyNames,m6=Object.prototype.hasOwnProperty,h6=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(n,i)=>(typeof require<"u"?require:n)[i]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')}),bA=(a,n)=>()=>(a&&(n=a(a=0)),n),mo=(a,n)=>{for(var i in n)Cc(a,i,{get:n[i],enumerable:!0})},C6=(a,n,i,g)=>{if(n&&typeof n=="object"||typeof n=="function")for(let p of p6(n))!m6.call(a,p)&&p!==i&&Cc(a,p,{get:()=>n[p],enumerable:!(g=g6(n,p))||g.enumerable});return a},t0=a=>C6(Cc({},"__esModule",{value:!0}),a),Qo,Jn,Gi,Ff,xm,ym=bA(()=>{Qo=new Map,Jn=[],Gi=(a,n,i)=>{if(n&&typeof n.init=="function"&&typeof n.createInferenceSessionHandler=="function"){let g=Qo.get(a);if(g===void 0)Qo.set(a,{backend:n,priority:i});else{if(g.priority>i)return;if(g.priority===i&&g.backend!==n)throw new Error(`cannot register backend "${a}" using priority ${i}`)}if(i>=0){let p=Jn.indexOf(a);p!==-1&&Jn.splice(p,1);for(let h=0;h{let n=Qo.get(a);if(!n)return"backend not found.";if(n.initialized)return n.backend;if(n.aborted)return n.error;{let i=!!n.initPromise;try{return i||(n.initPromise=n.backend.init(a)),await n.initPromise,n.initialized=!0,n.backend}catch(g){return i||(n.error=`${g}`,n.aborted=!0),n.error}finally{delete n.initPromise}}},xm=async a=>{let n=a.executionProviders||[],i=n.map(E=>typeof E=="string"?E:E.name),g=i.length===0?Jn:i,p,h=[],C=new Set;for(let E of g){let v=await Ff(E);typeof v=="string"?h.push({name:E,err:v}):(p||(p=v),p===v&&C.add(E))}if(!p)throw new Error(`no available backend found. ERR: ${h.map(E=>`[${E.name}] ${E.err}`).join(", ")}`);for(let{name:E,err:v}of h)i.includes(E)&&console.warn(`removing requested execution provider "${E}" from session options because it is not available: ${v}`);let w=n.filter(E=>C.has(typeof E=="string"?E:E.name));return[p,new Proxy(a,{get:(E,v)=>v==="executionProviders"?w:Reflect.get(E,v)})]}}),b6=bA(()=>{ym()}),Dm,I6=bA(()=>{Dm="1.22.0-dev.20250409-89f8206ba4"}),Hl,ma,Tm=bA(()=>{I6(),Hl="warning",ma={wasm:{},webgl:{},webgpu:{},versions:{common:Dm},set logLevel(a){if(a!==void 0){if(typeof a!="string"||["verbose","info","warning","error","fatal"].indexOf(a)===-1)throw new Error(`Unsupported logging level: ${a}`);Hl=a}},get logLevel(){return Hl}},Object.defineProperty(ma,"logLevel",{enumerable:!0})}),Ir,w6=bA(()=>{Tm(),Ir=ma}),Gm,Pm,k6=bA(()=>{Gm=(a,n)=>{let i=typeof document<"u"?document.createElement("canvas"):new OffscreenCanvas(1,1);i.width=a.dims[3],i.height=a.dims[2];let g=i.getContext("2d");if(g!=null){let p,h;(n==null?void 0:n.tensorLayout)!==void 0&&n.tensorLayout==="NHWC"?(p=a.dims[2],h=a.dims[3]):(p=a.dims[3],h=a.dims[2]);let C=(n==null?void 0:n.format)!==void 0?n.format:"RGB",w=n==null?void 0:n.norm,E,v;w===void 0||w.mean===void 0?E=[255,255,255,255]:typeof w.mean=="number"?E=[w.mean,w.mean,w.mean,w.mean]:(E=[w.mean[0],w.mean[1],w.mean[2],0],w.mean[3]!==void 0&&(E[3]=w.mean[3])),w===void 0||w.bias===void 0?v=[0,0,0,0]:typeof w.bias=="number"?v=[w.bias,w.bias,w.bias,w.bias]:(v=[w.bias[0],w.bias[1],w.bias[2],0],w.bias[3]!==void 0&&(v[3]=w.bias[3]));let D=h*p,B=0,x=D,S=D*2,F=-1;C==="RGBA"?(B=0,x=D,S=D*2,F=D*3):C==="RGB"?(B=0,x=D,S=D*2):C==="RBG"&&(B=0,S=D,x=D*2);for(let R=0;R{let i=typeof document<"u"?document.createElement("canvas").getContext("2d"):new OffscreenCanvas(1,1).getContext("2d"),g;if(i!=null){let p,h,C;(n==null?void 0:n.tensorLayout)!==void 0&&n.tensorLayout==="NHWC"?(p=a.dims[2],h=a.dims[1],C=a.dims[3]):(p=a.dims[3],h=a.dims[2],C=a.dims[1]);let w=n!==void 0&&n.format!==void 0?n.format:"RGB",E=n==null?void 0:n.norm,v,D;E===void 0||E.mean===void 0?v=[255,255,255,255]:typeof E.mean=="number"?v=[E.mean,E.mean,E.mean,E.mean]:(v=[E.mean[0],E.mean[1],E.mean[2],255],E.mean[3]!==void 0&&(v[3]=E.mean[3])),E===void 0||E.bias===void 0?D=[0,0,0,0]:typeof E.bias=="number"?D=[E.bias,E.bias,E.bias,E.bias]:(D=[E.bias[0],E.bias[1],E.bias[2],0],E.bias[3]!==void 0&&(D[3]=E.bias[3]));let B=h*p;if(n!==void 0&&(n.format!==void 0&&C===4&&n.format!=="RGBA"||C===3&&n.format!=="RGB"&&n.format!=="BGR"))throw new Error("Tensor format doesn't match input tensor dims");let x=4,S=0,F=1,R=2,K=3,L=0,N=B,V=B*2,d=-1;w==="RGBA"?(L=0,N=B,V=B*2,d=B*3):w==="RGB"?(L=0,N=B,V=B*2):w==="RBG"&&(L=0,V=B,N=B*2),g=i.createImageData(p,h);for(let k=0;k{bc(),x0=(a,n)=>{if(a===void 0)throw new Error("Image buffer must be defined");if(n.height===void 0||n.width===void 0)throw new Error("Image height and width must be defined");if(n.tensorLayout==="NHWC")throw new Error("NHWC Tensor layout is not supported yet");let{height:i,width:g}=n,p=n.norm??{mean:255,bias:0},h,C;typeof p.mean=="number"?h=[p.mean,p.mean,p.mean,p.mean]:h=[p.mean[0],p.mean[1],p.mean[2],p.mean[3]??255],typeof p.bias=="number"?C=[p.bias,p.bias,p.bias,p.bias]:C=[p.bias[0],p.bias[1],p.bias[2],p.bias[3]??0];let w=n.format!==void 0?n.format:"RGBA",E=n.tensorFormat!==void 0&&n.tensorFormat!==void 0?n.tensorFormat:"RGB",v=i*g,D=E==="RGBA"?new Float32Array(v*4):new Float32Array(v*3),B=4,x=0,S=1,F=2,R=3,K=0,L=v,N=v*2,V=-1;w==="RGB"&&(B=3,x=0,S=1,F=2,R=-1),E==="RGBA"?V=v*3:E==="RBG"?(K=0,N=v,L=v*2):E==="BGR"&&(N=0,L=v,K=v*2);for(let d=0;d{let i=typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement,g=typeof ImageData<"u"&&a instanceof ImageData,p=typeof ImageBitmap<"u"&&a instanceof ImageBitmap,h=typeof a=="string",C,w=n??{},E=()=>{if(typeof document<"u")return document.createElement("canvas");if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(1,1);throw new Error("Canvas is not supported")},v=D=>typeof HTMLCanvasElement<"u"&&D instanceof HTMLCanvasElement||D instanceof OffscreenCanvas?D.getContext("2d"):null;if(i){let D=E();D.width=a.width,D.height=a.height;let B=v(D);if(B!=null){let x=a.height,S=a.width;if(n!==void 0&&n.resizedHeight!==void 0&&n.resizedWidth!==void 0&&(x=n.resizedHeight,S=n.resizedWidth),n!==void 0){if(w=n,n.tensorFormat!==void 0)throw new Error("Image input config format must be RGBA for HTMLImageElement");w.tensorFormat="RGBA",w.height=x,w.width=S}else w.tensorFormat="RGBA",w.height=x,w.width=S;B.drawImage(a,0,0),C=B.getImageData(0,0,S,x).data}else throw new Error("Can not access image data")}else if(g){let D,B;if(n!==void 0&&n.resizedWidth!==void 0&&n.resizedHeight!==void 0?(D=n.resizedHeight,B=n.resizedWidth):(D=a.height,B=a.width),n!==void 0&&(w=n),w.format="RGBA",w.height=D,w.width=B,n!==void 0){let x=E();x.width=B,x.height=D;let S=v(x);if(S!=null)S.putImageData(a,0,0),C=S.getImageData(0,0,B,D).data;else throw new Error("Can not access image data")}else C=a.data}else if(p){if(n===void 0)throw new Error("Please provide image config with format for Imagebitmap");let D=E();D.width=a.width,D.height=a.height;let B=v(D);if(B!=null){let x=a.height,S=a.width;return B.drawImage(a,0,0,S,x),C=B.getImageData(0,0,S,x).data,w.height=x,w.width=S,x0(C,w)}else throw new Error("Can not access image data")}else{if(h)return new Promise((D,B)=>{let x=E(),S=v(x);if(!a||!S)return B();let F=new Image;F.crossOrigin="Anonymous",F.src=a,F.onload=()=>{x.width=F.width,x.height=F.height,S.drawImage(F,0,0,x.width,x.height);let R=S.getImageData(0,0,x.width,x.height);w.height=x.height,w.width=x.width,D(x0(R.data,w))}});throw new Error("Input data provided is not supported - aborted tensor creation")}if(C!==void 0)return x0(C,w);throw new Error("Input data provided is not supported - aborted tensor creation")},Fm=(a,n)=>{let{width:i,height:g,download:p,dispose:h}=n,C=[1,g,i,4];return new oa({location:"texture",type:"float32",texture:a,dims:C,download:p,dispose:h})},Sm=(a,n)=>{let{dataType:i,dims:g,download:p,dispose:h}=n;return new oa({location:"gpu-buffer",type:i??"float32",gpuBuffer:a,dims:g,download:p,dispose:h})},Om=(a,n)=>{let{dataType:i,dims:g,download:p,dispose:h}=n;return new oa({location:"ml-tensor",type:i??"float32",mlTensor:a,dims:g,download:p,dispose:h})},zm=(a,n,i)=>new oa({location:"cpu-pinned",type:a,data:n,dims:i??[n.length]})}),Di,Yo,Vl,Nm,M6=bA(()=>{Di=new Map([["float32",Float32Array],["uint8",Uint8Array],["int8",Int8Array],["uint16",Uint16Array],["int16",Int16Array],["int32",Int32Array],["bool",Uint8Array],["float64",Float64Array],["uint32",Uint32Array],["int4",Uint8Array],["uint4",Uint8Array]]),Yo=new Map([[Float32Array,"float32"],[Uint8Array,"uint8"],[Int8Array,"int8"],[Uint16Array,"uint16"],[Int16Array,"int16"],[Int32Array,"int32"],[Float64Array,"float64"],[Uint32Array,"uint32"]]),Vl=!1,Nm=()=>{if(!Vl){Vl=!0;let a=typeof BigInt64Array<"u"&&BigInt64Array.from,n=typeof BigUint64Array<"u"&&BigUint64Array.from,i=globalThis.Float16Array,g=typeof i<"u"&&i.from;a&&(Di.set("int64",BigInt64Array),Yo.set(BigInt64Array,"int64")),n&&(Di.set("uint64",BigUint64Array),Yo.set(BigUint64Array,"uint64")),g?(Di.set("float16",i),Yo.set(i,"float16")):Di.set("float16",Uint16Array)}}}),Lm,_m,B6=bA(()=>{bc(),Lm=a=>{let n=1;for(let i=0;i{switch(a.location){case"cpu":return new oa(a.type,a.data,n);case"cpu-pinned":return new oa({location:"cpu-pinned",data:a.data,type:a.type,dims:n});case"texture":return new oa({location:"texture",texture:a.texture,type:a.type,dims:n});case"gpu-buffer":return new oa({location:"gpu-buffer",gpuBuffer:a.gpuBuffer,type:a.type,dims:n});case"ml-tensor":return new oa({location:"ml-tensor",mlTensor:a.mlTensor,type:a.type,dims:n});default:throw new Error(`tensorReshape: tensor location ${a.location} is not supported`)}}}),oa,bc=bA(()=>{k6(),E6(),M6(),B6(),oa=class{constructor(a,n,i){Nm();let g,p;if(typeof a=="object"&&"location"in a)switch(this.dataLocation=a.location,g=a.type,p=a.dims,a.location){case"cpu-pinned":{let C=Di.get(g);if(!C)throw new TypeError(`unsupported type "${g}" to create tensor from pinned buffer`);if(!(a.data instanceof C))throw new TypeError(`buffer should be of type ${C.name}`);this.cpuData=a.data;break}case"texture":{if(g!=="float32")throw new TypeError(`unsupported type "${g}" to create tensor from texture`);this.gpuTextureData=a.texture,this.downloader=a.download,this.disposer=a.dispose;break}case"gpu-buffer":{if(g!=="float32"&&g!=="float16"&&g!=="int32"&&g!=="int64"&&g!=="uint32"&&g!=="uint8"&&g!=="bool"&&g!=="uint4"&&g!=="int4")throw new TypeError(`unsupported type "${g}" to create tensor from gpu buffer`);this.gpuBufferData=a.gpuBuffer,this.downloader=a.download,this.disposer=a.dispose;break}case"ml-tensor":{if(g!=="float32"&&g!=="float16"&&g!=="int32"&&g!=="int64"&&g!=="uint32"&&g!=="uint64"&&g!=="int8"&&g!=="uint8"&&g!=="bool"&&g!=="uint4"&&g!=="int4")throw new TypeError(`unsupported type "${g}" to create tensor from MLTensor`);this.mlTensorData=a.mlTensor,this.downloader=a.download,this.disposer=a.dispose;break}default:throw new Error(`Tensor constructor: unsupported location '${this.dataLocation}'`)}else{let C,w;if(typeof a=="string")if(g=a,w=i,a==="string"){if(!Array.isArray(n))throw new TypeError("A string tensor's data must be a string array.");C=n}else{let E=Di.get(a);if(E===void 0)throw new TypeError(`Unsupported tensor type: ${a}.`);if(Array.isArray(n)){if(a==="float16"&&E===Uint16Array||a==="uint4"||a==="int4")throw new TypeError(`Creating a ${a} tensor from number array is not supported. Please use ${E.name} as data.`);a==="uint64"||a==="int64"?C=E.from(n,BigInt):C=E.from(n)}else if(n instanceof E)C=n;else if(n instanceof Uint8ClampedArray)if(a==="uint8")C=Uint8Array.from(n);else throw new TypeError("A Uint8ClampedArray tensor's data must be type of uint8");else if(a==="float16"&&n instanceof Uint16Array&&E!==Uint16Array)C=new globalThis.Float16Array(n.buffer,n.byteOffset,n.length);else throw new TypeError(`A ${g} tensor's data must be type of ${E}`)}else if(w=n,Array.isArray(a)){if(a.length===0)throw new TypeError("Tensor type cannot be inferred from an empty array.");let E=typeof a[0];if(E==="string")g="string",C=a;else if(E==="boolean")g="bool",C=Uint8Array.from(a);else throw new TypeError(`Invalid element type of data array: ${E}.`)}else if(a instanceof Uint8ClampedArray)g="uint8",C=Uint8Array.from(a);else{let E=Yo.get(a.constructor);if(E===void 0)throw new TypeError(`Unsupported type for tensor data: ${a.constructor}.`);g=E,C=a}if(w===void 0)w=[C.length];else if(!Array.isArray(w))throw new TypeError("A tensor's dims must be a number array");p=w,this.cpuData=C,this.dataLocation="cpu"}let h=Lm(p);if(this.cpuData&&h!==this.cpuData.length&&!((g==="uint4"||g==="int4")&&Math.ceil(h/2)===this.cpuData.length))throw new Error(`Tensor's size(${h}) does not match data length(${this.cpuData.length}).`);this.type=g,this.dims=p,this.size=h}static async fromImage(a,n){return Qm(a,n)}static fromTexture(a,n){return Fm(a,n)}static fromGpuBuffer(a,n){return Sm(a,n)}static fromMLTensor(a,n){return Om(a,n)}static fromPinnedBuffer(a,n,i){return zm(a,n,i)}toDataURL(a){return Gm(this,a)}toImageData(a){return Pm(this,a)}get data(){if(this.ensureValid(),!this.cpuData)throw new Error("The data is not on CPU. Use `getData()` to download GPU data to CPU, or use `texture` or `gpuBuffer` property to access the GPU data directly.");return this.cpuData}get location(){return this.dataLocation}get texture(){if(this.ensureValid(),!this.gpuTextureData)throw new Error("The data is not stored as a WebGL texture.");return this.gpuTextureData}get gpuBuffer(){if(this.ensureValid(),!this.gpuBufferData)throw new Error("The data is not stored as a WebGPU buffer.");return this.gpuBufferData}get mlTensor(){if(this.ensureValid(),!this.mlTensorData)throw new Error("The data is not stored as a WebNN MLTensor.");return this.mlTensorData}async getData(a){switch(this.ensureValid(),this.dataLocation){case"cpu":case"cpu-pinned":return this.data;case"texture":case"gpu-buffer":case"ml-tensor":{if(!this.downloader)throw new Error("The current tensor is not created with a specified data downloader.");if(this.isDownloading)throw new Error("The current tensor is being downloaded.");try{this.isDownloading=!0;let n=await this.downloader();return this.downloader=void 0,this.dataLocation="cpu",this.cpuData=n,a&&this.disposer&&(this.disposer(),this.disposer=void 0),n}finally{this.isDownloading=!1}}default:throw new Error(`cannot get data from location: ${this.dataLocation}`)}}dispose(){if(this.isDownloading)throw new Error("The current tensor is being downloaded.");this.disposer&&(this.disposer(),this.disposer=void 0),this.cpuData=void 0,this.gpuTextureData=void 0,this.gpuBufferData=void 0,this.mlTensorData=void 0,this.downloader=void 0,this.isDownloading=void 0,this.dataLocation="none"}ensureValid(){if(this.dataLocation==="none")throw new Error("The tensor is disposed.")}reshape(a){if(this.ensureValid(),this.downloader||this.disposer)throw new Error("Cannot reshape a tensor that owns GPU resource.");return _m(this,a)}}}),Sa,Rm=bA(()=>{bc(),Sa=oa}),r0,Ul,za,Ca,jm=bA(()=>{Tm(),r0=(a,n)=>{(typeof ma.trace>"u"?!ma.wasm.trace:!ma.trace)||console.timeStamp(`${a}::ORT::${n}`)},Ul=(a,n)=>{var p;let i=((p=new Error().stack)==null?void 0:p.split(/\r\n|\r|\n/g))||[],g=!1;for(let h=0;h{(typeof ma.trace>"u"?!ma.wasm.trace:!ma.trace)||Ul("BEGIN",a)},Ca=a=>{(typeof ma.trace>"u"?!ma.wasm.trace:!ma.trace)||Ul("END",a)}}),Wm,v6=bA(()=>{ym(),Rm(),jm(),Wm=class Ym{constructor(n){this.handler=n}async run(n,i,g){za();let p={},h={};if(typeof n!="object"||n===null||n instanceof Sa||Array.isArray(n))throw new TypeError("'feeds' must be an object that use input names as keys and OnnxValue as corresponding values.");let C=!0;if(typeof i=="object"){if(i===null)throw new TypeError("Unexpected argument[1]: cannot be null.");if(i instanceof Sa)throw new TypeError("'fetches' cannot be a Tensor");if(Array.isArray(i)){if(i.length===0)throw new TypeError("'fetches' cannot be an empty array.");C=!1;for(let v of i){if(typeof v!="string")throw new TypeError("'fetches' must be a string array or an object.");if(this.outputNames.indexOf(v)===-1)throw new RangeError(`'fetches' contains invalid output name: ${v}.`);p[v]=null}if(typeof g=="object"&&g!==null)h=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else{let v=!1,D=Object.getOwnPropertyNames(i);for(let B of this.outputNames)if(D.indexOf(B)!==-1){let x=i[B];(x===null||x instanceof Sa)&&(v=!0,C=!1,p[B]=x)}if(v){if(typeof g=="object"&&g!==null)h=g;else if(typeof g<"u")throw new TypeError("'options' must be an object.")}else h=i}}else if(typeof i<"u")throw new TypeError("Unexpected argument[1]: must be 'fetches' or 'options'.");for(let v of this.inputNames)if(typeof n[v]>"u")throw new Error(`input '${v}' is missing in 'feeds'.`);if(C)for(let v of this.outputNames)p[v]=null;let w=await this.handler.run(n,p,h),E={};for(let v in w)if(Object.hasOwnProperty.call(w,v)){let D=w[v];D instanceof Sa?E[v]=D:E[v]=new Sa(D.type,D.data,D.dims)}return Ca(),E}async release(){return this.handler.dispose()}static async create(n,i,g,p){za();let h,C={};if(typeof n=="string"){if(h=n,typeof i=="object"&&i!==null)C=i;else if(typeof i<"u")throw new TypeError("'options' must be an object.")}else if(n instanceof Uint8Array){if(h=n,typeof i=="object"&&i!==null)C=i;else if(typeof i<"u")throw new TypeError("'options' must be an object.")}else if(n instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&n instanceof SharedArrayBuffer){let D=n,B=0,x=n.byteLength;if(typeof i=="object"&&i!==null)C=i;else if(typeof i=="number"){if(B=i,!Number.isSafeInteger(B))throw new RangeError("'byteOffset' must be an integer.");if(B<0||B>=D.byteLength)throw new RangeError(`'byteOffset' is out of range [0, ${D.byteLength}).`);if(x=n.byteLength-B,typeof g=="number"){if(x=g,!Number.isSafeInteger(x))throw new RangeError("'byteLength' must be an integer.");if(x<=0||B+x>D.byteLength)throw new RangeError(`'byteLength' is out of range (0, ${D.byteLength-B}].`);if(typeof p=="object"&&p!==null)C=p;else if(typeof p<"u")throw new TypeError("'options' must be an object.")}else if(typeof g<"u")throw new TypeError("'byteLength' must be a number.")}else if(typeof i<"u")throw new TypeError("'options' must be an object.");h=new Uint8Array(D,B,x)}else throw new TypeError("Unexpected argument[0]: must be 'path' or 'buffer'.");let[w,E]=await xm(C),v=await w.createInferenceSessionHandler(h,E);return Ca(),new Ym(v)}startProfiling(){this.handler.startProfiling()}endProfiling(){this.handler.endProfiling()}get inputNames(){return this.handler.inputNames}get outputNames(){return this.handler.outputNames}get inputMetadata(){return this.handler.inputMetadata}get outputMetadata(){return this.handler.outputMetadata}}}),Ic,x6=bA(()=>{v6(),Ic=Wm}),y6=bA(()=>{}),D6=bA(()=>{}),T6=bA(()=>{}),G6=bA(()=>{}),Hm={};mo(Hm,{InferenceSession:()=>Ic,TRACE:()=>r0,TRACE_FUNC_BEGIN:()=>za,TRACE_FUNC_END:()=>Ca,Tensor:()=>Sa,env:()=>Ir,registerBackend:()=>Gi});var Na=bA(()=>{b6(),w6(),x6(),Rm(),y6(),D6(),jm(),T6(),G6()}),wc=bA(()=>{}),Vm={};mo(Vm,{default:()=>Um});var Kl,Xl,Um,P6=bA(()=>{var a;qC(),zi(),kc(),Kl="ort-wasm-proxy-worker",Xl=((a=globalThis.self)==null?void 0:a.name)===Kl,Xl&&(self.onmessage=n=>{let{type:i,in:g}=n.data;try{switch(i){case"init-wasm":Ec(g.wasm).then(()=>{Rc(g).then(()=>{postMessage({type:i})},p=>{postMessage({type:i,err:p})})},p=>{postMessage({type:i,err:p})});break;case"init-ep":{let{epName:p,env:h}=g;jc(h,p).then(()=>{postMessage({type:i})},C=>{postMessage({type:i,err:C})});break}case"copy-from":{let{buffer:p}=g,h=el(p);postMessage({type:i,out:h});break}case"create":{let{model:p,options:h}=g;Wc(p,h).then(C=>{postMessage({type:i,out:C})},C=>{postMessage({type:i,err:C})});break}case"release":Yc(g),postMessage({type:i});break;case"run":{let{sessionId:p,inputIndices:h,inputs:C,outputIndices:w,options:E}=g;Hc(p,h,C,w,new Array(w.length).fill(null),E).then(v=>{v.some(D=>D[3]!=="cpu")?postMessage({type:i,err:"Proxy does not support non-cpu tensor location."}):postMessage({type:i,out:v},Uc([...C,...v]))},v=>{postMessage({type:i,err:v})});break}case"end-profiling":Vc(g),postMessage({type:i});break;default:}}catch(p){postMessage({type:i,err:p})}}),Um=Xl?null:n=>new Worker(n??ia,{type:"module",name:Kl})}),Km={};mo(Km,{default:()=>Xm});var Zl,Jl,Xm,Sf,Q6=bA(()=>{var a,n;Jl=(Zl=import.meta.url,async function(i={}){var Vr;var g,p,h=i,C=new Promise((P,j)=>{g=P,p=j}),w=typeof window=="object",E=typeof WorkerGlobalScope<"u",v=E&&((Vr=self.name)==null?void 0:Vr.startsWith("em-pthread"));h.mountExternalData=(P,j)=>{P.startsWith("./")&&(P=P.substring(2)),(h.Eb||(h.Eb=new Map)).set(P,j)},h.unmountExternalData=()=>{delete h.Eb};var D=globalThis.SharedArrayBuffer??new WebAssembly.Memory({initial:0,maximum:0,pc:!0}).buffer.constructor;let B=P=>async(...j)=>{var J;try{if(h.Fb)throw Error("Session already started");let ae=h.Fb={dc:j[0],errors:[]},ce=await P(...j);if(h.Fb!==ae)throw Error("Session mismatch");(J=h.Jb)==null||J.flush();let Se=ae.errors;if(0uA),0{if(P==="webgpu"){[h.Jb,h.Ub,h.Yb,h.Kb,h.Xb,h.jb,h.Zb,h.ac,h.Vb,h.Wb,h.$b]=j;let J=h.Jb;h.jsepRegisterBuffer=(ae,ce,Se,Xe)=>J.registerBuffer(ae,ce,Se,Xe),h.jsepGetBuffer=ae=>J.getBuffer(ae),h.jsepCreateDownloader=(ae,ce,Se)=>J.createDownloader(ae,ce,Se),h.jsepOnCreateSession=ae=>{J.onCreateSession(ae)},h.jsepOnReleaseSession=ae=>{J.onReleaseSession(ae)},h.jsepOnRunStart=ae=>J.onRunStart(ae),h.bc=(ae,ce)=>{J.upload(ae,ce)}}else if(P==="webnn"){let J=j[0];[h.nc,h.Nb,h.webnnEnsureTensor,h.Ob,h.webnnDownloadTensor]=j.slice(1),h.webnnReleaseTensorId=h.Nb,h.webnnUploadTensor=h.Ob,h.webnnOnRunStart=ae=>J.onRunStart(ae),h.webnnOnRunEnd=J.onRunEnd.bind(J),h.webnnRegisterMLContext=(ae,ce)=>{J.registerMLContext(ae,ce)},h.webnnOnReleaseSession=ae=>{J.onReleaseSession(ae)},h.webnnCreateMLTensorDownloader=(ae,ce)=>J.createMLTensorDownloader(ae,ce),h.webnnRegisterMLTensor=(ae,ce,Se,Xe)=>J.registerMLTensor(ae,ce,Se,Xe),h.webnnCreateMLContext=ae=>J.createMLContext(ae),h.webnnRegisterMLConstant=(ae,ce,Se,Xe,uA,xA)=>J.registerMLConstant(ae,ce,Se,Xe,uA,h.Eb,xA),h.webnnRegisterGraphInput=J.registerGraphInput.bind(J),h.webnnIsGraphInput=J.isGraphInput.bind(J),h.webnnCreateTemporaryTensor=J.createTemporaryTensor.bind(J),h.webnnIsInt64Supported=J.isInt64Supported.bind(J)}};let x=()=>{let P=(j,J,ae)=>(...ce)=>{let Se=$t,Xe=J==null?void 0:J();ce=j(...ce);let uA=J==null?void 0:J();return Xe!==uA&&(j=uA,ae(Xe),J=ae=null),$t!=Se?new Promise((xA,NA)=>{fr={resolve:xA,reject:NA}}):ce};(()=>{for(let j of["_OrtAppendExecutionProvider","_OrtCreateSession","_OrtRun","_OrtRunWithBinding","_OrtBindInput"])h[j]=P(h[j],()=>h[j],J=>h[j]=J)})(),B!==void 0&&(h._OrtRun=B(h._OrtRun),h._OrtRunWithBinding=B(h._OrtRunWithBinding)),x=void 0};h.asyncInit=()=>{x==null||x()};var S,F,R=Object.assign({},h),K=(P,j)=>{throw j},L="";(w||E)&&(E?L=self.location.href:typeof document<"u"&&document.currentScript&&(L=document.currentScript.src),Zl&&(L=Zl),L=L.startsWith("blob:")?"":L.slice(0,L.replace(/[?#].*/,"").lastIndexOf("/")+1),E&&(F=P=>{var j=new XMLHttpRequest;return j.open("GET",P,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),S=async P=>{if(ue(P))return new Promise((J,ae)=>{var ce=new XMLHttpRequest;ce.open("GET",P,!0),ce.responseType="arraybuffer",ce.onload=()=>{ce.status==200||ce.status==0&&ce.response?J(ce.response):ae(ce.status)},ce.onerror=ae,ce.send(null)});var j=await fetch(P,{credentials:"same-origin"});if(j.ok)return j.arrayBuffer();throw Error(j.status+" : "+j.url)});var N=console.log.bind(console),V=console.error.bind(console),d=N,k=V;Object.assign(h,R),R=null;var e,u,y,$,T,O,Ce,Ae,be,he,Ee,ke,De,Re=h.wasmBinary,Qe=!1,ue=P=>P.startsWith("file://");function ee(){return e.buffer!=$.buffer&&ye(),$}function de(){return e.buffer!=$.buffer&&ye(),T}function xe(){return e.buffer!=$.buffer&&ye(),O}function Ye(){return e.buffer!=$.buffer&&ye(),Ce}function Fe(){return e.buffer!=$.buffer&&ye(),Ae}function qe(){return e.buffer!=$.buffer&&ye(),be}function pA(){return e.buffer!=$.buffer&&ye(),he}function MA(){return e.buffer!=$.buffer&&ye(),De}if(v){let P=function(j){try{var J=j.data,ae=J.Bb;if(ae==="load"){let ce=[];self.onmessage=Se=>ce.push(Se),self.startWorker=()=>{postMessage({Bb:"loaded"});for(let Se of ce)P(Se);self.onmessage=P};for(let Se of J.Rb)h[Se]&&!h[Se].proxy||(h[Se]=(...Xe)=>{postMessage({Bb:"callHandler",Qb:Se,args:Xe})},Se=="print"&&(d=h[Se]),Se=="printErr"&&(k=h[Se]));e=J.kc,ye(),Le(J.lc)}else if(ae==="run"){ne(J.Ab),st(J.Ab,0,0,1,0,0),Ts(),$e(J.Ab),fe||(Ln(),fe=!0);try{ve(J.fc,J.Hb)}catch(ce){if(ce!="unwind")throw ce}}else J.target!=="setimmediate"&&(ae==="checkMailbox"?fe&&hA():ae&&(k(`worker: received unknown command ${ae}`),k(J)))}catch(ce){throw vs(),ce}};var Le,fe=!1;k=function(...j){j=j.join(" "),console.error(j)},self.alert=function(...j){postMessage({Bb:"alert",text:j.join(" "),ic:gr()})},self.onunhandledrejection=j=>{throw j.reason||j},self.onmessage=P}function ye(){var P=e.buffer;h.HEAP8=$=new Int8Array(P),h.HEAP16=O=new Int16Array(P),h.HEAPU8=T=new Uint8Array(P),h.HEAPU16=Ce=new Uint16Array(P),h.HEAP32=Ae=new Int32Array(P),h.HEAPU32=be=new Uint32Array(P),h.HEAPF32=he=new Float32Array(P),h.HEAPF64=De=new Float64Array(P),h.HEAP64=Ee=new BigInt64Array(P),h.HEAPU64=ke=new BigUint64Array(P)}function ge(){v?startWorker(h):qA.Ca()}v||(e=new WebAssembly.Memory({initial:256,maximum:65536,shared:!0}),ye());var Ke,Ue=0,sA=null;function AA(){if(--Ue==0&&sA){var P=sA;sA=null,P()}}function H(P){throw k(P="Aborted("+P+")"),Qe=!0,P=new WebAssembly.RuntimeError(P+". Build with -sASSERTIONS for more info."),p(P),P}function oA(){return{a:{L:vA,Aa:me,b:lA,$:At,A:LA,pa:St,X:FA,Z:cr,qa:Gs,na:js,ga:Cs,ma:qs,J:ds,Y:bs,V:Ms,oa:Ps,W:Ws,va:ea,E:jA,Q:Qs,O:La,D:_a,u:Fs,r:Aa,P:ta,z:le,R:we,ja:Me,T:yA,aa:eA,M:nt,F:Bt,ia:$e,sa:vt,t:Pr,Ba:qt,w:yr,o:Cr,l:Xr,c:ws,n:si,j:ua,v:ii,p:tn,f:Ha,s:Fr,m:DA,e:As,k:yn,i:rn,g:Dn,d:oi,da:Tn,ea:zt,fa:an,ba:Pn,ca:Os,N:nn,xa:Qn,ua:Fn,h:cA,C:li,G:TA,ta:da,x:Hs,ra:ln,U:Zr,q:zs,y:os,K:cn,S:Ua,za:ci,ya:Ka,ka:Ea,la:BA,_:dt,B:fs,I:On,ha:ui,H:ga,a:e,wa:nA}}}var fA={829644:(P,j,J,ae,ce)=>{if(h===void 0||!h.Eb)return 1;if((P=WA(Number(P>>>0))).startsWith("./")&&(P=P.substring(2)),!(P=h.Eb.get(P)))return 2;if(j=Number(j>>>0),J=Number(J>>>0),ae=Number(ae>>>0),j+J>P.byteLength)return 3;try{let Se=P.subarray(j,j+J);switch(ce){case 0:de().set(Se,ae>>>0);break;case 1:h.mc?h.mc(ae,Se):h.bc(ae,Se);break;default:return 4}return 0}catch{return 4}},830468:(P,j,J)=>{h.Ob(P,de().subarray(j>>>0,j+J>>>0))},830532:()=>h.nc(),830574:P=>{h.Nb(P)},830611:()=>{h.Vb()},830642:()=>{h.Wb()},830671:()=>{h.$b()},830696:P=>h.Ub(P),830729:P=>h.Yb(P),830761:(P,j,J)=>{h.Kb(Number(P),Number(j),Number(J),!0)},830824:(P,j,J)=>{h.Kb(Number(P),Number(j),Number(J))},830881:()=>typeof wasmOffsetConverter<"u",830938:P=>{h.jb("Abs",P,void 0)},830989:P=>{h.jb("Neg",P,void 0)},831040:P=>{h.jb("Floor",P,void 0)},831093:P=>{h.jb("Ceil",P,void 0)},831145:P=>{h.jb("Reciprocal",P,void 0)},831203:P=>{h.jb("Sqrt",P,void 0)},831255:P=>{h.jb("Exp",P,void 0)},831306:P=>{h.jb("Erf",P,void 0)},831357:P=>{h.jb("Sigmoid",P,void 0)},831412:(P,j,J)=>{h.jb("HardSigmoid",P,{alpha:j,beta:J})},831491:P=>{h.jb("Log",P,void 0)},831542:P=>{h.jb("Sin",P,void 0)},831593:P=>{h.jb("Cos",P,void 0)},831644:P=>{h.jb("Tan",P,void 0)},831695:P=>{h.jb("Asin",P,void 0)},831747:P=>{h.jb("Acos",P,void 0)},831799:P=>{h.jb("Atan",P,void 0)},831851:P=>{h.jb("Sinh",P,void 0)},831903:P=>{h.jb("Cosh",P,void 0)},831955:P=>{h.jb("Asinh",P,void 0)},832008:P=>{h.jb("Acosh",P,void 0)},832061:P=>{h.jb("Atanh",P,void 0)},832114:P=>{h.jb("Tanh",P,void 0)},832166:P=>{h.jb("Not",P,void 0)},832217:(P,j,J)=>{h.jb("Clip",P,{min:j,max:J})},832286:P=>{h.jb("Clip",P,void 0)},832338:(P,j)=>{h.jb("Elu",P,{alpha:j})},832396:P=>{h.jb("Gelu",P,void 0)},832448:P=>{h.jb("Relu",P,void 0)},832500:(P,j)=>{h.jb("LeakyRelu",P,{alpha:j})},832564:(P,j)=>{h.jb("ThresholdedRelu",P,{alpha:j})},832634:(P,j)=>{h.jb("Cast",P,{to:j})},832692:P=>{h.jb("Add",P,void 0)},832743:P=>{h.jb("Sub",P,void 0)},832794:P=>{h.jb("Mul",P,void 0)},832845:P=>{h.jb("Div",P,void 0)},832896:P=>{h.jb("Pow",P,void 0)},832947:P=>{h.jb("Equal",P,void 0)},833e3:P=>{h.jb("Greater",P,void 0)},833055:P=>{h.jb("GreaterOrEqual",P,void 0)},833117:P=>{h.jb("Less",P,void 0)},833169:P=>{h.jb("LessOrEqual",P,void 0)},833228:(P,j,J,ae,ce)=>{h.jb("ReduceMean",P,{keepDims:!!j,noopWithEmptyAxes:!!J,axes:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},833403:(P,j,J,ae,ce)=>{h.jb("ReduceMax",P,{keepDims:!!j,noopWithEmptyAxes:!!J,axes:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},833577:(P,j,J,ae,ce)=>{h.jb("ReduceMin",P,{keepDims:!!j,noopWithEmptyAxes:!!J,axes:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},833751:(P,j,J,ae,ce)=>{h.jb("ReduceProd",P,{keepDims:!!j,noopWithEmptyAxes:!!J,axes:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},833926:(P,j,J,ae,ce)=>{h.jb("ReduceSum",P,{keepDims:!!j,noopWithEmptyAxes:!!J,axes:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},834100:(P,j,J,ae,ce)=>{h.jb("ReduceL1",P,{keepDims:!!j,noopWithEmptyAxes:!!J,axes:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},834273:(P,j,J,ae,ce)=>{h.jb("ReduceL2",P,{keepDims:!!j,noopWithEmptyAxes:!!J,axes:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},834446:(P,j,J,ae,ce)=>{h.jb("ReduceLogSum",P,{keepDims:!!j,noopWithEmptyAxes:!!J,axes:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},834623:(P,j,J,ae,ce)=>{h.jb("ReduceSumSquare",P,{keepDims:!!j,noopWithEmptyAxes:!!J,axes:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},834803:(P,j,J,ae,ce)=>{h.jb("ReduceLogSumExp",P,{keepDims:!!j,noopWithEmptyAxes:!!J,axes:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},834983:P=>{h.jb("Where",P,void 0)},835036:(P,j,J)=>{h.jb("Transpose",P,{perm:j?Array.from(Fe().subarray(Number(j)>>>0,Number(J)>>>0)):[]})},835160:(P,j,J,ae)=>{h.jb("DepthToSpace",P,{blocksize:j,mode:WA(J),format:ae?"NHWC":"NCHW"})},835293:(P,j,J,ae)=>{h.jb("DepthToSpace",P,{blocksize:j,mode:WA(J),format:ae?"NHWC":"NCHW"})},835426:(P,j,J,ae,ce,Se,Xe,uA,xA,NA,ct,ft,Qt,Mt,Us)=>{h.jb("ConvTranspose",P,{format:xA?"NHWC":"NCHW",autoPad:j,dilations:[J],group:ae,kernelShape:[ce],pads:[Se,Xe],strides:[uA],wIsConst:()=>!!ee()[NA>>>0],outputPadding:ct?Array.from(Fe().subarray(Number(ct)>>>0,Number(ft)>>>0)):[],outputShape:Qt?Array.from(Fe().subarray(Number(Qt)>>>0,Number(Mt)>>>0)):[],activation:WA(Us)})},835859:(P,j,J,ae,ce,Se,Xe,uA,xA,NA,ct,ft,Qt,Mt)=>{h.jb("ConvTranspose",P,{format:uA?"NHWC":"NCHW",autoPad:j,dilations:Array.from(Fe().subarray(Number(J)>>>0,2+(Number(J)>>>0)>>>0)),group:ae,kernelShape:Array.from(Fe().subarray(Number(ce)>>>0,2+(Number(ce)>>>0)>>>0)),pads:Array.from(Fe().subarray(Number(Se)>>>0,4+(Number(Se)>>>0)>>>0)),strides:Array.from(Fe().subarray(Number(Xe)>>>0,2+(Number(Xe)>>>0)>>>0)),wIsConst:()=>!!ee()[xA>>>0],outputPadding:NA?Array.from(Fe().subarray(Number(NA)>>>0,Number(ct)>>>0)):[],outputShape:ft?Array.from(Fe().subarray(Number(ft)>>>0,Number(Qt)>>>0)):[],activation:WA(Mt)})},836520:(P,j,J,ae,ce,Se,Xe,uA,xA,NA,ct,ft,Qt,Mt,Us)=>{h.jb("ConvTranspose",P,{format:xA?"NHWC":"NCHW",autoPad:j,dilations:[J],group:ae,kernelShape:[ce],pads:[Se,Xe],strides:[uA],wIsConst:()=>!!ee()[NA>>>0],outputPadding:ct?Array.from(Fe().subarray(Number(ct)>>>0,Number(ft)>>>0)):[],outputShape:Qt?Array.from(Fe().subarray(Number(Qt)>>>0,Number(Mt)>>>0)):[],activation:WA(Us)})},836953:(P,j,J,ae,ce,Se,Xe,uA,xA,NA,ct,ft,Qt,Mt)=>{h.jb("ConvTranspose",P,{format:uA?"NHWC":"NCHW",autoPad:j,dilations:Array.from(Fe().subarray(Number(J)>>>0,2+(Number(J)>>>0)>>>0)),group:ae,kernelShape:Array.from(Fe().subarray(Number(ce)>>>0,2+(Number(ce)>>>0)>>>0)),pads:Array.from(Fe().subarray(Number(Se)>>>0,4+(Number(Se)>>>0)>>>0)),strides:Array.from(Fe().subarray(Number(Xe)>>>0,2+(Number(Xe)>>>0)>>>0)),wIsConst:()=>!!ee()[xA>>>0],outputPadding:NA?Array.from(Fe().subarray(Number(NA)>>>0,Number(ct)>>>0)):[],outputShape:ft?Array.from(Fe().subarray(Number(ft)>>>0,Number(Qt)>>>0)):[],activation:WA(Mt)})},837614:(P,j)=>{h.jb("GlobalAveragePool",P,{format:j?"NHWC":"NCHW"})},837705:(P,j,J,ae,ce,Se,Xe,uA,xA,NA,ct,ft,Qt,Mt)=>{h.jb("AveragePool",P,{format:Mt?"NHWC":"NCHW",auto_pad:j,ceil_mode:J,count_include_pad:ae,storage_order:ce,dilations:Se?Array.from(Fe().subarray(Number(Se)>>>0,Number(Xe)>>>0)):[],kernel_shape:uA?Array.from(Fe().subarray(Number(uA)>>>0,Number(xA)>>>0)):[],pads:NA?Array.from(Fe().subarray(Number(NA)>>>0,Number(ct)>>>0)):[],strides:ft?Array.from(Fe().subarray(Number(ft)>>>0,Number(Qt)>>>0)):[]})},838184:(P,j)=>{h.jb("GlobalAveragePool",P,{format:j?"NHWC":"NCHW"})},838275:(P,j,J,ae,ce,Se,Xe,uA,xA,NA,ct,ft,Qt,Mt)=>{h.jb("AveragePool",P,{format:Mt?"NHWC":"NCHW",auto_pad:j,ceil_mode:J,count_include_pad:ae,storage_order:ce,dilations:Se?Array.from(Fe().subarray(Number(Se)>>>0,Number(Xe)>>>0)):[],kernel_shape:uA?Array.from(Fe().subarray(Number(uA)>>>0,Number(xA)>>>0)):[],pads:NA?Array.from(Fe().subarray(Number(NA)>>>0,Number(ct)>>>0)):[],strides:ft?Array.from(Fe().subarray(Number(ft)>>>0,Number(Qt)>>>0)):[]})},838754:(P,j)=>{h.jb("GlobalMaxPool",P,{format:j?"NHWC":"NCHW"})},838841:(P,j,J,ae,ce,Se,Xe,uA,xA,NA,ct,ft,Qt,Mt)=>{h.jb("MaxPool",P,{format:Mt?"NHWC":"NCHW",auto_pad:j,ceil_mode:J,count_include_pad:ae,storage_order:ce,dilations:Se?Array.from(Fe().subarray(Number(Se)>>>0,Number(Xe)>>>0)):[],kernel_shape:uA?Array.from(Fe().subarray(Number(uA)>>>0,Number(xA)>>>0)):[],pads:NA?Array.from(Fe().subarray(Number(NA)>>>0,Number(ct)>>>0)):[],strides:ft?Array.from(Fe().subarray(Number(ft)>>>0,Number(Qt)>>>0)):[]})},839316:(P,j)=>{h.jb("GlobalMaxPool",P,{format:j?"NHWC":"NCHW"})},839403:(P,j,J,ae,ce,Se,Xe,uA,xA,NA,ct,ft,Qt,Mt)=>{h.jb("MaxPool",P,{format:Mt?"NHWC":"NCHW",auto_pad:j,ceil_mode:J,count_include_pad:ae,storage_order:ce,dilations:Se?Array.from(Fe().subarray(Number(Se)>>>0,Number(Xe)>>>0)):[],kernel_shape:uA?Array.from(Fe().subarray(Number(uA)>>>0,Number(xA)>>>0)):[],pads:NA?Array.from(Fe().subarray(Number(NA)>>>0,Number(ct)>>>0)):[],strides:ft?Array.from(Fe().subarray(Number(ft)>>>0,Number(Qt)>>>0)):[]})},839878:(P,j,J,ae,ce)=>{h.jb("Gemm",P,{alpha:j,beta:J,transA:ae,transB:ce})},839982:P=>{h.jb("MatMul",P,void 0)},840036:(P,j,J,ae)=>{h.jb("ArgMax",P,{keepDims:!!j,selectLastIndex:!!J,axis:ae})},840144:(P,j,J,ae)=>{h.jb("ArgMin",P,{keepDims:!!j,selectLastIndex:!!J,axis:ae})},840252:(P,j)=>{h.jb("Softmax",P,{axis:j})},840315:(P,j)=>{h.jb("Concat",P,{axis:j})},840375:(P,j,J,ae,ce)=>{h.jb("Split",P,{axis:j,numOutputs:J,splitSizes:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},840531:P=>{h.jb("Expand",P,void 0)},840585:(P,j)=>{h.jb("Gather",P,{axis:Number(j)})},840656:(P,j)=>{h.jb("GatherElements",P,{axis:Number(j)})},840735:(P,j)=>{h.jb("GatherND",P,{batch_dims:Number(j)})},840814:(P,j,J,ae,ce,Se,Xe,uA,xA,NA,ct)=>{h.jb("Resize",P,{antialias:j,axes:J?Array.from(Fe().subarray(Number(J)>>>0,Number(ae)>>>0)):[],coordinateTransformMode:WA(ce),cubicCoeffA:Se,excludeOutside:Xe,extrapolationValue:uA,keepAspectRatioPolicy:WA(xA),mode:WA(NA),nearestMode:WA(ct)})},841176:(P,j,J,ae,ce,Se,Xe)=>{h.jb("Slice",P,{starts:j?Array.from(Fe().subarray(Number(j)>>>0,Number(J)>>>0)):[],ends:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[],axes:Se?Array.from(Fe().subarray(Number(Se)>>>0,Number(Xe)>>>0)):[]})},841440:P=>{h.jb("Tile",P,void 0)},841492:(P,j,J)=>{h.jb("InstanceNormalization",P,{epsilon:j,format:J?"NHWC":"NCHW"})},841606:(P,j,J)=>{h.jb("InstanceNormalization",P,{epsilon:j,format:J?"NHWC":"NCHW"})},841720:P=>{h.jb("Range",P,void 0)},841773:(P,j)=>{h.jb("Einsum",P,{equation:WA(j)})},841854:(P,j,J,ae,ce)=>{h.jb("Pad",P,{mode:j,value:J,pads:ae?Array.from(Fe().subarray(Number(ae)>>>0,Number(ce)>>>0)):[]})},841997:(P,j,J,ae,ce,Se)=>{h.jb("BatchNormalization",P,{epsilon:j,momentum:J,spatial:!!ce,trainingMode:!!ae,format:Se?"NHWC":"NCHW"})},842166:(P,j,J,ae,ce,Se)=>{h.jb("BatchNormalization",P,{epsilon:j,momentum:J,spatial:!!ce,trainingMode:!!ae,format:Se?"NHWC":"NCHW"})},842335:(P,j,J)=>{h.jb("CumSum",P,{exclusive:Number(j),reverse:Number(J)})},842432:(P,j,J)=>{h.jb("DequantizeLinear",P,{axis:j,blockSize:J})},842522:(P,j,J,ae,ce)=>{h.jb("GridSample",P,{align_corners:j,mode:WA(J),padding_mode:WA(ae),format:ce?"NHWC":"NCHW"})},842692:(P,j,J,ae,ce)=>{h.jb("GridSample",P,{align_corners:j,mode:WA(J),padding_mode:WA(ae),format:ce?"NHWC":"NCHW"})},842862:(P,j)=>{h.jb("ScatterND",P,{reduction:WA(j)})},842947:(P,j,J,ae,ce,Se,Xe,uA,xA)=>{h.jb("Attention",P,{numHeads:j,isUnidirectional:J,maskFilterValue:ae,scale:ce,doRotary:Se,qkvHiddenSizes:Xe?Array.from(Fe().subarray(Number(uA)>>>0,Number(uA)+Xe>>>0)):[],pastPresentShareBuffer:!!xA})},843219:P=>{h.jb("BiasAdd",P,void 0)},843274:P=>{h.jb("BiasSplitGelu",P,void 0)},843335:P=>{h.jb("FastGelu",P,void 0)},843391:(P,j,J,ae,ce,Se,Xe,uA,xA,NA,ct,ft,Qt,Mt,Us,pn)=>{h.jb("Conv",P,{format:ft?"NHWC":"NCHW",auto_pad:j,dilations:J?Array.from(Fe().subarray(Number(J)>>>0,Number(ae)>>>0)):[],group:ce,kernel_shape:Se?Array.from(Fe().subarray(Number(Se)>>>0,Number(Xe)>>>0)):[],pads:uA?Array.from(Fe().subarray(Number(uA)>>>0,Number(xA)>>>0)):[],strides:NA?Array.from(Fe().subarray(Number(NA)>>>0,Number(ct)>>>0)):[],w_is_const:()=>!!ee()[Number(Qt)>>>0],activation:WA(Mt),activation_params:Us?Array.from(pA().subarray(Number(Us)>>>0,Number(pn)>>>0)):[]})},843975:P=>{h.jb("Gelu",P,void 0)},844027:(P,j,J,ae,ce,Se,Xe,uA,xA)=>{h.jb("GroupQueryAttention",P,{numHeads:j,kvNumHeads:J,scale:ae,softcap:ce,doRotary:Se,rotaryInterleaved:Xe,smoothSoftmax:uA,localWindowSize:xA})},844244:(P,j,J,ae)=>{h.jb("LayerNormalization",P,{axis:j,epsilon:J,simplified:!!ae})},844355:(P,j,J,ae)=>{h.jb("LayerNormalization",P,{axis:j,epsilon:J,simplified:!!ae})},844466:(P,j,J,ae,ce,Se)=>{h.jb("MatMulNBits",P,{k:j,n:J,accuracyLevel:ae,bits:ce,blockSize:Se})},844593:(P,j,J,ae,ce,Se)=>{h.jb("MultiHeadAttention",P,{numHeads:j,isUnidirectional:J,maskFilterValue:ae,scale:ce,doRotary:Se})},844752:(P,j)=>{h.jb("QuickGelu",P,{alpha:j})},844816:(P,j,J,ae,ce)=>{h.jb("RotaryEmbedding",P,{interleaved:!!j,numHeads:J,rotaryEmbeddingDim:ae,scale:ce})},844955:(P,j,J)=>{h.jb("SkipLayerNormalization",P,{epsilon:j,simplified:!!J})},845057:(P,j,J)=>{h.jb("SkipLayerNormalization",P,{epsilon:j,simplified:!!J})},845159:(P,j,J,ae)=>{h.jb("GatherBlockQuantized",P,{gatherAxis:j,quantizeAxis:J,blockSize:ae})},845280:P=>{h.Zb(P)},845314:(P,j)=>h.ac(Number(P),Number(j),h.Fb.dc,h.Fb.errors)};function me(P,j,J){return xr(async()=>{await h.Xb(Number(P),Number(j),Number(J))})}function vA(){return typeof wasmOffsetConverter<"u"}class aA{constructor(j){Be(this,"name","ExitStatus");this.message=`Program terminated with exit(${j})`,this.status=j}}var kA=P=>{P.terminate(),P.onmessage=()=>{}},QA=[],RA=P=>{UA.length==0&&(Te(),se(UA[0]));var j=UA.pop();if(!j)return 6;it.push(j),wr[P.Ab]=j,j.Ab=P.Ab;var J={Bb:"run",fc:P.ec,Hb:P.Hb,Ab:P.Ab};return j.postMessage(J,P.Mb),0},HA=0,mA=(P,j,...J)=>{for(var ae=2*J.length,ce=va(),Se=Ja(8*ae),Xe=Se>>>3,uA=0;uA>>0]=xA)}return P=fn(P,0,ae,Se,j),Es(ce),P};function nA(P){if(v)return mA(0,1,P);if(y=P,!(0{if(y=P,v)throw VA(P),"unwind";nA(P)},UA=[],it=[],Zt=[],wr={},KA=P=>{var j=P.Ab;delete wr[j],UA.push(P),it.splice(it.indexOf(P),1),P.Ab=0,Ns(j)};function Ts(){Zt.forEach(P=>P())}var se=P=>new Promise(j=>{P.onmessage=ce=>{var Se=(ce=ce.data).Bb;if(ce.Gb&&ce.Gb!=gr()){var Xe=wr[ce.Gb];Xe?Xe.postMessage(ce,ce.Mb):k(`Internal error! Worker sent a message "${Se}" to target pthread ${ce.Gb}, but that thread no longer exists!`)}else Se==="checkMailbox"?hA():Se==="spawnThread"?RA(ce):Se==="cleanupThread"?KA(wr[ce.hc]):Se==="loaded"?(P.loaded=!0,j(P)):Se==="alert"?alert(`Thread ${ce.ic}: ${ce.text}`):ce.target==="setimmediate"?P.postMessage(ce):Se==="callHandler"?h[ce.Qb](...ce.args):Se&&k(`worker sent an unknown command ${Se}`)},P.onerror=ce=>{throw k(`worker sent an error! ${ce.filename}:${ce.lineno}: ${ce.message}`),ce};var J,ae=[];for(J of[])h.propertyIsEnumerable(J)&&ae.push(J);P.postMessage({Bb:"load",Rb:ae,kc:e,lc:u})});function Te(){var P=new Worker((()=>{let j=URL;return import.meta.url>"file:"&&import.meta.url<"file;"?new j("ort.bundle.min.mjs",import.meta.url):new URL(import.meta.url)})(),{type:"module",workerData:"em-pthread",name:"em-pthread"});UA.push(P)}var ne=P=>{ye();var j=qe()[P+52>>>2>>>0];P=qe()[P+56>>>2>>>0],Dr(j,j-P),Es(j)},ve=(P,j)=>{HA=0,P=_n(P,j),0>>=0);throw j>>>=0,J>>>=0,qe()[ae.Ib+16>>>2>>>0]=0,qe()[ae.Ib+4>>>2>>>0]=j,qe()[ae.Ib+8>>>2>>>0]=J,P}function je(P,j,J,ae){return v?mA(2,1,P,j,J,ae):At(P,j,J,ae)}function At(P,j,J,ae){if(P>>>=0,J>>>=0,ae>>>=0,D===void 0)return 6;var ce=[];return v&&ce.length===0?je(P,j>>>=0,J,ae):(P={ec:J,Ab:P,Hb:ae,Mb:ce},v?(P.Bb="spawnThread",postMessage(P,ce),0):RA(P))}var Tt=typeof TextDecoder<"u"?new TextDecoder:void 0,XA=(P,j=0,J=NaN)=>{var ae=(j>>>=0)+J;for(J=j;P[J]&&!(J>=ae);)++J;if(16(ce=(240&ce)==224?(15&ce)<<12|Se<<6|Xe:(7&ce)<<18|Se<<12|Xe<<6|63&P[j++])?ae+=String.fromCharCode(ce):(ce-=65536,ae+=String.fromCharCode(55296|ce>>10,56320|1023&ce))}}else ae+=String.fromCharCode(ce)}return ae},WA=(P,j)=>(P>>>=0)?XA(de(),P,j):"";function LA(P,j,J){return v?mA(3,1,P,j,J):0}function St(P,j){if(v)return mA(4,1,P,j)}var Vt=P=>{for(var j=0,J=0;J=ae?j++:2047>=ae?j+=2:55296<=ae&&57343>=ae?(j+=4,++J):j+=3}return j},Ot=(P,j,J)=>{var ae=de();if(j>>>=0,0=Xe&&(Xe=65536+((1023&Xe)<<10)|1023&P.charCodeAt(++Se)),127>=Xe){if(j>=J)break;ae[j++>>>0]=Xe}else{if(2047>=Xe){if(j+1>=J)break;ae[j++>>>0]=192|Xe>>6}else{if(65535>=Xe){if(j+2>=J)break;ae[j++>>>0]=224|Xe>>12}else{if(j+3>=J)break;ae[j++>>>0]=240|Xe>>18,ae[j++>>>0]=128|Xe>>12&63}ae[j++>>>0]=128|Xe>>6&63}ae[j++>>>0]=128|63&Xe}}ae[j>>>0]=0,P=j-ce}else P=0;return P};function FA(P,j){if(v)return mA(5,1,P,j)}function cr(P,j,J){if(v)return mA(6,1,P,j,J)}function Gs(P,j,J){return v?mA(7,1,P,j,J):0}function js(P,j){if(v)return mA(8,1,P,j)}function Cs(P,j,J){if(v)return mA(9,1,P,j,J)}function qs(P,j,J,ae){if(v)return mA(10,1,P,j,J,ae)}function ds(P,j,J,ae){if(v)return mA(11,1,P,j,J,ae)}function bs(P,j,J,ae){if(v)return mA(12,1,P,j,J,ae)}function Ms(P){if(v)return mA(13,1,P)}function Ps(P,j){if(v)return mA(14,1,P,j)}function Ws(P,j,J){if(v)return mA(15,1,P,j,J)}var $s,Ut,ea=()=>H(""),Yr=P=>{for(var j="";de()[P>>>0];)j+=$s[de()[P++>>>0]];return j},Ys={},Lr={};function iA(P,j,J={}){return function(ae,ce,Se={}){var Xe=ce.name;if(!ae)throw new Ut(`type "${Xe}" must have a positive integer typeid pointer`);if(Lr.hasOwnProperty(ae)){if(Se.Sb)return;throw new Ut(`Cannot register type '${Xe}' twice`)}Lr[ae]=ce,Ys.hasOwnProperty(ae)&&(ce=Ys[ae],delete Ys[ae],ce.forEach(uA=>uA()))}(P,j,J)}var IA=(P,j,J)=>{switch(j){case 1:return J?ae=>ee()[ae>>>0]:ae=>de()[ae>>>0];case 2:return J?ae=>xe()[ae>>>1>>>0]:ae=>Ye()[ae>>>1>>>0];case 4:return J?ae=>Fe()[ae>>>2>>>0]:ae=>qe()[ae>>>2>>>0];case 8:return J?ae=>Ee[ae>>>3]:ae=>ke[ae>>>3];default:throw new TypeError(`invalid integer width (${j}): ${P}`)}};function jA(P,j,J){J>>>=0,iA(P>>>=0,{name:j=Yr(j>>>0),fromWireType:ae=>ae,toWireType:function(ae,ce){if(typeof ce!="bigint"&&typeof ce!="number")throw ce=ce===null?"null":(ae=typeof ce)=="object"||ae==="array"||ae==="function"?ce.toString():""+ce,new TypeError(`Cannot convert "${ce}" to ${this.name}`);return typeof ce=="number"&&(ce=BigInt(ce)),ce},Cb:Gt,readValueFromPointer:IA(j,J,j.indexOf("u")==-1),Db:null})}var Gt=8;function Qs(P,j,J,ae){iA(P>>>=0,{name:j=Yr(j>>>0),fromWireType:function(ce){return!!ce},toWireType:function(ce,Se){return Se?J:ae},Cb:Gt,readValueFromPointer:function(ce){return this.fromWireType(de()[ce>>>0])},Db:null})}var Is=[],vr=[];function ws(P){9<(P>>>=0)&&--vr[P+1]==0&&(vr[P]=void 0,Is.push(P))}var mr=P=>{if(!P)throw new Ut("Cannot use deleted val. handle = "+P);return vr[P]},SA=P=>{switch(P){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let j=Is.pop()||vr.length;return vr[j]=P,vr[j+1]=1,j}};function Gr(P){return this.fromWireType(qe()[P>>>2>>>0])}var es={name:"emscripten::val",fromWireType:P=>{var j=mr(P);return ws(P),j},toWireType:(P,j)=>SA(j),Cb:Gt,readValueFromPointer:Gr,Db:null};function La(P){return iA(P>>>0,es)}var ba=(P,j)=>{switch(j){case 4:return function(J){return this.fromWireType(pA()[J>>>2>>>0])};case 8:return function(J){return this.fromWireType(MA()[J>>>3>>>0])};default:throw new TypeError(`invalid float width (${j}): ${P}`)}};function _a(P,j,J){J>>>=0,iA(P>>>=0,{name:j=Yr(j>>>0),fromWireType:ae=>ae,toWireType:(ae,ce)=>ce,Cb:Gt,readValueFromPointer:ba(j,J),Db:null})}function Fs(P,j,J,ae,ce){if(P>>>=0,J>>>=0,j=Yr(j>>>0),ce===-1&&(ce=4294967295),ce=uA=>uA,ae===0){var Se=32-8*J;ce=uA=>uA<>>Se}var Xe=j.includes("unsigned")?function(uA,xA){return xA>>>0}:function(uA,xA){return xA};iA(P,{name:j,fromWireType:ce,toWireType:Xe,Cb:Gt,readValueFromPointer:IA(j,J,ae!==0),Db:null})}function Aa(P,j,J){function ae(Se){var Xe=qe()[Se>>>2>>>0];return Se=qe()[Se+4>>>2>>>0],new ce(ee().buffer,Se,Xe)}var ce=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][j];iA(P>>>=0,{name:J=Yr(J>>>0),fromWireType:ae,Cb:Gt,readValueFromPointer:ae},{Sb:!0})}function ta(P,j){iA(P>>>=0,{name:j=Yr(j>>>0),fromWireType:function(J){for(var ae,ce=qe()[J>>>2>>>0],Se=J+4,Xe=Se,uA=0;uA<=ce;++uA){var xA=Se+uA;uA!=ce&&de()[xA>>>0]!=0||(Xe=WA(Xe,xA-Xe),ae===void 0?ae=Xe:(ae+="\0",ae+=Xe),Xe=xA+1)}return ks(J),ae},toWireType:function(J,ae){ae instanceof ArrayBuffer&&(ae=new Uint8Array(ae));var ce=typeof ae=="string";if(!(ce||ae instanceof Uint8Array||ae instanceof Uint8ClampedArray||ae instanceof Int8Array))throw new Ut("Cannot pass non-string to std::string");var Se=ce?Vt(ae):ae.length,Xe=Xa(4+Se+1),uA=Xe+4;if(qe()[Xe>>>2>>>0]=Se,ce)Ot(ae,uA,Se+1);else if(ce)for(ce=0;ce>>0]=xA}else for(ce=0;ce>>0]=ae[ce];return J!==null&&J.push(ks,Xe),Xe},Cb:Gt,readValueFromPointer:Gr,Db(J){ks(J)}})}var Ia=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Ra=(P,j)=>{for(var J=P>>1,ae=J+j/2;!(J>=ae)&&Ye()[J>>>0];)++J;if(32<(J<<=1)-P&&Ia)return Ia.decode(de().slice(P,J));for(J="",ae=0;!(ae>=j/2);++ae){var ce=xe()[P+2*ae>>>1>>>0];if(ce==0)break;J+=String.fromCharCode(ce)}return J},ja=(P,j,J)=>{if(J??(J=2147483647),2>J)return 0;var ae=j;J=(J-=2)<2*P.length?J/2:P.length;for(var ce=0;ce>>1>>>0]=Se,j+=2}return xe()[j>>>1>>>0]=0,j-ae},Wa=P=>2*P.length,Ss=(P,j)=>{for(var J=0,ae="";!(J>=j/4);){var ce=Fe()[P+4*J>>>2>>>0];if(ce==0)break;++J,65536<=ce?(ce-=65536,ae+=String.fromCharCode(55296|ce>>10,56320|1023&ce)):ae+=String.fromCharCode(ce)}return ae},Ne=(P,j,J)=>{if(j>>>=0,J??(J=2147483647),4>J)return 0;var ae=j;J=ae+J-4;for(var ce=0;ce=Se&&(Se=65536+((1023&Se)<<10)|1023&P.charCodeAt(++ce)),Fe()[j>>>2>>>0]=Se,(j+=4)+4>J)break}return Fe()[j>>>2>>>0]=0,j-ae},Z=P=>{for(var j=0,J=0;J=ae&&++J,j+=4}return j};function le(P,j,J){if(P>>>=0,j>>>=0,J=Yr(J>>>=0),j===2)var ae=Ra,ce=ja,Se=Wa,Xe=uA=>Ye()[uA>>>1>>>0];else j===4&&(ae=Ss,ce=Ne,Se=Z,Xe=uA=>qe()[uA>>>2>>>0]);iA(P,{name:J,fromWireType:uA=>{for(var xA,NA=qe()[uA>>>2>>>0],ct=uA+4,ft=0;ft<=NA;++ft){var Qt=uA+4+ft*j;ft!=NA&&Xe(Qt)!=0||(ct=ae(ct,Qt-ct),xA===void 0?xA=ct:(xA+="\0",xA+=ct),ct=Qt+j)}return ks(uA),xA},toWireType:(uA,xA)=>{if(typeof xA!="string")throw new Ut(`Cannot pass non-string to C++ string type ${J}`);var NA=Se(xA),ct=Xa(4+NA+j);return qe()[ct>>>2>>>0]=NA/j,ce(xA,ct+4,NA+j),uA!==null&&uA.push(ks,ct),ct},Cb:Gt,readValueFromPointer:Gr,Db(uA){ks(uA)}})}function we(P,j){iA(P>>>=0,{Tb:!0,name:j=Yr(j>>>0),Cb:0,fromWireType:()=>{},toWireType:()=>{}})}function Me(P){st(P>>>0,!E,1,!w,131072,!1),Ts()}var ze=P=>{if(!Qe)try{if(P(),!(0>>=0,typeof Atomics.jc=="function"&&(Atomics.jc(Fe(),P>>>2,P).value.then(hA),P+=128,Atomics.store(Fe(),P>>>2,1))}var hA=()=>{var P=gr();P&&($e(P),ze(Vs))};function yA(P,j){(P>>>=0)==j>>>0?setTimeout(hA):v?postMessage({Gb:P,Bb:"checkMailbox"}):(P=wr[P])&&P.postMessage({Bb:"checkMailbox"})}var wA=[];function eA(P,j,J,ae,ce){for(j>>>=0,ae/=2,wA.length=ae,J=ce>>>0>>>3,ce=0;ce>>0];return(j?fA[j]:Nn[P])(...wA)}var nt=()=>{HA=0};function Bt(P){P>>>=0,v?postMessage({Bb:"cleanupThread",hc:P}):KA(wr[P])}function vt(P){}var nr=(P,j)=>{var J=Lr[P];if(J===void 0)throw P=dn(P),J=Yr(P),ks(P),new Ut(`${j} has unknown type ${J}`);return J},Lt=(P,j,J)=>{var ae=[];return P=P.toWireType(ae,J),ae.length&&(qe()[j>>>2>>>0]=SA(ae)),P};function Pr(P,j,J){return j>>>=0,J>>>=0,P=mr(P>>>0),j=nr(j,"emval::as"),Lt(j,J,P)}function qt(P,j){return j>>>=0,P=mr(P>>>0),(j=nr(j,"emval::as")).toWireType(null,P)}var hr=P=>{try{P()}catch(j){H(j)}},dr=0,$t=null,Hr=0,jt=[],kr={},Qr={},_t=0,fr=null,Kr=[];function xr(P){return function(j){if(!Qe){if(dr===0){var J=!1,ae=!1;j((ce=0)=>{if(!Qe&&(Hr=ce,J=!0,ae)){dr=2,hr(()=>xa($t)),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.resume(),ce=!1;try{var Se=function(){var xA=Fe()[$t+8>>>2>>>0];return xA=qA[Qr[xA]],--HA,xA()}()}catch(xA){Se=xA,ce=!0}var Xe=!1;if(!$t){var uA=fr;uA&&(fr=null,(ce?uA.reject:uA.resolve)(Se),Xe=!0)}if(ce&&!Xe)throw Se}}),ae=!0,J||(dr=1,$t=function(){var ce=Xa(65548),Se=ce+12;qe()[ce>>>2>>>0]=Se,qe()[ce+4>>>2>>>0]=Se+65536,Se=jt[0];var Xe=kr[Se];return Xe===void 0&&(Xe=_t++,kr[Se]=Xe,Qr[Xe]=Se),Se=Xe,Fe()[ce+8>>>2>>>0]=Se,ce}(),typeof MainLoop<"u"&&MainLoop.Pb&&MainLoop.pause(),hr(()=>gn($t)))}else dr===2?(dr=0,hr(Rn),ks($t),$t=null,Kr.forEach(ze)):H(`invalid state: ${dr}`);return Hr}}(j=>{P().then(j)})}function yr(P){return P>>>=0,xr(async()=>{var j=await mr(P);return SA(j)})}var er=[];function Cr(P,j,J,ae){return J>>>=0,ae>>>=0,(P=er[P>>>0])(null,j=mr(j>>>0),J,ae)}var zA={},Pt=P=>{var j=zA[P];return j===void 0?Yr(P):j};function Xr(P,j,J,ae,ce){return J>>>=0,ae>>>=0,ce>>>=0,(P=er[P>>>0])(j=mr(j>>>0),j[J=Pt(J)],ae,ce)}var Ya=()=>typeof globalThis=="object"?globalThis:Function("return this")();function si(P){return(P>>>=0)==0?SA(Ya()):(P=Pt(P),SA(Ya()[P]))}var ai=P=>{var j=er.length;return er.push(P),j},ni=(P,j)=>{for(var J=Array(P),ae=0;ae>>2>>>0],"parameter "+ae);return J},ca=(P,j)=>Object.defineProperty(j,"name",{value:P});function ua(P,j,J){var ae=(j=ni(P,j>>>0)).shift();P--;var ce=`return function (obj, func, destructorsRef, args) { +`,Se=0,Xe=[];J===0&&Xe.push("obj");for(var uA=["retType"],xA=[ae],NA=0;NAct.name).join(", ")}) => ${ae.name}>`,ai(ca(J,P))}function ii(P){return P=Pt(P>>>0),SA(h[P])}function tn(P,j){return j>>>=0,P=mr(P>>>0),j=mr(j),SA(P[j])}function Ha(P){9<(P>>>=0)&&(vr[P+1]+=1)}function Fr(){return SA([])}function DA(P){P=mr(P>>>0);for(var j=Array(P.length),J=0;J>>0))}function yn(){return SA({})}function rn(P){for(var j=mr(P>>>=0);j.length;){var J=j.pop();j.pop()(J)}ws(P)}function Dn(P,j,J){j>>>=0,J>>>=0,P=mr(P>>>0),j=mr(j),J=mr(J),P[j]=J}function oi(P,j){return j>>>=0,P=(P=nr(P>>>0,"_emval_take_value")).readValueFromPointer(j),SA(P)}function Tn(P,j){P=-9007199254740992>P||9007199254740992>>=0,P=new Date(1e3*P),Fe()[j>>>2>>>0]=P.getUTCSeconds(),Fe()[j+4>>>2>>>0]=P.getUTCMinutes(),Fe()[j+8>>>2>>>0]=P.getUTCHours(),Fe()[j+12>>>2>>>0]=P.getUTCDate(),Fe()[j+16>>>2>>>0]=P.getUTCMonth(),Fe()[j+20>>>2>>>0]=P.getUTCFullYear()-1900,Fe()[j+24>>>2>>>0]=P.getUTCDay(),P=(P.getTime()-Date.UTC(P.getUTCFullYear(),0,1,0,0,0,0))/864e5|0,Fe()[j+28>>>2>>>0]=P}var Gn=P=>P%4==0&&(P%100!=0||P%400==0),sn=[0,31,60,91,121,152,182,213,244,274,305,335],Va=[0,31,59,90,120,151,181,212,243,273,304,334];function zt(P,j){P=-9007199254740992>P||9007199254740992>>=0,P=new Date(1e3*P),Fe()[j>>>2>>>0]=P.getSeconds(),Fe()[j+4>>>2>>>0]=P.getMinutes(),Fe()[j+8>>>2>>>0]=P.getHours(),Fe()[j+12>>>2>>>0]=P.getDate(),Fe()[j+16>>>2>>>0]=P.getMonth(),Fe()[j+20>>>2>>>0]=P.getFullYear()-1900,Fe()[j+24>>>2>>>0]=P.getDay();var J=(Gn(P.getFullYear())?sn:Va)[P.getMonth()]+P.getDate()-1|0;Fe()[j+28>>>2>>>0]=J,Fe()[j+36>>>2>>>0]=-60*P.getTimezoneOffset(),J=new Date(P.getFullYear(),6,1).getTimezoneOffset();var ae=new Date(P.getFullYear(),0,1).getTimezoneOffset();P=0|(J!=ae&&P.getTimezoneOffset()==Math.min(ae,J)),Fe()[j+32>>>2>>>0]=P}function an(P){P>>>=0;var j=new Date(Fe()[P+20>>>2>>>0]+1900,Fe()[P+16>>>2>>>0],Fe()[P+12>>>2>>>0],Fe()[P+8>>>2>>>0],Fe()[P+4>>>2>>>0],Fe()[P>>>2>>>0],0),J=Fe()[P+32>>>2>>>0],ae=j.getTimezoneOffset(),ce=new Date(j.getFullYear(),6,1).getTimezoneOffset(),Se=new Date(j.getFullYear(),0,1).getTimezoneOffset(),Xe=Math.min(Se,ce);return 0>J?Fe()[P+32>>>2>>>0]=+(ce!=Se&&Xe==ae):0>>2>>>0]=j.getDay(),J=(Gn(j.getFullYear())?sn:Va)[j.getMonth()]+j.getDate()-1|0,Fe()[P+28>>>2>>>0]=J,Fe()[P>>>2>>>0]=j.getSeconds(),Fe()[P+4>>>2>>>0]=j.getMinutes(),Fe()[P+8>>>2>>>0]=j.getHours(),Fe()[P+12>>>2>>>0]=j.getDate(),Fe()[P+16>>>2>>>0]=j.getMonth(),Fe()[P+20>>>2>>>0]=j.getYear(),P=j.getTime(),BigInt(isNaN(P)?-1:P/1e3)}function Pn(P,j,J,ae,ce,Se,Xe){return v?mA(16,1,P,j,J,ae,ce,Se,Xe):-52}function Os(P,j,J,ae,ce,Se){if(v)return mA(17,1,P,j,J,ae,ce,Se)}var Bs={},zs=()=>performance.timeOrigin+performance.now();function nn(P,j){if(v)return mA(18,1,P,j);if(Bs[P]&&(clearTimeout(Bs[P].id),delete Bs[P]),!j)return 0;var J=setTimeout(()=>{delete Bs[P],ze(()=>Sr(P,performance.timeOrigin+performance.now()))},j);return Bs[P]={id:J,qc:j},0}function Qn(P,j,J,ae){P>>>=0,j>>>=0,J>>>=0,ae>>>=0;var ce=new Date().getFullYear(),Se=new Date(ce,0,1).getTimezoneOffset();ce=new Date(ce,6,1).getTimezoneOffset();var Xe=Math.max(Se,ce);qe()[P>>>2>>>0]=60*Xe,Fe()[j>>>2>>>0]=+(Se!=ce),P=(j=uA=>{var xA=Math.abs(uA);return`UTC${0<=uA?"-":"+"}${String(Math.floor(xA/60)).padStart(2,"0")}${String(xA%60).padStart(2,"0")}`})(Se),j=j(ce),ceDate.now();function Fn(P,j,J){return 0<=P&&3>=P?(P===0?P=Date.now():P=performance.timeOrigin+performance.now(),Ee[J>>>0>>>3]=BigInt(Math.round(1e6*P)),0):28}var on=[],wa=(P,j)=>{on.length=0;for(var J;J=de()[P++>>>0];){var ae=J!=105;j+=(ae&=J!=112)&&j%8?4:0,on.push(J==112?qe()[j>>>2>>>0]:J==106?Ee[j>>>3]:J==105?Fe()[j>>>2>>>0]:MA()[j>>>3>>>0]),j+=ae?8:4}return on};function cA(P,j,J){return P>>>=0,j=wa(j>>>0,J>>>0),fA[P](...j)}function li(P,j,J){return P>>>=0,j=wa(j>>>0,J>>>0),fA[P](...j)}var TA=()=>{};function Hs(P,j){return k(WA(P>>>0,j>>>0))}var ln=()=>{throw HA+=1,"unwind"};function Zr(){return 4294901760}var os=()=>navigator.hardwareConcurrency;function cn(){return H("Cannot use emscripten_pc_get_function without -sUSE_OFFSET_CONVERTER"),0}function Ua(P){P>>>=0;var j=de().length;if(P<=j||4294901760=J;J*=2){var ae=j*(1+.2/J);ae=Math.min(ae,P+100663296);e:{ae=(Math.min(4294901760,65536*Math.ceil(Math.max(P,ae)/65536))-e.buffer.byteLength+65535)/65536|0;try{e.grow(ae),ye();var ce=1;break e}catch{}ce=void 0}if(ce)return!0}return!1}var fa=()=>(H("Cannot use convertFrameToPC (needed by __builtin_return_address) without -sUSE_OFFSET_CONVERTER"),0),Ar={},Sn=P=>{P.forEach(j=>{fa()})};function ci(){var P=Error().stack.toString().split(` +`);return P[0]=="Error"&&P.shift(),Sn(P),Ar.Lb=fa(),Ar.cc=P,Ar.Lb}function Ka(P,j,J){if(P>>>=0,j>>>=0,Ar.Lb==P)var ae=Ar.cc;else(ae=Error().stack.toString().split(` +`))[0]=="Error"&&ae.shift(),Sn(ae);for(var ce=3;ae[ce]&&fa()!=P;)++ce;for(P=0;P>>2>>>0]=fa();return P}var ra,ka={},un=()=>{if(!ra){var P,j={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:"./this.program"};for(P in ka)ka[P]===void 0?delete j[P]:j[P]=ka[P];var J=[];for(P in j)J.push(`${P}=${j[P]}`);ra=J}return ra};function Ea(P,j){if(v)return mA(19,1,P,j);P>>>=0,j>>>=0;var J=0;return un().forEach((ae,ce)=>{var Se=j+J;for(ce=qe()[P+4*ce>>>2>>>0]=Se,Se=0;Se>>0]=ae.charCodeAt(Se);ee()[ce>>>0]=0,J+=ae.length+1}),0}function BA(P,j){if(v)return mA(20,1,P,j);P>>>=0,j>>>=0;var J=un();qe()[P>>>2>>>0]=J.length;var ae=0;return J.forEach(ce=>ae+=ce.length+1),qe()[j>>>2>>>0]=ae,0}function fs(P){return v?mA(21,1,P):52}function On(P,j,J,ae){return v?mA(22,1,P,j,J,ae):52}function ui(P,j,J,ae){return v?mA(23,1,P,j,J,ae):70}var Ma=[null,[],[]];function ga(P,j,J,ae){if(v)return mA(24,1,P,j,J,ae);j>>>=0,J>>>=0,ae>>>=0;for(var ce=0,Se=0;Se>>2>>>0],uA=qe()[j+4>>>2>>>0];j+=8;for(var xA=0;xA>>0],ct=Ma[P];NA===0||NA===10?((P===1?d:k)(XA(ct)),ct.length=0):ct.push(NA)}ce+=uA}return qe()[ae>>>2>>>0]=ce,0}v||function(){for(var P=h.numThreads-1;P--;)Te();QA.unshift(()=>{Ue++,function(j){v?j():Promise.all(UA.map(se)).then(j)}(()=>AA())})}();for(var zn=Array(256),Ba=0;256>Ba;++Ba)zn[Ba]=String.fromCharCode(Ba);$s=zn,Ut=h.BindingError=class extends Error{constructor(P){super(P),this.name="BindingError"}},h.InternalError=class extends Error{constructor(P){super(P),this.name="InternalError"}},vr.push(0,1,void 0,1,null,1,!0,1,!1,1),h.count_emval_handles=()=>vr.length/2-5-Is.length;var qA,Nn=[nA,VA,je,LA,St,FA,cr,Gs,js,Cs,qs,ds,bs,Ms,Ps,Ws,Pn,Os,nn,Ea,BA,fs,On,ui,ga];(async function(){function P(ae,ce){return qA=ae.exports,qA=function(){var Se=qA,Xe={};for(let[uA,xA]of Object.entries(Se))Xe[uA]=typeof xA=="function"?(...NA)=>{jt.push(uA);try{return xA(...NA)}finally{Qe||(jt.pop(),$t&&dr===1&&jt.length===0&&(dr=0,HA+=1,hr(tr),typeof Fibers<"u"&&Fibers.rc()))}}:xA;return Xe}(),qA=function(){var Se=qA,Xe=xA=>NA=>xA(NA)>>>0,uA=xA=>()=>xA()>>>0;return(Se=Object.assign({},Se)).Da=Xe(Se.Da),Se.fb=uA(Se.fb),Se.hb=Xe(Se.hb),Se.tb=Xe(Se.tb),Se.ub=uA(Se.ub),Se.__cxa_get_exception_ptr=Xe(Se.__cxa_get_exception_ptr),Se}(),Zt.push(qA.ib),u=ce,AA(),qA}Ue++;var j=oA();if(h.instantiateWasm)return new Promise(ae=>{h.instantiateWasm(j,(ce,Se)=>{P(ce,Se),ae(ce.exports)})});if(v)return new Promise(ae=>{Le=ce=>{var Se=new WebAssembly.Instance(ce,oA());ae(P(Se,ce))}});Ke??(Ke=h.locateFile?h.locateFile?h.locateFile("ort-wasm-simd-threaded.jsep.wasm",L):L+"ort-wasm-simd-threaded.jsep.wasm":new URL("/assets/ort-wasm-simd-threaded.jsep-B0T3yYHD.wasm",import.meta.url).href);try{var J=await async function(ae){var ce=Ke;if(!Re&&typeof WebAssembly.instantiateStreaming=="function"&&!ue(ce))try{var Se=fetch(ce,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(Se,ae)}catch(Xe){k(`wasm streaming compile failed: ${Xe}`),k("falling back to ArrayBuffer instantiation")}return async function(Xe,uA){try{var xA=await async function(NA){if(!Re)try{var ct=await S(NA);return new Uint8Array(ct)}catch{}if(NA==Ke&&Re)NA=new Uint8Array(Re);else{if(!F)throw"both async and sync fetching of the wasm failed";NA=F(NA)}return NA}(Xe);return await WebAssembly.instantiate(xA,uA)}catch(NA){k(`failed to asynchronously prepare wasm: ${NA}`),H(NA)}}(ce,ae)}(j);return P(J.instance,J.module)}catch(ae){return p(ae),Promise.reject(ae)}})();var dn=P=>(dn=qA.Da)(P),Ln=()=>(Ln=qA.Ea)();h._OrtInit=(P,j)=>(h._OrtInit=qA.Fa)(P,j),h._OrtGetLastError=(P,j)=>(h._OrtGetLastError=qA.Ga)(P,j),h._OrtCreateSessionOptions=(P,j,J,ae,ce,Se,Xe,uA,xA,NA)=>(h._OrtCreateSessionOptions=qA.Ha)(P,j,J,ae,ce,Se,Xe,uA,xA,NA),h._OrtAppendExecutionProvider=(P,j,J,ae,ce)=>(h._OrtAppendExecutionProvider=qA.Ia)(P,j,J,ae,ce),h._OrtAddFreeDimensionOverride=(P,j,J)=>(h._OrtAddFreeDimensionOverride=qA.Ja)(P,j,J),h._OrtAddSessionConfigEntry=(P,j,J)=>(h._OrtAddSessionConfigEntry=qA.Ka)(P,j,J),h._OrtReleaseSessionOptions=P=>(h._OrtReleaseSessionOptions=qA.La)(P),h._OrtCreateSession=(P,j,J)=>(h._OrtCreateSession=qA.Ma)(P,j,J),h._OrtReleaseSession=P=>(h._OrtReleaseSession=qA.Na)(P),h._OrtGetInputOutputCount=(P,j,J)=>(h._OrtGetInputOutputCount=qA.Oa)(P,j,J),h._OrtGetInputOutputMetadata=(P,j,J,ae)=>(h._OrtGetInputOutputMetadata=qA.Pa)(P,j,J,ae),h._OrtFree=P=>(h._OrtFree=qA.Qa)(P),h._OrtCreateTensor=(P,j,J,ae,ce,Se)=>(h._OrtCreateTensor=qA.Ra)(P,j,J,ae,ce,Se),h._OrtGetTensorData=(P,j,J,ae,ce)=>(h._OrtGetTensorData=qA.Sa)(P,j,J,ae,ce),h._OrtReleaseTensor=P=>(h._OrtReleaseTensor=qA.Ta)(P),h._OrtCreateRunOptions=(P,j,J,ae)=>(h._OrtCreateRunOptions=qA.Ua)(P,j,J,ae),h._OrtAddRunConfigEntry=(P,j,J)=>(h._OrtAddRunConfigEntry=qA.Va)(P,j,J),h._OrtReleaseRunOptions=P=>(h._OrtReleaseRunOptions=qA.Wa)(P),h._OrtCreateBinding=P=>(h._OrtCreateBinding=qA.Xa)(P),h._OrtBindInput=(P,j,J)=>(h._OrtBindInput=qA.Ya)(P,j,J),h._OrtBindOutput=(P,j,J,ae)=>(h._OrtBindOutput=qA.Za)(P,j,J,ae),h._OrtClearBoundOutputs=P=>(h._OrtClearBoundOutputs=qA._a)(P),h._OrtReleaseBinding=P=>(h._OrtReleaseBinding=qA.$a)(P),h._OrtRunWithBinding=(P,j,J,ae,ce)=>(h._OrtRunWithBinding=qA.ab)(P,j,J,ae,ce),h._OrtRun=(P,j,J,ae,ce,Se,Xe,uA)=>(h._OrtRun=qA.bb)(P,j,J,ae,ce,Se,Xe,uA),h._OrtEndProfiling=P=>(h._OrtEndProfiling=qA.cb)(P),h._JsepOutput=(P,j,J)=>(h._JsepOutput=qA.db)(P,j,J),h._JsepGetNodeName=P=>(h._JsepGetNodeName=qA.eb)(P);var gr=()=>(gr=qA.fb)(),ks=h._free=P=>(ks=h._free=qA.gb)(P),Xa=h._malloc=P=>(Xa=h._malloc=qA.hb)(P),st=(P,j,J,ae,ce,Se)=>(st=qA.kb)(P,j,J,ae,ce,Se),vs=()=>(vs=qA.lb)(),fn=(P,j,J,ae,ce)=>(fn=qA.mb)(P,j,J,ae,ce),Ns=P=>(Ns=qA.nb)(P),Za=P=>(Za=qA.ob)(P),Sr=(P,j)=>(Sr=qA.pb)(P,j),Vs=()=>(Vs=qA.qb)(),Dr=(P,j)=>(Dr=qA.rb)(P,j),Es=P=>(Es=qA.sb)(P),Ja=P=>(Ja=qA.tb)(P),va=()=>(va=qA.ub)(),_n=h.dynCall_ii=(P,j)=>(_n=h.dynCall_ii=qA.vb)(P,j),gn=P=>(gn=qA.wb)(P),tr=()=>(tr=qA.xb)(),xa=P=>(xa=qA.yb)(P),Rn=()=>(Rn=qA.zb)();return h.stackSave=()=>va(),h.stackRestore=P=>Es(P),h.stackAlloc=P=>Ja(P),h.setValue=function(P,j,J="i8"){switch(J.endsWith("*")&&(J="*"),J){case"i1":case"i8":ee()[P>>>0]=j;break;case"i16":xe()[P>>>1>>>0]=j;break;case"i32":Fe()[P>>>2>>>0]=j;break;case"i64":Ee[P>>>3]=BigInt(j);break;case"float":pA()[P>>>2>>>0]=j;break;case"double":MA()[P>>>3>>>0]=j;break;case"*":qe()[P>>>2>>>0]=j;break;default:H(`invalid type for setValue: ${J}`)}},h.getValue=function(P,j="i8"){switch(j.endsWith("*")&&(j="*"),j){case"i1":case"i8":return ee()[P>>>0];case"i16":return xe()[P>>>1>>>0];case"i32":return Fe()[P>>>2>>>0];case"i64":return Ee[P>>>3];case"float":return pA()[P>>>2>>>0];case"double":return MA()[P>>>3>>>0];case"*":return qe()[P>>>2>>>0];default:H(`invalid type for getValue: ${j}`)}},h.UTF8ToString=WA,h.stringToUTF8=Ot,h.lengthBytesUTF8=Vt,function P(){if(0{wc(),ql=typeof location>"u"?void 0:location.origin,$2=import.meta.url>"file:"&&import.meta.url<"file;",Of=()=>{{if($2){let a=URL;return new URL(new a("ort.bundle.min.mjs",import.meta.url).href,ql).href}return import.meta.url}},ia=Of(),Zm=()=>{if(ia&&!ia.startsWith("blob:"))return ia.substring(0,ia.lastIndexOf("/")+1)},y0=(a,n)=>{try{let i=n??ia;return(i?new URL(a,i):new URL(a)).origin===ql}catch{return!1}},zf=(a,n)=>{let i=n??ia;try{return(i?new URL(a,i):new URL(a)).href}catch{return}},Nf=(a,n)=>`${n??"./"}${a}`,$l=async a=>{let n=await(await fetch(a,{credentials:"same-origin"})).blob();return URL.createObjectURL(n)},Lf=async a=>(await import(a)).default,e2=(P6(),t0(Vm)).default,Jm=async()=>{if(!ia)throw new Error("Failed to load proxy worker: cannot determine the script source URL.");if(y0(ia))return[void 0,e2()];let a=await $l(ia);return[a,e2(a)]},A2=(Q6(),t0(Km)).default,qm=async(a,n,i)=>{if(!a&&!n&&A2&&ia&&y0(ia))return[void 0,A2];{let g="ort-wasm-simd-threaded.jsep.mjs",p=a??zf(g,n),h=i&&p&&!y0(p,n),C=h?await $l(p):p??Nf(g,n);return[h?C:void 0,await Lf(C)]}}}),t2,D0,Fo,r2,_f,Rf,jf,Ec,pr,zi=bA(()=>{kc(),D0=!1,Fo=!1,r2=!1,_f=()=>{if(typeof SharedArrayBuffer>"u")return!1;try{return typeof MessageChannel<"u"&&new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch{return!1}},Rf=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,30,1,28,0,65,0,253,15,253,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,186,1,26,11]))}catch{return!1}},jf=()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,19,1,17,0,65,1,253,15,65,2,253,15,65,3,253,15,253,147,2,11]))}catch{return!1}},Ec=async a=>{if(D0)return Promise.resolve();if(Fo)throw new Error("multiple calls to 'initializeWebAssembly()' detected.");if(r2)throw new Error("previous call to 'initializeWebAssembly()' failed.");Fo=!0;let n=a.initTimeout,i=a.numThreads;if(a.simd!==!1){if(a.simd==="relaxed"){if(!jf())throw new Error("Relaxed WebAssembly SIMD is not supported in the current environment.")}else if(!Rf())throw new Error("WebAssembly SIMD is not supported in the current environment.")}let g=_f();i>1&&!g&&(typeof self<"u"&&!self.crossOriginIsolated&&console.warn("env.wasm.numThreads is set to "+i+", but this will not work unless you enable crossOriginIsolated mode. See https://web.dev/cross-origin-isolation-guide/ for more info."),console.warn("WebAssembly multi-threading is not supported in the current environment. Falling back to single-threading."),a.numThreads=i=1);let p=a.wasmPaths,h=typeof p=="string"?p:void 0,C=p==null?void 0:p.mjs,w=(C==null?void 0:C.href)??C,E=p==null?void 0:p.wasm,v=(E==null?void 0:E.href)??E,D=a.wasmBinary,[B,x]=await qm(w,h,i>1),S=!1,F=[];if(n>0&&F.push(new Promise(R=>{setTimeout(()=>{S=!0,R()},n)})),F.push(new Promise((R,K)=>{let L={numThreads:i};if(D)L.wasmBinary=D;else if(v||h)L.locateFile=N=>v??h+N;else if(w&&w.indexOf("blob:")!==0)L.locateFile=N=>new URL(N,w).href;else if(B){let N=Zm();N&&(L.locateFile=V=>N+V)}x(L).then(N=>{Fo=!1,D0=!0,t2=N,R(),B&&URL.revokeObjectURL(B)},N=>{Fo=!1,r2=!0,K(N)})})),await Promise.race(F),S)throw new Error(`WebAssembly backend initializing failed due to timeout: ${n}ms`)},pr=()=>{if(D0&&t2)return t2;throw new Error("WebAssembly is not initialized yet.")}}),Fa,K0,sr,Mc=bA(()=>{zi(),Fa=(a,n)=>{let i=pr(),g=i.lengthBytesUTF8(a)+1,p=i._malloc(g);return i.stringToUTF8(a,p,g),n.push(p),p},K0=(a,n,i,g)=>{if(typeof a=="object"&&a!==null){if(i.has(a))throw new Error("Circular reference in options");i.add(a)}Object.entries(a).forEach(([p,h])=>{let C=n?n+p:p;if(typeof h=="object")K0(h,C+".",i,g);else if(typeof h=="string"||typeof h=="number")g(C,h.toString());else if(typeof h=="boolean")g(C,h?"1":"0");else throw new Error(`Can't handle extra config type: ${typeof h}`)})},sr=a=>{let n=pr(),i=n.stackSave();try{let g=n.PTR_SIZE,p=n.stackAlloc(2*g);n._OrtGetLastError(p,p+g);let h=Number(n.getValue(p,g===4?"i32":"i64")),C=n.getValue(p+g,"*"),w=C?n.UTF8ToString(C):"";throw new Error(`${a} ERROR_CODE: ${h}, ERROR_MESSAGE: ${w}`)}finally{n.stackRestore(i)}}}),$m,F6=bA(()=>{zi(),Mc(),$m=a=>{let n=pr(),i=0,g=[],p=a||{};try{if((a==null?void 0:a.logSeverityLevel)===void 0)p.logSeverityLevel=2;else if(typeof a.logSeverityLevel!="number"||!Number.isInteger(a.logSeverityLevel)||a.logSeverityLevel<0||a.logSeverityLevel>4)throw new Error(`log serverity level is not valid: ${a.logSeverityLevel}`);if((a==null?void 0:a.logVerbosityLevel)===void 0)p.logVerbosityLevel=0;else if(typeof a.logVerbosityLevel!="number"||!Number.isInteger(a.logVerbosityLevel))throw new Error(`log verbosity level is not valid: ${a.logVerbosityLevel}`);(a==null?void 0:a.terminate)===void 0&&(p.terminate=!1);let h=0;return(a==null?void 0:a.tag)!==void 0&&(h=Fa(a.tag,g)),i=n._OrtCreateRunOptions(p.logSeverityLevel,p.logVerbosityLevel,!!p.terminate,h),i===0&&sr("Can't create run options."),(a==null?void 0:a.extra)!==void 0&&K0(a.extra,"",new WeakSet,(C,w)=>{let E=Fa(C,g),v=Fa(w,g);n._OrtAddRunConfigEntry(i,E,v)!==0&&sr(`Can't set a run config entry: ${C} - ${w}.`)}),[i,g]}catch(h){throw i!==0&&n._OrtReleaseRunOptions(i),g.forEach(C=>n._free(C)),h}}}),Wf,Yf,Hf,So,Vf,eh,S6=bA(()=>{zi(),Mc(),Wf=a=>{switch(a){case"disabled":return 0;case"basic":return 1;case"extended":return 2;case"all":return 99;default:throw new Error(`unsupported graph optimization level: ${a}`)}},Yf=a=>{switch(a){case"sequential":return 0;case"parallel":return 1;default:throw new Error(`unsupported execution mode: ${a}`)}},Hf=a=>{a.extra||(a.extra={}),a.extra.session||(a.extra.session={});let n=a.extra.session;n.use_ort_model_bytes_directly||(n.use_ort_model_bytes_directly="1"),a.executionProviders&&a.executionProviders.some(i=>(typeof i=="string"?i:i.name)==="webgpu")&&(a.enableMemPattern=!1)},So=(a,n,i,g)=>{let p=Fa(n,g),h=Fa(i,g);pr()._OrtAddSessionConfigEntry(a,p,h)!==0&&sr(`Can't set a session config entry: ${n} - ${i}.`)},Vf=async(a,n,i)=>{for(let g of n){let p=typeof g=="string"?g:g.name,h=[];switch(p){case"webnn":if(p="WEBNN",typeof g!="string"){let D=g==null?void 0:g.deviceType;D&&So(a,"deviceType",D,i)}break;case"webgpu":if(p="JS",typeof g!="string"){let D=g;if(D!=null&&D.preferredLayout){if(D.preferredLayout!=="NCHW"&&D.preferredLayout!=="NHWC")throw new Error(`preferredLayout must be either 'NCHW' or 'NHWC': ${D.preferredLayout}`);So(a,"preferredLayout",D.preferredLayout,i)}}break;case"wasm":case"cpu":continue;default:throw new Error(`not supported execution provider: ${p}`)}let C=Fa(p,i),w=h.length,E=0,v=0;if(w>0){E=pr()._malloc(w*pr().PTR_SIZE),i.push(E),v=pr()._malloc(w*pr().PTR_SIZE),i.push(v);for(let D=0;D{let n=pr(),i=0,g=[],p=a||{};Hf(p);try{let h=Wf(p.graphOptimizationLevel??"all"),C=Yf(p.executionMode??"sequential"),w=typeof p.logId=="string"?Fa(p.logId,g):0,E=p.logSeverityLevel??2;if(!Number.isInteger(E)||E<0||E>4)throw new Error(`log serverity level is not valid: ${E}`);let v=p.logVerbosityLevel??0;if(!Number.isInteger(v)||v<0||v>4)throw new Error(`log verbosity level is not valid: ${v}`);let D=typeof p.optimizedModelFilePath=="string"?Fa(p.optimizedModelFilePath,g):0;if(i=n._OrtCreateSessionOptions(h,!!p.enableCpuMemArena,!!p.enableMemPattern,C,!!p.enableProfiling,0,w,E,v,D),i===0&&sr("Can't create session options."),p.executionProviders&&await Vf(i,p.executionProviders,g),p.enableGraphCapture!==void 0){if(typeof p.enableGraphCapture!="boolean")throw new Error(`enableGraphCapture must be a boolean value: ${p.enableGraphCapture}`);So(i,"enableGraphCapture",p.enableGraphCapture.toString(),g)}if(p.freeDimensionOverrides)for(let[B,x]of Object.entries(p.freeDimensionOverrides)){if(typeof B!="string")throw new Error(`free dimension override name must be a string: ${B}`);if(typeof x!="number"||!Number.isInteger(x)||x<0)throw new Error(`free dimension override value must be a non-negative integer: ${x}`);let S=Fa(B,g);n._OrtAddFreeDimensionOverride(i,S,x)!==0&&sr(`Can't set a free dimension override: ${B} - ${x}.`)}return p.extra!==void 0&&K0(p.extra,"",new WeakSet,(B,x)=>{So(i,B,x,g)}),[i,g]}catch(h){throw i!==0&&n._OrtReleaseSessionOptions(i)!==0&&sr("Can't release session options."),g.forEach(C=>n._free(C)),h}}}),ro,Bn,Ti,Bc,X0,vc,xc,ec,ot=bA(()=>{ro=a=>{switch(a){case"int8":return 3;case"uint8":return 2;case"bool":return 9;case"int16":return 5;case"uint16":return 4;case"int32":return 6;case"uint32":return 12;case"float16":return 10;case"float32":return 1;case"float64":return 11;case"string":return 8;case"int64":return 7;case"uint64":return 13;case"int4":return 22;case"uint4":return 21;default:throw new Error(`unsupported data type: ${a}`)}},Bn=a=>{switch(a){case 3:return"int8";case 2:return"uint8";case 9:return"bool";case 5:return"int16";case 4:return"uint16";case 6:return"int32";case 12:return"uint32";case 10:return"float16";case 1:return"float32";case 11:return"float64";case 8:return"string";case 7:return"int64";case 13:return"uint64";case 22:return"int4";case 21:return"uint4";default:throw new Error(`unsupported data type: ${a}`)}},Ti=(a,n)=>{let i=[-1,4,1,1,2,2,4,8,-1,1,2,8,4,8,-1,-1,-1,-1,-1,-1,-1,.5,.5][a],g=typeof n=="number"?n:n.reduce((p,h)=>p*h,1);return i>0?Math.ceil(g*i):void 0},Bc=a=>{switch(a){case"float16":return typeof Float16Array<"u"&&Float16Array.from?Float16Array:Uint16Array;case"float32":return Float32Array;case"uint8":return Uint8Array;case"int8":return Int8Array;case"uint16":return Uint16Array;case"int16":return Int16Array;case"int32":return Int32Array;case"bool":return Uint8Array;case"float64":return Float64Array;case"uint32":return Uint32Array;case"int64":return BigInt64Array;case"uint64":return BigUint64Array;default:throw new Error(`unsupported type: ${a}`)}},X0=a=>{switch(a){case"verbose":return 0;case"info":return 1;case"warning":return 2;case"error":return 3;case"fatal":return 4;default:throw new Error(`unsupported logging level: ${a}`)}},vc=a=>a==="float32"||a==="float16"||a==="int32"||a==="int64"||a==="uint32"||a==="uint8"||a==="bool"||a==="uint4"||a==="int4",xc=a=>a==="float32"||a==="float16"||a==="int32"||a==="int64"||a==="uint32"||a==="uint64"||a==="int8"||a==="uint8"||a==="bool"||a==="uint4"||a==="int4",ec=a=>{switch(a){case"none":return 0;case"cpu":return 1;case"cpu-pinned":return 2;case"texture":return 3;case"gpu-buffer":return 4;case"ml-tensor":return 5;default:throw new Error(`unsupported data location: ${a}`)}}}),yc,Ah=bA(()=>{wc(),yc=async a=>{if(typeof a=="string"){let n=await fetch(a);if(!n.ok)throw new Error(`failed to load external data file: ${a}`);let i=n.headers.get("Content-Length"),g=i?parseInt(i,10):0;if(g<1073741824)return new Uint8Array(await n.arrayBuffer());{if(!n.body)throw new Error(`failed to load external data file: ${a}, no response body.`);let p=n.body.getReader(),h;try{h=new ArrayBuffer(g)}catch(w){if(w instanceof RangeError){let E=Math.ceil(g/65536);h=new WebAssembly.Memory({initial:E,maximum:E}).buffer}else throw w}let C=0;for(;;){let{done:w,value:E}=await p.read();if(w)break;let v=E.byteLength;new Uint8Array(h,C,v).set(E),C+=v}return new Uint8Array(h,0,g)}}else return a instanceof Blob?new Uint8Array(await a.arrayBuffer()):a instanceof Uint8Array?a:new Uint8Array(a)}}),Uf,Kf,Xf,Zf,Dc,Jf,Ft,xn=bA(()=>{ot(),Uf=["V","I","W","E","F"],Kf=(a,n)=>{console.log(`[${Uf[a]},${new Date().toISOString()}]${n}`)},Dc=(a,n)=>{Xf=a,Zf=n},Jf=(a,n)=>{let i=X0(a),g=X0(Xf);i>=g&&Kf(i,typeof n=="function"?n():n)},Ft=(...a)=>{Zf&&Jf(...a)}}),qf,uo,Ze,Z0,th,rh,sh,mt=bA(()=>{qf=class{static calcMatMulShape(a,n){return a[1]!==n[0]?void 0:[a[0],n[1]]}},uo=class{static calcShape(a,n,i=!1){let g=a.length,p=n.length;if(g===0)return n;if(p===0)return a;let h=Math.max(a.length,n.length),C=new Array(h);if(i){if(g<2||p<2)return;let w=qf.calcMatMulShape([a[g-2],a[g-1]],[n[p-2],n[p-1]]);if(w===void 0)return;[C[h-2],C[h-1]]=w}for(let w=i?3:1;w<=h;w++){let E=g-w<0?1:a[g-w],v=p-w<0?1:n[p-w];if(E!==v&&E>1&&v>1)return;let D=Math.max(E,v);if(E&&v)C[h-w]=Math.max(E,v);else{if(D>1)return;C[h-w]=0}}return C}static isValidBroadcast(a,n){let i=a.length,g=n.length;if(i>g)return!1;for(let p=1;p<=i;p++)if(a[i-p]!==1&&a[i-p]!==n[g-p])return!1;return!0}},Ze=class Y0{static size(n){return Y0.getSizeFromDimensionRange(n,0,n.length)}static convertShape(n,i=4){let g=n.length;if(g===0)return[];let p=new Array(g),h=g-1;for(;h>=0;){if(n[h]%i===0){p[h]=n[h]/i;break}if(i%n[h]!==0)throw new Error("cannot convert shape");p[h]=1,i/=n[h],h--}for(h--;h>=0;h--)p[h]=n[h];return p}static sizeFromDimension(n,i){if(i<0||i>n.length)throw new Error(`invalid dimension of ${i} for sizeFromDimension as Tensor has ${n.length} dimensions.`);return Y0.getSizeFromDimensionRange(n,i,n.length)}static sizeToDimension(n,i){if(i<0||i>n.length)throw new Error(`invalid dimension of ${i} for sizeToDimension as Tensor has ${n.length} dimensions.`);return Y0.getSizeFromDimensionRange(n,0,i)}static getSizeFromDimensionRange(n,i,g){let p=1;for(let h=i;h=0;--p)g[p]=g[p+1]*n[p+1];return g}static normalizeAxis(n,i){if(n<-i&&n>=i)throw new Error("unsupported axis for this operation.");return n<0?n+i:n}static normalizeAxes(n,i){return n.map(g=>this.normalizeAxis(g,i??n.length))}static sortBasedOnPerm(n,i){return i?i.map(g=>n[g]):n.slice().reverse()}static padShape(n,i){let g=n.length;return n.map((p,h)=>p+i[h]+i[h+g])}static areEqual(n,i){return n.length!==i.length?!1:n.every((g,p)=>g===i[p])}},Z0=class Ho{static adjustPoolAttributes(n,i,g,p,h,C){if(!n&&g.length!==i.length-2)throw new Error("length of specified kernel shapes should be 2 less than length of input dimensions");if(n)for(let w=0;w=g.length?g.push(i[w+2]):g[w]=i[w+2];for(let w=0;w=g[w]||C[w+g.length]>=g[w])throw new Error("pads should be smaller than kernel")}}static adjustPadsBasedOnAutoPad(n,i,g,p,h,C,w){if(w){if(h.length!==2*(n.length-2))throw new Error("length of pads should be twice the length of data dimensions");if(i.length!==n.length-2)throw new Error("length of strides should be the length of data dimensions");if(p.length!==n.length-2)throw new Error("length of kernel shapes should be the length of data dimensions");for(let E=0;E{ot(),Tc=(a,n)=>new(Bc(n))(a)}),Ac,s2,$f,a2,eg,n2,i2,o2,Ag,nh,O6=bA(()=>{xn(),Ac=(a,n=!0)=>{if(a.byteLength%8!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 8 (BigInt).");let i=a.byteLength/8,g=new BigInt64Array(a.buffer,a.byteOffset,i),p=new Int32Array(i);for(let h=0;h2147483647n||C<-2147483648n)throw new Error(`Overflow occurred when converting BigInt to Int32 at index ${h}: ${C}`);p[h]=Number(C)}return n?new Uint8Array(p.buffer):p},s2=(a,n=!0)=>{if(a.byteLength%4!==0)throw new Error("Invalid Uint8Array length - must be a multiple of 4 (Int32).");let i=a.byteLength/4,g=new Int32Array(a.buffer,a.byteOffset,i),p=BigInt64Array.from(g,BigInt);return n?new Uint8Array(p.buffer):p},$f=1,a2=()=>$f++,eg=new Map([["float32",32],["float16",16],["int32",32],["uint32",32],["int64",64],["uint64",64],["int8",8],["uint8",8],["int4",4],["uint4",4]]),n2=(a,n)=>{let i=eg.get(a);if(!i)throw new Error("Unsupported data type.");return n.length>0?Math.ceil(n.reduce((g,p)=>g*p)*i/8):0},i2=class{constructor(a){this.shouldConvertInt64toInt32=!1,this.isInt64ToInt32Converted=!1;let{sessionId:n,context:i,tensor:g,dataType:p,shape:h,shouldConvertInt64toInt32:C=!1}=a;this.sessionId=n,this.mlContext=i,this.mlTensor=g,this.dataType=p,this.tensorShape=h,this.shouldConvertInt64toInt32=C}get tensor(){return this.mlTensor}get type(){return this.dataType}get shape(){return this.tensorShape}get byteLength(){return n2(this.dataType,this.tensorShape)}destroy(){Ft("verbose",()=>"[WebNN] TensorWrapper.destroy"),this.mlTensor.destroy()}write(a){this.mlContext.writeTensor(this.mlTensor,a)}async read(a,n){if(a){let i=await this.mlContext.readTensor(this.mlTensor),g=s2(new Uint8Array(i));if(n){(n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)).set(g);return}else return g.buffer}else return n?this.mlContext.readTensor(this.mlTensor,n):this.mlContext.readTensor(this.mlTensor)}canReuseTensor(a,n,i){return this.mlContext===a&&this.dataType===n&&this.tensorShape.length===i.length&&this.tensorShape.every((g,p)=>g===i[p])}setIsInt64ToInt32Converted(a){this.isInt64ToInt32Converted=a}},o2=class{constructor(a,n){this.tensorManager=a,this.wrapper=n}get tensorWrapper(){return this.wrapper}releaseTensor(){this.tensorWrapper&&(this.tensorManager.releaseTensor(this.tensorWrapper),this.wrapper=void 0)}async ensureTensor(a,n,i,g){let p=n,h=this.tensorManager.getMLContext(a),C=p==="int64"&&!h.opSupportLimits().input.dataTypes.includes("int64");if(C&&(p="int32",Ft("verbose",()=>"[WebNN] TensorIdTracker.ensureTensor: convert dataType from int64 to int32")),this.wrapper){if(this.wrapper.canReuseTensor(h,p,i))return this.wrapper.tensor;if(g){if(this.wrapper.byteLength!==n2(p,i))throw new Error("Unable to copy data to tensor with different size.");this.activeUpload=new Uint8Array(await this.wrapper.read())}this.tensorManager.releaseTensor(this.wrapper)}let w=typeof MLTensorUsage>"u"?void 0:MLTensorUsage.READ|MLTensorUsage.WRITE;return this.wrapper=await this.tensorManager.getCachedTensor(a,p,i,w,!0,!0,C),g&&this.activeUpload&&(this.wrapper.write(this.activeUpload),this.activeUpload=void 0),this.wrapper.tensor}upload(a){let n=a;if(this.wrapper)if(this.wrapper.shouldConvertInt64toInt32&&(n=Ac(a,!0),this.wrapper.setIsInt64ToInt32Converted(!0)),n.byteLength===this.wrapper.byteLength){this.wrapper.write(n);return}else Ft("verbose",()=>"Data size does not match tensor size. Releasing tensor."),this.releaseTensor();this.activeUpload?this.activeUpload.set(n):this.activeUpload=new Uint8Array(n)}async download(a){var n,i,g;if(this.activeUpload){let p=(n=this.wrapper)!=null&&n.isInt64ToInt32Converted?s2(this.activeUpload):this.activeUpload;if(a){a instanceof ArrayBuffer?new Uint8Array(a).set(p):new Uint8Array(a.buffer,a.byteOffset,a.byteLength).set(p);return}else return p.buffer}if(!this.wrapper)throw new Error("Tensor has not been created.");return a?this.wrapper.read((i=this.wrapper)==null?void 0:i.shouldConvertInt64toInt32,a):this.wrapper.read((g=this.wrapper)==null?void 0:g.shouldConvertInt64toInt32)}},Ag=class{constructor(a){this.backend=a,this.tensorTrackersById=new Map,this.freeTensors=[],this.externalTensors=new Set}getMLContext(a){let n=this.backend.getMLContext(a);if(!n)throw new Error("MLContext not found for session.");return n}reserveTensorId(){let a=a2();return this.tensorTrackersById.set(a,new o2(this)),a}releaseTensorId(a){let n=this.tensorTrackersById.get(a);n&&(this.tensorTrackersById.delete(a),n.tensorWrapper&&this.releaseTensor(n.tensorWrapper))}async ensureTensor(a,n,i,g,p){Ft("verbose",()=>`[WebNN] TensorManager.ensureTensor {tensorId: ${n}, dataType: ${i}, shape: ${g}, copyOld: ${p}}`);let h=this.tensorTrackersById.get(n);if(!h)throw new Error("Tensor not found.");return h.ensureTensor(a,i,g,p)}upload(a,n){let i=this.tensorTrackersById.get(a);if(!i)throw new Error("Tensor not found.");i.upload(n)}async download(a,n){Ft("verbose",()=>`[WebNN] TensorManager.download {tensorId: ${a}, dstBuffer: ${n==null?void 0:n.byteLength}}`);let i=this.tensorTrackersById.get(a);if(!i)throw new Error("Tensor not found.");return i.download(n)}releaseTensorsForSession(a){for(let n of this.freeTensors)n.sessionId===a&&n.destroy();this.freeTensors=this.freeTensors.filter(n=>n.sessionId!==a)}registerTensor(a,n,i,g){let p=this.getMLContext(a),h=a2(),C=new i2({sessionId:a,context:p,tensor:n,dataType:i,shape:g});return this.tensorTrackersById.set(h,new o2(this,C)),this.externalTensors.add(C),h}async getCachedTensor(a,n,i,g,p,h,C=!1){let w=this.getMLContext(a);for(let[v,D]of this.freeTensors.entries())if(D.canReuseTensor(w,n,i)){Ft("verbose",()=>`[WebNN] Reusing tensor {dataType: ${n}, shape: ${i}}`);let B=this.freeTensors.splice(v,1)[0];return B.sessionId=a,B}Ft("verbose",()=>`[WebNN] MLContext.createTensor {dataType: ${n}, shape: ${i}}`);let E=await w.createTensor({dataType:n,shape:i,dimensions:i,usage:g,writable:p,readable:h});return new i2({sessionId:a,context:w,tensor:E,dataType:n,shape:i,shouldConvertInt64toInt32:C})}releaseTensor(a){this.externalTensors.has(a)&&this.externalTensors.delete(a),this.freeTensors.push(a)}},nh=(...a)=>new Ag(...a)}),T0,tg,ih,z6=bA(()=>{ot(),zi(),ah(),O6(),xn(),T0=new Map([[1,"float32"],[10,"float16"],[6,"int32"],[12,"uint32"],[7,"int64"],[13,"uint64"],[22,"int4"],[21,"uint4"],[3,"int8"],[2,"uint8"],[9,"uint8"]]),tg=(a,n)=>{if(a===n)return!0;if(a===void 0||n===void 0)return!1;let i=Object.keys(a).sort(),g=Object.keys(n).sort();return i.length===g.length&&i.every((p,h)=>p===g[h]&&a[p]===n[p])},ih=class{constructor(a){this.tensorManager=nh(this),this.mlContextBySessionId=new Map,this.sessionIdsByMLContext=new Map,this.mlContextCache=[],this.sessionGraphInputs=new Map,this.temporaryGraphInputs=[],this.temporarySessionTensorIds=new Map,Dc(a.logLevel,!!a.debug)}get currentSessionId(){if(this.activeSessionId===void 0)throw new Error("No active session");return this.activeSessionId}onRunStart(a){Ft("verbose",()=>`[WebNN] onRunStart {sessionId: ${a}}`),this.activeSessionId=a}onRunEnd(a){Ft("verbose",()=>`[WebNN] onRunEnd {sessionId: ${a}}`);let n=this.temporarySessionTensorIds.get(a);if(n){for(let i of n)Ft("verbose",()=>`[WebNN] releasing temporary tensor {tensorId: ${i}}`),this.tensorManager.releaseTensorId(i);this.temporarySessionTensorIds.delete(a),this.activeSessionId=void 0}}async createMLContext(a){if(a instanceof GPUDevice){let i=this.mlContextCache.findIndex(g=>g.gpuDevice===a);if(i!==-1)return this.mlContextCache[i].mlContext;{let g=await navigator.ml.createContext(a);return this.mlContextCache.push({gpuDevice:a,mlContext:g}),g}}else if(a===void 0){let i=this.mlContextCache.findIndex(g=>g.options===void 0&&g.gpuDevice===void 0);if(i!==-1)return this.mlContextCache[i].mlContext;{let g=await navigator.ml.createContext();return this.mlContextCache.push({mlContext:g}),g}}let n=this.mlContextCache.findIndex(i=>tg(i.options,a));if(n!==-1)return this.mlContextCache[n].mlContext;{let i=await navigator.ml.createContext(a);return this.mlContextCache.push({options:a,mlContext:i}),i}}registerMLContext(a,n){this.mlContextBySessionId.set(a,n);let i=this.sessionIdsByMLContext.get(n);i||(i=new Set,this.sessionIdsByMLContext.set(n,i)),i.add(a),this.temporaryGraphInputs.length>0&&(this.sessionGraphInputs.set(a,this.temporaryGraphInputs),this.temporaryGraphInputs=[])}onReleaseSession(a){this.sessionGraphInputs.delete(a);let n=this.mlContextBySessionId.get(a);if(!n)return;this.tensorManager.releaseTensorsForSession(a),this.mlContextBySessionId.delete(a);let i=this.sessionIdsByMLContext.get(n);if(i.delete(a),i.size===0){this.sessionIdsByMLContext.delete(n);let g=this.mlContextCache.findIndex(p=>p.mlContext===n);g!==-1&&this.mlContextCache.splice(g,1)}}getMLContext(a){return this.mlContextBySessionId.get(a)}reserveTensorId(){return this.tensorManager.reserveTensorId()}releaseTensorId(a){Ft("verbose",()=>`[WebNN] releaseTensorId {tensorId: ${a}}`),this.tensorManager.releaseTensorId(a)}async ensureTensor(a,n,i,g,p){let h=T0.get(i);if(!h)throw new Error(`Unsupported ONNX data type: ${i}`);return this.tensorManager.ensureTensor(a??this.currentSessionId,n,h,g,p)}async createTemporaryTensor(a,n,i){Ft("verbose",()=>`[WebNN] createTemporaryTensor {onnxDataType: ${n}, shape: ${i}}`);let g=T0.get(n);if(!g)throw new Error(`Unsupported ONNX data type: ${n}`);let p=this.tensorManager.reserveTensorId();await this.tensorManager.ensureTensor(a,p,g,i,!1);let h=this.temporarySessionTensorIds.get(a);return h?h.push(p):this.temporarySessionTensorIds.set(a,[p]),p}uploadTensor(a,n){if(!pr().shouldTransferToMLTensor)throw new Error("Trying to upload to a MLTensor while shouldTransferToMLTensor is false");Ft("verbose",()=>`[WebNN] uploadTensor {tensorId: ${a}, data: ${n.byteLength}}`),this.tensorManager.upload(a,n)}async downloadTensor(a,n){return this.tensorManager.download(a,n)}createMLTensorDownloader(a,n){return async()=>{let i=await this.tensorManager.download(a);return Tc(i,n)}}registerMLTensor(a,n,i,g){let p=T0.get(i);if(!p)throw new Error(`Unsupported ONNX data type: ${i}`);let h=this.tensorManager.registerTensor(a,n,p,g);return Ft("verbose",()=>`[WebNN] registerMLTensor {tensor: ${n}, dataType: ${p}, dimensions: ${g}} -> {tensorId: ${h}}`),h}registerMLConstant(a,n,i,g,p,h,C=!1){if(!h)throw new Error("External mounted files are not available.");let w=a;a.startsWith("./")&&(w=a.substring(2));let E=h.get(w);if(!E)throw new Error(`File with name ${w} not found in preloaded files.`);if(n+i>E.byteLength)throw new Error("Out of bounds: data offset and length exceed the external file data size.");let v=E.slice(n,n+i).buffer,D;switch(p.dataType){case"float32":D=new Float32Array(v);break;case"float16":D=typeof Float16Array<"u"&&Float16Array.from?new Float16Array(v):new Uint16Array(v);break;case"int32":D=new Int32Array(v);break;case"uint32":D=new Uint32Array(v);break;case"int64":C?(D=Ac(new Uint8Array(v),!1),p.dataType="int32"):D=new BigInt64Array(v);break;case"uint64":D=new BigUint64Array(v);break;case"int8":D=new Int8Array(v);break;case"int4":case"uint4":case"uint8":D=new Uint8Array(v);break;default:throw new Error(`Unsupported data type: ${p.dataType} in creating WebNN Constant from external data.`)}return Ft("verbose",()=>`[WebNN] registerMLConstant {dataType: ${p.dataType}, shape: ${p.shape}}} ${C?"(Note: it was int64 data type and registered to int32 as workaround)":""}`),g.constant(p,D)}registerGraphInput(a){this.temporaryGraphInputs.push(a)}isGraphInput(a,n){let i=this.sessionGraphInputs.get(a);return i?i.includes(n):!1}isInt64Supported(a){var n;return!!((n=this.mlContextBySessionId.get(a))!=null&&n.opSupportLimits().input.dataTypes.includes("int64"))}flush(){}}}),Gc=bA(()=>{}),l2,G0,P0,rg,sg,c2,tc,ag,oh,N6=bA(()=>{xn(),Gc(),l2=new Map([[64,250],[128,200],[256,200],[512,200],[2048,230],[4096,200],[8192,50],[16384,50],[32768,50],[65536,50],[131072,50],[262144,50],[524288,50],[1048576,50],[2097152,30],[4194304,20],[8388608,10],[12582912,10],[16777216,10],[26214400,15],[33554432,22],[44236800,2],[58982400,6],[67108864,6],[134217728,6],[167772160,6]]),G0=[],P0=a=>Math.ceil(Number(a)/16)*16,rg=a=>{for(let n=0;nsg++,tc=async(a,n,i,g)=>{let p=P0(i),h=a.device.createBuffer({size:p,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ});try{let C=a.getCommandEncoder();a.endComputePass(),C.copyBufferToBuffer(n,0,h,0,p),a.flush(),await h.mapAsync(GPUMapMode.READ);let w=h.getMappedRange();if(g){let E=g();return E.set(new Uint8Array(w,0,i)),E}else return new Uint8Array(w.slice(0,i))}finally{h.destroy()}},ag=class{constructor(a){this.backend=a,this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.buffersPending=[],this.capturedPendingBuffers=new Map;for(let[n]of l2)G0.push(n),this.freeBuffers.set(n,[]),this.freeUniformBuffers.set(n,[]);this.sessionCount=0}upload(a,n){let i=n.buffer,g=n.byteOffset,p=n.byteLength,h=P0(p),C=this.storageCache.get(a);if(!C)throw new Error("gpu data for uploading does not exist");if(Number(C.originalSize)!==p)throw new Error(`inconsistent data size. gpu data size=${C.originalSize}, data size=${p}`);let w=this.backend.device.createBuffer({mappedAtCreation:!0,size:h,usage:GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC}),E=w.getMappedRange();new Uint8Array(E).set(new Uint8Array(i,g,p)),w.unmap();let v=this.backend.device.createCommandEncoder();v.copyBufferToBuffer(w,0,C.gpuData.buffer,0,h),this.backend.device.queue.submit([v.finish()]),w.destroy(),Ft("verbose",()=>`[WebGPU] GpuDataManager.upload(id=${a})`)}memcpy(a,n){let i=this.storageCache.get(a);if(!i)throw new Error("source gpu data for memcpy does not exist");let g=this.storageCache.get(n);if(!g)throw new Error("destination gpu data for memcpy does not exist");if(i.originalSize!==g.originalSize)throw new Error("inconsistent source and destination gpu data size");let p=P0(i.originalSize),h=this.backend.getCommandEncoder();this.backend.endComputePass(),h.copyBufferToBuffer(i.gpuData.buffer,0,g.gpuData.buffer,0,p)}registerExternalBuffer(a,n,i){let g;if(i){if(g=i[0],a===i[1])return Ft("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${n}) => id=${g}, buffer is the same, skip.`),g;if(this.backend.capturedCommandList.has(this.backend.currentSessionId))throw new Error(`Registering a different external buffer under graph capture mode is not supported yet. + Please use the previous external buffer!`)}else g=c2();return this.storageCache.set(g,{gpuData:{id:g,type:0,buffer:a},originalSize:n}),Ft("verbose",()=>`[WebGPU] GpuDataManager.registerExternalBuffer(size=${n}) => id=${g}, registered.`),g}unregisterExternalBuffer(a){a!==void 0&&(this.storageCache.delete(a),Ft("verbose",()=>`[WebGPU] GpuDataManager.unregisterExternalBuffer() => id=${a}`))}create(a,n=GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST){let i=rg(a),g,p=(n&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE,h=(n&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM;if(p||h){let w=(p?this.freeBuffers:this.freeUniformBuffers).get(i);w?w.length>0?g=w.pop():g=this.backend.device.createBuffer({size:i,usage:n}):g=this.backend.device.createBuffer({size:i,usage:n})}else g=this.backend.device.createBuffer({size:i,usage:n});let C={id:c2(),type:0,buffer:g};return this.storageCache.set(C.id,{gpuData:C,originalSize:Number(a)}),Ft("verbose",()=>`[WebGPU] GpuDataManager.create(size=${a}) => id=${C.id}`),C}get(a){var n;return(n=this.storageCache.get(a))==null?void 0:n.gpuData}release(a){let n=typeof a=="bigint"?Number(a):a,i=this.storageCache.get(n);if(!i){if(this.storageCache.size===0)return 0;throw new Error("releasing data does not exist")}return Ft("verbose",()=>`[WebGPU] GpuDataManager.release(id=${n}), gpuDataId=${i.gpuData.id}`),this.storageCache.delete(n),this.buffersPending.push(i.gpuData.buffer),i.originalSize}async download(a,n){let i=this.storageCache.get(Number(a));if(!i)throw new Error("data does not exist");await tc(this.backend,i.gpuData.buffer,i.originalSize,n)}refreshPendingBuffers(){if(this.buffersPending.length!==0)if(this.backend.sessionStatus==="default"){for(let a of this.buffersPending){let n=l2.get(a.size);if((a.usage&GPUBufferUsage.STORAGE)===GPUBufferUsage.STORAGE){let i=this.freeBuffers.get(a.size)||[];n===void 0||i.length>=n?a.destroy():i.push(a)}else if((a.usage&GPUBufferUsage.UNIFORM)===GPUBufferUsage.UNIFORM){let i=this.freeUniformBuffers.get(a.size)||[];n===void 0||i.length>=n?a.destroy():i.push(a)}else a.destroy()}this.buffersPending=[]}else{let a=this.capturedPendingBuffers.get(this.backend.currentSessionId);a||(a=[],this.capturedPendingBuffers.set(this.backend.currentSessionId,a));for(let n of this.buffersPending)a.push(n);this.buffersPending=[]}}dispose(){this.freeBuffers.forEach(a=>{a.forEach(n=>{n.destroy()})}),this.freeUniformBuffers.forEach(a=>{a.forEach(n=>{n.destroy()})}),this.storageCache.forEach(a=>{a.gpuData.buffer.destroy()}),this.capturedPendingBuffers.forEach(a=>{a.forEach(n=>{n.destroy()})}),this.storageCache=new Map,this.freeBuffers=new Map,this.freeUniformBuffers=new Map,this.capturedPendingBuffers=new Map}onCreateSession(){this.sessionCount+=1}onReleaseSession(a){let n=this.capturedPendingBuffers.get(a);n&&(n.forEach(i=>{i.destroy()}),this.capturedPendingBuffers.delete(a)),this.sessionCount-=1,this.sessionCount===0&&(Ft("warning",()=>"[WebGPU] Clearing webgpu buffer cache"),this.storageCache.forEach(i=>{i.gpuData.buffer.destroy()}),this.storageCache=new Map)}},oh=(...a)=>new ag(...a)}),ng,Xt,Wr=bA(()=>{ng=class{constructor(a){Object.assign(this,a)}get cacheKey(){return this.key||(this.key=Object.getOwnPropertyNames(this).sort().map(a=>`${this[a]}`).join(";")),this.key}},Xt=a=>new ng(a)}),fo,Q0,us,ys,et,Nr,rc,ao,ti,JA,Oo,rA,YA,lh,Pc,ig,ch,bt=bA(()=>{ot(),mt(),fo=64,Q0=(a,n)=>{if(n===3)throw new Error("vec3 has same alignment as vec4, use vec4 instead");switch(Number(a)){case 10:return n>1?`vec${n}`:"f16";case 1:return n>1?`vec${n}`:"f32";case 6:return n>1?`vec${n}`:"i32";case 12:return n>1?`vec${n}`:"u32";case 7:if(n>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2","i32"];case 13:if(n>1)throw new Error("currently not supported vecX of uint64 yet");return["vec2","u32"];case 9:if(n!==4)throw new Error("bool must be vec4");return["u32","vec4"];case 22:return"i32";case 21:return"u32";default:throw new Error(`Unknown data type: ${a}`)}},us=(a,n=1)=>{let i=Q0(a,n);return typeof i=="string"?i:i[0]},ys=(a,n=1)=>{let i=Q0(a,n);return typeof i=="string"?i:i[1]},et=(...a)=>{let n=[];return a.forEach(i=>{i.length!==0&&n.push({type:12,data:i},{type:12,data:Ze.computeStrides(i)})}),n},Nr=a=>a%4===0?4:a%2===0?2:1,rc=(a="f32",n,i="0")=>!n||n===1?`${a}(${i})`:`vec${n}<${a}>(${i})`,ao=(a,n,i)=>a==="f32"?i:n===1?`f32(${i})`:`vec${n}(${i})`,ti=(a,n)=>n===4?`(${a}.x + ${a}.y + ${a}.z + ${a}.w)`:n===2?`(${a}.x + ${a}.y)`:n===3?`(${a}.x + ${a}.y + ${a}.z)`:a,JA=(a,n,i,g)=>a.startsWith("uniforms.")&&i>4?typeof n=="string"?g==="f16"?`${a}[(${n}) / 8][(${n}) % 8 / 4][(${n}) % 8 % 4]`:`${a}[(${n}) / 4][(${n}) % 4]`:g==="f16"?`${a}[${Math.floor(n/8)}][${Math.floor(n%8/4)}][${n%8%4}]`:`${a}[${Math.floor(n/4)}][${n%4}]`:i>1?`${a}[${n}]`:a,Oo=(a,n,i,g,p)=>{let h=typeof i=="number",C=h?i:i.length,w=[...new Array(C).keys()],E=C<2?"u32":C<=4?`vec${C}`:`array`,v=Q0(n,p),D=typeof v=="string"?v:v[1],B=typeof v=="string"?v:v[0],x={indices:E,value:D,storage:B,tensor:n},S=ue=>typeof ue=="string"?ue:`${ue}u`,F={offsetToIndices:!1,indicesToOffset:!1,broadcastedIndicesToOffset:!1,set:!1,setByIndices:!1,get:!1,getByIndices:!1},R=h?"uniforms.":"",K=`${R}${a}_shape`,L=`${R}${a}_strides`,N="";for(let ue=0;ue ${x.indices} { + var indices: ${x.indices}; + var current = offset; + ${N} + return indices; + }`,d=ue=>(F.offsetToIndices=!0,C<2?ue:`o2i_${a}(${ue})`),k=[];if(C>=2)for(let ue=C-1;ue>=0;ue--)k.push(`${JA(L,ue,C)} * (indices[${ue}])`);let e=C<2?"":` + fn i2o_${a}(indices: ${x.indices}) -> u32 { + return ${k.join("+")}; + }`,u=ue=>(F.indicesToOffset=!0,C<2?ue:`i2o_${a}(${ue})`),y=(...ue)=>C===0?"0u":`${x.indices}(${ue.map(S).join(",")})`,$=(ue,ee)=>C<2?`${ue}`:`${JA(ue,ee,C)}`,T=(ue,ee,de)=>C<2?`${ue}=${de};`:`${JA(ue,ee,C)}=${de};`,O={},Ce=(ue,ee)=>{F.broadcastedIndicesToOffset=!0;let de=`${ee.name}broadcastedIndicesTo${a}Offset`;if(de in O)return`${de}(${ue})`;let xe=[];for(let Ye=C-1;Ye>=0;Ye--){let Fe=ee.indicesGet("outputIndices",Ye+ee.rank-C);xe.push(`${$(L,Ye)} * (${Fe} % ${$(K,Ye)})`)}return O[de]=`fn ${de}(outputIndices: ${ee.type.indices}) -> u32 { + return ${xe.length>0?xe.join("+"):"0u"}; + }`,`${de}(${ue})`},Ae=(ue,ee)=>(()=>{if(x.storage===x.value)return`${a}[${ue}]=${ee};`;if(x.storage==="vec2"&&x.value==="i32")return`${a}[${ue}]=vec2(u32(${ee}), select(0u, 0xFFFFFFFFu, ${ee} < 0));`;if(x.storage==="vec2"&&x.value==="u32")return`${a}[${ue}]=vec2(u32(${ee}), 0u);`;if(x.storage==="u32"&&x.value==="vec4")return`${a}[${ue}]=dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(${ee}));`;throw new Error(`not supported combination of storage type ${x.storage} and value type ${x.value} yet`)})(),be=ue=>(()=>{if(x.storage===x.value)return`${a}[${ue}]`;if(x.storage==="vec2"&&x.value==="i32")return`i32(${a}[${ue}].x)`;if(x.storage==="vec2"&&x.value==="u32")return`u32(${a}[${ue}].x)`;if(x.storage==="u32"&&x.value==="vec4")return`vec4(bool(${a}[${ue}] & 0xFFu), bool(${a}[${ue}] & 0xFF00u), bool(${a}[${ue}] & 0xFF0000u), bool(${a}[${ue}] & 0xFF000000u))`;throw new Error(`not supported combination of storage type ${x.storage} and value type ${x.value} yet`)})(),he=C<2?"":` + fn get_${a}ByIndices(indices: ${x.indices}) -> ${D} { + return ${be(`i2o_${a}(indices)`)}; + }`,Ee=C<2?"":(()=>{let ue=w.map(de=>`d${de}: u32`).join(", "),ee=w.map(de=>`d${de}`).join(", ");return` + fn get_${a}(${ue}) -> ${D} { + return get_${a}ByIndices(${y(ee)}); + }`})(),ke=(...ue)=>{if(ue.length!==C)throw new Error(`indices length must be ${C}`);let ee=ue.map(S).join(",");return C===0?be("0u"):C===1?be(ee[0]):(F.get=!0,F.getByIndices=!0,F.indicesToOffset=!0,`get_${a}(${ee})`)},De=ue=>C<2?be(ue):(F.getByIndices=!0,F.indicesToOffset=!0,`get_${a}ByIndices(${ue})`),Re=C<2?"":` + fn set_${a}ByIndices(indices: ${x.indices}, value: ${D}) { + ${Ae(`i2o_${a}(indices)`,"value")} + }`,Qe=C<2?"":(()=>{let ue=w.map(de=>`d${de}: u32`).join(", "),ee=w.map(de=>`d${de}`).join(", ");return` + fn set_${a}(${ue}, value: ${D}) { + set_${a}ByIndices(${y(ee)}, value); + }`})();return{impl:()=>{let ue=[],ee=!1;return F.offsetToIndices&&(ue.push(V),ee=!0),F.indicesToOffset&&(ue.push(e),ee=!0),F.broadcastedIndicesToOffset&&(Object.values(O).forEach(de=>ue.push(de)),ee=!0),F.set&&(ue.push(Qe),ee=!0),F.setByIndices&&(ue.push(Re),ee=!0),F.get&&(ue.push(Ee),ee=!0),F.getByIndices&&(ue.push(he),ee=!0),!h&&ee&&ue.unshift(`const ${K} = ${x.indices}(${i.join(",")});`,`const ${L} = ${x.indices}(${Ze.computeStrides(i).join(",")});`),ue.join(` +`)},type:x,offsetToIndices:d,indicesToOffset:u,broadcastedIndicesToOffset:Ce,indices:y,indicesGet:$,indicesSet:T,set:(...ue)=>{if(ue.length!==C+1)throw new Error(`indices length must be ${C}`);let ee=ue[C];if(typeof ee!="string")throw new Error("value must be string");let de=ue.slice(0,C).map(S).join(",");return C===0?Ae("0u",ee):C===1?Ae(de[0],ee):(F.set=!0,F.setByIndices=!0,F.indicesToOffset=!0,`set_${a}(${de}, ${ee})`)},setByOffset:Ae,setByIndices:(ue,ee)=>C<2?Ae(ue,ee):(F.setByIndices=!0,F.indicesToOffset=!0,`set_${a}ByIndices(${ue}, ${ee});`),get:ke,getByOffset:be,getByIndices:De,usage:g,name:a,strides:L,shape:K,rank:C}},rA=(a,n,i,g=1)=>Oo(a,n,i,"input",g),YA=(a,n,i,g=1)=>Oo(a,n,i,"output",g),lh=(a,n,i)=>Oo(a,n,i,"atomicOutput",1),Pc=(a,n,i,g=1)=>Oo(a,n,i,"internal",g),ig=class{constructor(a,n){this.normalizedDispatchGroup=a,this.limits=n,this.internalVariables=[],this.variables=[],this.uniforms=[],this.variableIndex=0}guardAgainstOutOfBoundsWorkgroupSizes(a){return`if (global_idx >= ${typeof a=="number"?`${a}u`:a}) { return; }`}mainStart(a=fo){let n=typeof a=="number"?a:a[0],i=typeof a=="number"?1:a[1],g=typeof a=="number"?1:a[2];if(n>this.limits.maxComputeWorkgroupSizeX||i>this.limits.maxComputeWorkgroupSizeY||g>this.limits.maxComputeWorkgroupSizeZ)throw new Error(`workgroup size [${n}, ${i}, ${g}] exceeds the maximum workgroup size [${this.limits.maxComputeWorkgroupSizeX}, ${this.limits.maxComputeWorkgroupSizeY}, ${this.limits.maxComputeWorkgroupSizeZ}].`);if(n*i*g>this.limits.maxComputeInvocationsPerWorkgroup)throw new Error(`workgroup size [${n}, ${i}, ${g}] exceeds the maximum workgroup invocations ${this.limits.maxComputeInvocationsPerWorkgroup}.`);let p=this.normalizedDispatchGroup[1]===1&&this.normalizedDispatchGroup[2]===1,h=p?`@builtin(global_invocation_id) global_id : vec3, + @builtin(workgroup_id) workgroup_id : vec3, + @builtin(local_invocation_index) local_idx : u32, + @builtin(local_invocation_id) local_id : vec3`:`@builtin(global_invocation_id) global_id : vec3, + @builtin(local_invocation_id) local_id : vec3, + @builtin(local_invocation_index) local_idx : u32, + @builtin(workgroup_id) workgroup_id : vec3, + @builtin(num_workgroups) num_workgroups : vec3`,C=p?`let global_idx = global_id.x; + let workgroup_index = workgroup_id.x;`:`let workgroup_index = workgroup_id.z * num_workgroups[0] * num_workgroups[1] + + workgroup_id.y * num_workgroups[0] + workgroup_id.x; + let global_idx = workgroup_index * ${n*i*g}u + local_idx;`;return`@compute @workgroup_size(${n}, ${i}, ${g}) + fn main(${h}) { + ${C} + `}appendVariableUniforms(a){a.rank!==0&&(a.shape.startsWith("uniforms.")&&this.uniforms.push({name:a.shape.replace("uniforms.",""),type:"u32",length:a.rank}),a.strides.startsWith("uniforms.")&&this.uniforms.push({name:a.strides.replace("uniforms.",""),type:"u32",length:a.rank}))}declareVariable(a,n){if(a.usage==="internal")throw new Error("cannot use internal variable with declareVariable(). use registerInternalVariables() instead.");this.variables.push(a),this.appendVariableUniforms(a);let i=a.usage==="input"?"read":"read_write",g=a.usage==="atomicOutput"?"atomic":a.type.storage;return`@group(0) @binding(${n}) var ${a.name}: array<${g}>;`}declareVariables(...a){return a.map(n=>this.declareVariable(n,this.variableIndex++)).join(` +`)}registerInternalVariable(a){if(a.usage!=="internal")throw new Error("cannot use input or output variable with registerInternalVariable(). use declareVariables() instead.");this.internalVariables.push(a),this.appendVariableUniforms(a)}registerInternalVariables(...a){return a.forEach(n=>this.registerInternalVariable(n)),this}registerUniform(a,n,i=1){return this.uniforms.push({name:a,type:n,length:i}),this}registerUniforms(a){return this.uniforms=this.uniforms.concat(a),this}uniformDeclaration(){if(this.uniforms.length===0)return"";let a=[];for(let{name:n,type:i,length:g}of this.uniforms)if(g&&g>4)i==="f16"?a.push(`@align(16) ${n}:array, ${Math.ceil(g/8)}>`):a.push(`${n}:array, ${Math.ceil(g/4)}>`);else{let p=g==null||g===1?i:`vec${g}<${i}>`;a.push(`${n}:${p}`)}return` + struct Uniforms { ${a.join(", ")} }; + @group(0) @binding(${this.variableIndex}) var uniforms: Uniforms;`}get additionalImplementations(){return this.uniformDeclaration()+this.variables.map(a=>a.impl()).join(` +`)+this.internalVariables.map(a=>a.impl()).join(` +`)}get variablesInfo(){if(this.uniforms.length===0)return;let a=n=>[12,10,1,6][["u32","f16","f32","i32"].indexOf(n)];return this.uniforms.map(n=>[a(n.type),n.length??1])}},ch=(a,n)=>new ig(a,n)}),og,u2,lg,cg,ug,dg,la,uh,dh,ri=bA(()=>{ot(),mt(),Wr(),bt(),og=(a,n)=>{if(!a||a.length!==1)throw new Error("Transpose requires 1 input.");if(n.length!==0&&n.length!==a[0].dims.length)throw new Error(`perm size ${n.length} does not match input rank ${a[0].dims.length}`)},u2=(a,n)=>n.length!==0?n:[...new Array(a).keys()].reverse(),lg=(a,n)=>Ze.sortBasedOnPerm(a,u2(a.length,n)),cg=(a,n,i,g)=>{let p=`fn perm(i: ${g.type.indices}) -> ${i.type.indices} { + var a: ${i.type.indices};`;for(let h=0;h{let i=[],g=[];for(let p=0;p{let i=0;for(let g=0;g{let i=a.dataType,g=a.dims.length,p=u2(g,n),h=lg(a.dims,p),C=a.dims,w=h,E=g<2||dg(p,a.dims),v;if(E)return v=F=>{let R=rA("input",i,C,4),K=YA("output",i,w,4);return` + ${F.registerUniform("output_size","u32").declareVariables(R,K)} + ${F.mainStart()} + ${F.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + output[global_idx] = input[global_idx]; + }`},{name:"TransposeCopy",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let F=Ze.size(h);return{outputs:[{dims:h,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(F/64/4)},programUniforms:[{type:12,data:Math.ceil(F/4)}]}},getShaderSource:v};let{newShape:D,newPerm:B}=ug(a.dims,p),x=Ze.areEqual(B,[2,3,1]),S=Ze.areEqual(B,[3,1,2]);if(D.length===2||x||S){C=x?[D[0],D[1]*D[2]]:S?[D[0]*D[1],D[2]]:D,w=[C[1],C[0]];let F=16;return v=R=>{let K=rA("a",i,C.length),L=YA("output",i,w.length);return` + ${R.registerUniform("output_size","u32").declareVariables(K,L)} + var tile : array, ${F}>; + ${R.mainStart([F,F,1])} + let stride = (uniforms.output_shape[1] - 1) / ${F} + 1; + let workgroup_id_x = workgroup_index % stride; + let workgroup_id_y = workgroup_index / stride; + let input_col = workgroup_id_y * ${F}u + local_id.x; + let input_row = workgroup_id_x * ${F}u + local_id.y; + if (input_row < uniforms.a_shape[0] && input_col < uniforms.a_shape[1]) { + tile[local_id.y][local_id.x] = ${K.getByIndices(`${K.type.indices}(input_row, input_col)`)}; + } + workgroupBarrier(); + + let output_col = workgroup_id_x * ${F}u + local_id.x; + let output_row = workgroup_id_y * ${F}u + local_id.y; + if (output_row < uniforms.output_shape[0] && output_col < uniforms.output_shape[1]) { + ${L.setByIndices(`${L.type.indices}(output_row, output_col)`,"tile[local_id.x][local_id.y]")} + } + }`},{name:"TransposeShared",shaderCache:{inputDependencies:["type"]},getRunData:()=>{let R=Ze.size(h);return{outputs:[{dims:h,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(w[1]/F),y:Math.ceil(w[0]/F)},programUniforms:[{type:12,data:R},...et(C,w)]}},getShaderSource:v}}return v=F=>{let R=rA("a",i,C.length),K=YA("output",i,w.length);return` + ${F.registerUniform("output_size","u32").declareVariables(R,K)} + + ${cg(p,g,R,K)} + + ${F.mainStart()} + ${F.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${K.offsetToIndices("global_idx")}; + let aIndices = perm(indices); + + ${K.setByOffset("global_idx",R.getByIndices("aIndices"))} + }`},{name:"Transpose",shaderCache:{hint:`${n}`,inputDependencies:["rank"]},getRunData:()=>{let F=Ze.size(h);return{outputs:[{dims:h,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(F/64)},programUniforms:[{type:12,data:F},...et(C,w)]}},getShaderSource:v}},uh=(a,n)=>{og(a.inputs,n.perm),a.compute(la(a.inputs[0],n.perm))},dh=a=>Xt({perm:a.perm})}),fg,gg,pg,mg,hg,Cg,bg,Ig,wg,kg,Da,fh,gh,ph,mh,hh,Ch,bh,Ih,wh,kh,L6=bA(()=>{ot(),mt(),bt(),Qc(),ri(),fg={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate * candidate",logSumExp:"bestValue + exp(candidate)",l1:"bestValue + abs(candidate)",l2:"bestValue + candidate * candidate",logSum:"bestValue + candidate"},gg={max:"select(bestValue, candidate, candidate > bestValue)",min:"select(bestValue, candidate, candidate < bestValue)",mean:"bestValue + candidate",sum:"bestValue + candidate",prod:"bestValue * candidate",sumSquare:"bestValue + candidate",logSumExp:"bestValue + candidate",l1:"bestValue + candidate",l2:"bestValue + candidate",logSum:"bestValue + candidate"},pg={max:"_A[offset]",min:"_A[offset]",mean:"0",sum:"0",prod:"1",sumSquare:"0",logSumExp:"0",l1:"0",l2:"0",logSum:"0"},mg={max:"bestValue",min:"bestValue",sum:"bestValue",prod:"bestValue",sumSquare:"bestValue",logSumExp:"log(bestValue)",l1:"bestValue",l2:"sqrt(bestValue)",logSum:"log(bestValue)"},hg=(a,n)=>{let i=[];for(let g=n-a;g{let i=[],g=a.length;for(let h=0;ha[h]);return[i,p]},bg=(a,n)=>{let i=a.length+n.length,g=[],p=0;for(let h=0;h{for(let i=0;i{let i=[];if(!Ig(a,n)){for(let g=0;gi.push(g))}return i},kg=(a,n,i,g,p,h,C)=>{let w=i[0].dims,E=Ze.size(h),v=Ze.size(C),D=rA("_A",i[0].dataType,w),B=YA("output",p,h),x=64;E===1&&(x=256);let S=` + var aBestValues : array; + `,F=R=>` + ${R.registerUniform("reduceSize","u32").declareVariables(D,B)} + ${S} + fn DIV_CEIL(a : u32, b : u32) -> u32 { + return ((a - 1u) / b + 1u); + } + ${R.mainStart(x)} + + let outputIndex = global_idx / ${x}; + let offset = outputIndex * uniforms.reduceSize; + + var bestValue = f32(${pg[g]}); + let Length = uniforms.reduceSize; + for (var k = local_idx; k < Length; k = k + ${x}) { + let candidate = f32(${D.getByOffset("offset + k")}); + bestValue = ${fg[g]}; + } + aBestValues[local_idx] = bestValue; + workgroupBarrier(); + + var reduceSize = min(Length, ${x}u); + for (var currentSize = reduceSize / 2u; reduceSize > 1u; + currentSize = reduceSize / 2u) { + let interval = DIV_CEIL(reduceSize, 2u); + if (local_idx < currentSize) { + let candidate = aBestValues[local_idx + interval]; + bestValue = ${gg[g]}; + aBestValues[local_idx] = bestValue; + } + reduceSize = interval; + workgroupBarrier(); + } + + if (local_idx == 0u) { + ${B.setByOffset("outputIndex",`${g==="mean"?`${B.type.storage}(bestValue / f32(uniforms.reduceSize))`:`${B.type.storage}(${mg[g]})`}`)}; + } + }`;return{name:a,shaderCache:{hint:`${n};${x}`,inputDependencies:["type"]},getShaderSource:F,getRunData:()=>({outputs:[{dims:h,dataType:p}],dispatchGroup:{x:E},programUniforms:[{type:12,data:v}]})}},Da=(a,n,i,g)=>{let p=a.inputs.length===1?i:sc(a.inputs,i),h=p.axes;h.length===0&&!p.noopWithEmptyAxes&&(h=a.inputs[0].dims.map((S,F)=>F));let C=Ze.normalizeAxes(h,a.inputs[0].dims.length),w=C,E=a.inputs[0],v=wg(w,a.inputs[0].dims.length);v.length>0&&(E=a.compute(la(a.inputs[0],v),{inputs:[0],outputs:[-1]})[0],w=hg(w.length,E.dims.length));let[D,B]=Cg(E.dims,w),x=D;p.keepDims&&(x=bg(D,C)),a.compute(kg(n,p.cacheKey,[E],g,a.inputs[0].dataType,x,B),{inputs:[E]})},fh=(a,n)=>{Da(a,"ReduceMeanShared",n,"mean")},gh=(a,n)=>{Da(a,"ReduceL1Shared",n,"l1")},ph=(a,n)=>{Da(a,"ReduceL2Shared",n,"l2")},mh=(a,n)=>{Da(a,"ReduceLogSumExpShared",n,"logSumExp")},hh=(a,n)=>{Da(a,"ReduceMaxShared",n,"max")},Ch=(a,n)=>{Da(a,"ReduceMinShared",n,"min")},bh=(a,n)=>{Da(a,"ReduceProdShared",n,"prod")},Ih=(a,n)=>{Da(a,"ReduceSumShared",n,"sum")},wh=(a,n)=>{Da(a,"ReduceSumSquareShared",n,"sumSquare")},kh=(a,n)=>{Da(a,"ReduceLogSumShared",n,"logSum")}}),Ta,Eg,J0,sc,Ga,Mg,Bg,vg,xg,yg,Dg,Tg,Gg,Pg,Qg,Pa,Eh,Mh,Bh,vh,xh,yh,Dh,Th,Gh,Ph,Qc=bA(()=>{ot(),mt(),Wr(),bt(),L6(),Ta=a=>{if(!a||a.length===0||a.length>2)throw new Error("Reduce op requires 1 or 2 inputs.");if(a.length===2&&a[1].dims.length!==1)throw new Error("Invalid axes input dims.")},Eg=a=>["","",`var value = ${a.getByIndices("input_indices")};`,""],J0=(a,n,i,g,p,h,C=!1,w=!1)=>{let E=[],v=i[0].dims,D=v.length,B=Ze.normalizeAxes(p,D),x=!w&&B.length===0;v.forEach((R,K)=>{x||B.indexOf(K)>=0?C&&E.push(1):E.push(R)});let S=E.length,F=Ze.size(E);return{name:a,shaderCache:n,getShaderSource:R=>{let K=[],L=rA("_A",i[0].dataType,D),N=YA("output",h,S),V=g(L,N,B),d=V[2];for(let k=0,e=0;k=0?(C&&e++,d=`for(var j${k}: u32 = 0; j${k} < ${v[k]}; j${k}++) { + ${V[2].includes("last_index")?`let last_index = j${k};`:""} + ${L.indicesSet("input_indices",k,`j${k}`)} + ${d} + }`):(K.push(`${L.indicesSet("input_indices",k,N.indicesGet("output_indices",e))};`),e++);return` + + ${R.registerUniform("output_size","u32").declareVariables(L,N)} + + ${R.mainStart()} + ${R.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + var input_indices: ${L.type.indices}; + let output_indices = ${N.offsetToIndices("global_idx")}; + + ${K.join(` +`)} + ${V[0]} // init ops for reduce max/min + ${V[1]} + ${d} + ${V[3]} + ${V.length===4?N.setByOffset("global_idx","value"):V.slice(4).join(` +`)} + }`},getRunData:()=>({outputs:[{dims:E,dataType:h}],dispatchGroup:{x:Math.ceil(F/64)},programUniforms:[{type:12,data:F},...et(v,E)]})}},sc=(a,n)=>{let i=[];return a[1].dims[0]>0&&a[1].getBigInt64Array().forEach(g=>i.push(Number(g))),Xt({axes:i,keepDims:n.keepDims,noopWithEmptyAxes:n.noopWithEmptyAxes})},Ga=(a,n,i,g)=>{let p=a.inputs,h=p.length===1?i:sc(p,i);a.compute(J0(n,{hint:h.cacheKey,inputDependencies:["rank"]},[p[0]],h.noopWithEmptyAxes&&h.axes.length===0?Eg:g,h.axes,p[0].dataType,h.keepDims,h.noopWithEmptyAxes),{inputs:[0]})},Mg=(a,n)=>{Ta(a.inputs),Ga(a,"ReduceLogSum",n,(i,g)=>[`var value = ${g.type.storage}(0);`,"",`value += ${i.getByIndices("input_indices")};`,"value = log(value);"])},Bg=(a,n)=>{Ta(a.inputs),Ga(a,"ReduceL1",n,(i,g)=>[`var value = ${g.type.storage}(0);`,"",`value += abs(${i.getByIndices("input_indices")});`,""])},vg=(a,n)=>{Ta(a.inputs),Ga(a,"ReduceL2",n,(i,g)=>[`var t = ${g.type.value}(0); var value = ${g.type.value}(0);`,"",`t = ${i.getByIndices("input_indices")}; value += (t * t);`,"value = sqrt(value);"])},xg=(a,n)=>{Ta(a.inputs),Ga(a,"ReduceLogSumExp",n,(i,g)=>[`var value = ${g.type.storage}(0);`,"",`value += exp(${i.getByIndices("input_indices")});`,"value = log(value);"])},yg=(a,n)=>{Ta(a.inputs),Ga(a,"ReduceMax",n,(i,g,p)=>{let h=[];for(let C=0;C=0||p.length===0)&&h.push(i.indicesSet("input_indices",C,0));return[`${h.join(` +`)}`,`var value = ${i.getByIndices("input_indices")};`,`value = max(value, ${i.getByIndices("input_indices")});`,""]})},Dg=(a,n)=>{Ta(a.inputs),Ga(a,"ReduceMean",n,(i,g,p)=>{let h=1;for(let C=0;C=0||p.length===0)&&(h*=a.inputs[0].dims[C]);return["var sum = f32(0);","",`sum += f32(${i.getByIndices("input_indices")});`,`let value = ${g.type.value}(sum / ${h});`]})},Tg=(a,n)=>{Ta(a.inputs),Ga(a,"ReduceMin",n,(i,g,p)=>{let h=[];for(let C=0;C=0||p.length===0)&&h.push(`input_indices[${C}] = 0;`);return[`${h.join(` +`)}`,`var value = ${i.getByIndices("input_indices")};`,`value = min(value, ${i.getByIndices("input_indices")});`,""]})},Gg=(a,n)=>{Ta(a.inputs),Ga(a,"ReduceProd",n,(i,g)=>[`var value = ${g.type.storage}(1);`,"",`value *= ${i.getByIndices("input_indices")};`,""])},Pg=(a,n)=>{Ta(a.inputs),Ga(a,"ReduceSum",n,(i,g)=>[`var value = ${g.type.storage}(0);`,"",`value += ${i.getByIndices("input_indices")};`,""])},Qg=(a,n)=>{Ta(a.inputs),Ga(a,"ReduceSumSquare",n,(i,g)=>[`var t = ${g.type.value}(0); var value = ${g.type.value}(0);`,"",`t = ${i.getByIndices("input_indices")}; value += t * t;`,""])},Pa=(a,n,i)=>{if(n.length===0)return i;let g=1,p=1;for(let h=0;h1024},Eh=(a,n)=>{Pa(a.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?Dg(a,n):fh(a,n)},Mh=(a,n)=>{Pa(a.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?Bg(a,n):gh(a,n)},Bh=(a,n)=>{Pa(a.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?vg(a,n):ph(a,n)},vh=(a,n)=>{Pa(a.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?xg(a,n):mh(a,n)},xh=(a,n)=>{Pa(a.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?yg(a,n):hh(a,n)},yh=(a,n)=>{Pa(a.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?Tg(a,n):Ch(a,n)},Dh=(a,n)=>{Pa(a.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?Gg(a,n):bh(a,n)},Th=(a,n)=>{Pa(a.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?Pg(a,n):Ih(a,n)},Gh=(a,n)=>{Pa(a.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?Qg(a,n):wh(a,n)},Ph=(a,n)=>{Pa(a.inputs[0].dims,n.axes,n.noopWithEmptyAxes)?Mg(a,n):kh(a,n)}}),d2,Qh,Fh,ac,_6=bA(()=>{ot(),Wr(),Qc(),d2=a=>{if(!a||a.length===0||a.length>2)throw new Error("ArgMinMaxOp op requires 1 or 2 inputs.");if(a[0].dataType!==1)throw new Error("Invalid input type.")},Qh=(a,n)=>{d2(a.inputs);let i=(g,p,h)=>{let C=[];for(let w=0;w=0||h.length===0)&&C.push(`input_indices[${w}] = 0;`);return[`${C.join(` +`)}`,`var value = ${g.getByIndices("input_indices")}; +var best_index : i32 = 0;`,`if (${g.getByIndices("input_indices")} ${n.selectLastIndex>0?"<=":"<"} value) { + value = ${g.getByIndices("input_indices")}; + best_index = i32(last_index); + }`,"",p.setByOffset("global_idx","best_index")]};a.compute(J0("ArgMin",{hint:n.cacheKey,inputDependencies:["rank"]},[a.inputs[0]],i,[n.axis],7,n.keepDims),{inputs:[0]})},Fh=(a,n)=>{d2(a.inputs);let i=(g,p,h)=>{let C=[];for(let w=0;w=0||h.length===0)&&C.push(`input_indices[${w}] = 0;`);return[`${C.join(` +`)}`,`var value = ${g.getByIndices("input_indices")}; +var best_index : i32 = 0;`,`if (${g.getByIndices("input_indices")} ${n.selectLastIndex>0?">=":">"} value) { + value = ${g.getByIndices("input_indices")}; + best_index = i32(last_index); + }`,"",p.setByOffset("global_idx","best_index")]};a.compute(J0("argMax",{hint:n.cacheKey,inputDependencies:["rank"]},[a.inputs[0]],i,[n.axis],7,n.keepDims),{inputs:[0]})},ac=a=>Xt(a)}),Fg,F0,Sg,Og,zg,s0,Ng,Sh,Fc=bA(()=>{ot(),mt(),Gc(),bt(),Fg=(a,n)=>{let i=a[0],g=a[1],p=a[2],h=a[3],C=a[4],w=a[5];if(C&&w)throw new Error("Attention cannot have both past and attention_bias");if(i.dims.length!==3)throw new Error('Input "input" must have 3 dimensions');let E=i.dims[0],v=i.dims[1],D=i.dims[2];if(p.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimensions');if(g.dims.length!==2)throw new Error('Input "weights" is expected to have 2 dimensions');if(g.dims[0]!==D)throw new Error("Input 1 dimension 0 should have same length as dimension 2 of input 0");if(p.dims[0]!==g.dims[1])throw new Error('Input "bias" dimension 0 should have same length as dimension 1 of input "weights"');let B=p.dims[0]/3,x=B,S=x;if(n.qkvHiddenSizes.length>0){if(n.qkvHiddenSizes.length!==3)throw new Error("qkv_hidden_sizes attribute should have 3 elements");for(let V of n.qkvHiddenSizes)if(V%n.numHeads!==0)throw new Error("qkv_hidden_sizes should be divisible by num_heads");B=n.qkvHiddenSizes[0],x=n.qkvHiddenSizes[1],S=n.qkvHiddenSizes[2]}let F=v;if(B!==x)throw new Error("qkv_hidden_sizes first element should be same as the second");if(p.dims[0]!==B+x+S)throw new Error('Input "bias" dimension 0 should have same length as sum of Q/K/V hidden sizes');let R=0;if(C){if(x!==S)throw new Error('Input "past" expect k_hidden_size == v_hidden_size');if(C.dims.length!==5)throw new Error('Input "past" must have 5 dimensions');if(C.dims[0]!==2)throw new Error('Input "past" first dimension must be 2');if(C.dims[1]!==E)throw new Error('Input "past" second dimension must be batch_size');if(C.dims[2]!==n.numHeads)throw new Error('Input "past" third dimension must be num_heads');if(C.dims[4]!==x/n.numHeads)throw new Error('Input "past" fifth dimension must be k_hidden_size / num_heads');n.pastPresentShareBuffer||(R=C.dims[3])}let K=F+R,L=-1,N=0;if(h)throw new Error("Mask not supported");if(C)throw new Error("past is not supported");if(w){if(w.dims.length!==4)throw new Error('Input "attention_bias" must have 4 dimensions');if(w.dims[0]!==E||w.dims[1]!==n.numHeads||w.dims[2]!==v||w.dims[3]!==K)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:E,sequenceLength:v,pastSequenceLength:R,kvSequenceLength:F,totalSequenceLength:K,maxSequenceLength:L,inputHiddenSize:D,hiddenSize:B,vHiddenSize:S,headSize:Math.floor(B/n.numHeads),vHeadSize:Math.floor(S/n.numHeads),numHeads:n.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:n.maskFilterValue,maskType:N,scale:n.scale,broadcastResPosBias:!1,passPastInKv:!1,qkvFormat:1}},F0=(a,n,i)=>n&&a?` + let total_sequence_length_input = u32(${n.getByOffset("0")}); + let present_sequence_length = max(total_sequence_length_input, uniforms.past_sequence_length); + let is_subsequent_prompt: bool = sequence_length > 1 && sequence_length != total_sequence_length_input; + let is_first_prompt: bool = is_subsequent_prompt == false && sequence_length == total_sequence_length_input; + total_sequence_length = u32(${a==null?void 0:a.getByOffset("batchIdx")}) + 1; + var past_sequence_length: u32 = 0; + if (is_first_prompt == false) { + past_sequence_length = total_sequence_length - sequence_length; + } + `:` + ${i?"let past_sequence_length = uniforms.past_sequence_length":""}; + let present_sequence_length = total_sequence_length; + `,Sg=(a,n,i,g,p,h,C,w)=>{let E=Nr(C?1:h),v=64,D=h/E;D{let N=YA("x",a.dataType,a.dims,E),V=[N],d=C?rA("seq_lens",C.dataType,C.dims):void 0;d&&V.push(d);let k=w?rA("total_sequence_length_input",w.dataType,w.dims):void 0;k&&V.push(k);let e=ys(a.dataType),u=[{name:"batch_size",type:"u32"},{name:"num_heads",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"sequence_length",type:"u32"},{name:"total_sequence_length",type:"u32"},{name:"elements_per_thread",type:"u32"}];return` + var thread_max: array; + var thread_sum: array; + ${L.registerUniforms(u).declareVariables(...V)} + ${L.mainStart([v,1,1])} + let batchIdx = workgroup_id.z / uniforms.num_heads; + let headIdx = workgroup_id.z % uniforms.num_heads; + let sequence_length = uniforms.sequence_length; + var total_sequence_length = uniforms.total_sequence_length; + ${F0(d,k,!1)} + let local_offset = local_idx * uniforms.elements_per_thread; + let offset = (global_idx / ${v}) * uniforms.total_sequence_length + local_offset; + let seq_causal_length = ${C?"u32(past_sequence_length + workgroup_id.y + 1)":"total_sequence_length"}; + var thread_max_vector = ${F}(-3.402823e+38f); + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + thread_max_vector = max(${F}(x[offset + i]), thread_max_vector); + } + thread_max[local_idx] = ${(()=>{switch(E){case 1:return"thread_max_vector";case 2:return"max(thread_max_vector.x, thread_max_vector.y)";case 4:return"max(max(thread_max_vector.x, thread_max_vector.y), max(thread_max_vector.z, thread_max_vector.w))";default:throw new Error(`Unsupported components: ${E}`)}})()}; + workgroupBarrier(); + + var max_value = f32(-3.402823e+38f); + for (var i = 0u; i < ${v}; i++) { + max_value = max(thread_max[i], max_value); + } + + var sum_vector = ${F}(0); + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + sum_vector += exp(${F}(x[offset + i]) - max_value); + } + thread_sum[local_idx] = ${(()=>{switch(E){case 1:return"sum_vector";case 2:return"sum_vector.x + sum_vector.y";case 4:return"sum_vector.x + sum_vector.y + sum_vector.z + sum_vector.w";default:throw new Error(`Unsupported components: ${E}`)}})()}; + workgroupBarrier(); + + var sum: f32 = 0; + for (var i = 0u; i < ${v}; i++) { + sum += thread_sum[i]; + } + + if (sum == 0) { + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + x[offset + i] = ${N.type.value}(${e}(1.0) / ${e}(seq_causal_length)); + } + } else { + for (var i: u32 = 0; i < uniforms.elements_per_thread && i + local_offset < seq_causal_length; i++) { + var f32input = ${F}(x[offset + i]); + x[offset + i] = ${N.type.value}(exp(f32input - max_value) / sum); + } + } + ${C?` + for (var total_seq_id: u32 = seq_causal_length; total_seq_id + local_offset < uniforms.total_sequence_length; total_seq_id++) { + x[offset + total_seq_id] = ${N.type.value}(${e}(0)); + }`:""}; + }`};return{name:"AttentionProbsSoftmax",shaderCache:{hint:`${v};${S};${E}`,inputDependencies:R},getShaderSource:K,getRunData:()=>({outputs:[],dispatchGroup:{x:1,y:p,z:n*i},programUniforms:x})}},Og=(a,n,i,g,p,h,C,w,E)=>{let v=C+h.kvSequenceLength,D=[h.batchSize,h.numHeads,h.sequenceLength,v],B=a>1&&g,x=h.kvNumHeads?h.kvNumHeads:h.numHeads,S=B?[h.batchSize,x,v,h.headSize]:void 0,F=h.nReps?h.nReps:1,R=h.scale===0?1/Math.sqrt(h.headSize):h.scale,K=Nr(h.headSize),L=h.headSize/K,N=12,V={x:Math.ceil(v/N),y:Math.ceil(h.sequenceLength/N),z:h.batchSize*h.numHeads},d=[{type:12,data:h.sequenceLength},{type:12,data:L},{type:12,data:v},{type:12,data:h.numHeads},{type:12,data:h.headSize},{type:1,data:R},{type:12,data:C},{type:12,data:h.kvSequenceLength},{type:12,data:F}],k=B&&g&&Ze.size(g.dims)>0,e=["type","type"];k&&e.push("type"),p&&e.push("type"),w&&e.push("type"),E&&e.push("type");let u=[{dims:D,dataType:n.dataType,gpuDataType:0}];B&&u.push({dims:S,dataType:n.dataType,gpuDataType:0});let y=$=>{let T=rA("q",n.dataType,n.dims,K),O=rA("key",i.dataType,i.dims,K),Ce=[T,O];if(k){let Re=rA("past_key",g.dataType,g.dims,K);Ce.push(Re)}p&&Ce.push(rA("attention_bias",p.dataType,p.dims));let Ae=w?rA("seq_lens",w.dataType,w.dims):void 0;Ae&&Ce.push(Ae);let be=E?rA("total_sequence_length_input",E.dataType,E.dims):void 0;be&&Ce.push(be);let he=YA("output",n.dataType,D),Ee=[he];B&&Ee.push(YA("present_key",n.dataType,S,K));let ke=ys(1,K),De=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"alpha",type:"f32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}];return` + const TILE_SIZE = ${N}u; + + var tileQ: array<${T.type.storage}, ${N*N}>; + var tileK: array<${T.type.storage}, ${N*N}>; + ${$.registerUniforms(De).declareVariables(...Ce,...Ee)} + ${$.mainStart([N,N,1])} + // x holds the N and y holds the M + let headIdx = workgroup_id.z % uniforms.num_heads; + let kvHeadIdx = ${F===1?"headIdx":"headIdx / uniforms.n_reps"}; + let kv_num_heads = ${F===1?"uniforms.num_heads":"uniforms.num_heads / uniforms.n_reps"}; + let batchIdx = workgroup_id.z / uniforms.num_heads; + let m = workgroup_id.y * TILE_SIZE; + let n = workgroup_id.x * TILE_SIZE; + let sequence_length = uniforms.M; + var total_sequence_length = uniforms.N; + ${F0(Ae,be,!0)} + let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx; + let qOffset = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K; + ${k&&B?"let pastKeyOffset = absKvHeadIdx * uniforms.past_sequence_length * uniforms.K;":""}; + let kOffset = absKvHeadIdx * uniforms.kv_sequence_length * uniforms.K; + ${B?"let presentKeyOffset = absKvHeadIdx * uniforms.N * uniforms.K;":""} + var value = ${ke}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (global_id.y < uniforms.M && w + local_id.x < uniforms.K) { + tileQ[TILE_SIZE * local_id.y + local_id.x] = q[qOffset + local_id.y * uniforms.K + w + local_id.x]; + } + if (n + local_id.y < uniforms.N && w + local_id.x < uniforms.K) { + var idx = TILE_SIZE * local_id.y + local_id.x; + ${k&&B?` + if (n + local_id.y < past_sequence_length) { + tileK[idx] = past_key[pastKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x]; + } else if (n + local_id.y - past_sequence_length < uniforms.kv_sequence_length) { + tileK[idx] = key[kOffset + (n + local_id.y - past_sequence_length) * uniforms.K + w + local_id.x]; + }`:` + if (n + local_id.y < uniforms.kv_sequence_length) { + tileK[idx] = key[kOffset + (n + local_id.y) * uniforms.K + w + local_id.x]; + }`} + ${B?`if (n + local_id.y < present_sequence_length) { + present_key[presentKeyOffset + (n + local_id.y) * uniforms.K + w + local_id.x] = tileK[idx]; + }`:""} + } + workgroupBarrier(); + + for (var k: u32 = 0u; k < TILE_SIZE && w+k < uniforms.K; k++) { + value += ${ke}(tileQ[TILE_SIZE * local_id.y + k] * tileK[TILE_SIZE * local_id.x + k]); + } + + workgroupBarrier(); + } + + if (global_id.y < uniforms.M && global_id.x < total_sequence_length) { + let headOffset = workgroup_id.z * uniforms.M * uniforms.N; + let outputIdx = headOffset + global_id.y * uniforms.N + global_id.x; + var sum: f32 = ${(()=>{switch(K){case 1:return"value";case 2:return"value.x + value.y";case 4:return"value.x + value.y + value.z + value.w";default:throw new Error(`Unsupported components: ${K}`)}})()}; + output[outputIdx] = ${he.type.value} (sum * uniforms.alpha) + ${p?"attention_bias[outputIdx]":"0.0"}; + } + }`};return{name:"AttentionProbs",shaderCache:{hint:`${K};${p!==void 0};${g!==void 0};${a}`,inputDependencies:e},getRunData:()=>({outputs:u,dispatchGroup:V,programUniforms:d}),getShaderSource:y}},zg=(a,n,i,g,p,h,C=void 0,w=void 0)=>{let E=h+p.kvSequenceLength,v=p.nReps?p.nReps:1,D=p.vHiddenSize*v,B=a>1&&g,x=p.kvNumHeads?p.kvNumHeads:p.numHeads,S=B?[p.batchSize,x,E,p.headSize]:void 0,F=[p.batchSize,p.sequenceLength,D],R=12,K={x:Math.ceil(p.vHeadSize/R),y:Math.ceil(p.sequenceLength/R),z:p.batchSize*p.numHeads},L=[{type:12,data:p.sequenceLength},{type:12,data:E},{type:12,data:p.vHeadSize},{type:12,data:p.numHeads},{type:12,data:p.headSize},{type:12,data:D},{type:12,data:h},{type:12,data:p.kvSequenceLength},{type:12,data:v}],N=B&&g&&Ze.size(g.dims)>0,V=["type","type"];N&&V.push("type"),C&&V.push("type"),w&&V.push("type");let d=[{dims:F,dataType:n.dataType,gpuDataType:0}];B&&d.push({dims:S,dataType:n.dataType,gpuDataType:0});let k=e=>{let u=rA("probs",n.dataType,n.dims),y=rA("v",i.dataType,i.dims),$=[u,y];N&&$.push(rA("past_value",g.dataType,g.dims));let T=C?rA("seq_lens",C.dataType,C.dims):void 0;C&&$.push(T);let O=w?rA("total_sequence_length_input",w.dataType,w.dims):void 0;w&&$.push(O);let Ce=[YA("output",n.dataType,F)];B&&Ce.push(YA("present_value",n.dataType,S));let Ae=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"v_hidden_size",type:"u32"},{name:"past_sequence_length",type:"u32"},{name:"kv_sequence_length",type:"u32"},{name:"n_reps",type:"u32"}];return` + const TILE_SIZE = ${R}u; + var tileQ: array<${u.type.value}, ${R*R}>; + var tileV: array<${u.type.value}, ${R*R}>; + ${e.registerUniforms(Ae).declareVariables(...$,...Ce)} + ${e.mainStart([R,R,1])} + let headIdx = workgroup_id.z % uniforms.num_heads; + let batchIdx = workgroup_id.z / uniforms.num_heads; + let kvHeadIdx = ${v===1?"headIdx":"headIdx / uniforms.n_reps"}; + let kv_num_heads = ${v===1?"uniforms.num_heads":"uniforms.num_heads / uniforms.n_reps"}; + let m = global_id.y; + let n = global_id.x; + let sequence_length = uniforms.M; + var total_sequence_length = uniforms.K; + ${F0(T,O,!0)} + let offsetA = workgroup_id.z * uniforms.M * uniforms.K + m * uniforms.K; + let absKvHeadIdx = batchIdx * kv_num_heads + kvHeadIdx; // kvHeadIdx is relative to the batch + ${N&&B?"let pastValueOffset = absKvHeadIdx * uniforms.N * uniforms.past_sequence_length + n;":""}; + let vOffset = absKvHeadIdx * uniforms.N * uniforms.kv_sequence_length + n; + ${B?"let presentValueOffset = absKvHeadIdx * uniforms.N * uniforms.K + n;":""} + var value = ${u.type.storage}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (m < uniforms.M && w + local_id.x < uniforms.K) { + tileQ[TILE_SIZE * local_id.y + local_id.x] = probs[offsetA + w + local_id.x]; + } + if (n < uniforms.N && w + local_id.y < uniforms.K) { + var idx = TILE_SIZE * local_id.y + local_id.x; + ${N&&B?` + if (w + local_id.y < past_sequence_length) { + tileV[idx] = past_value[pastValueOffset + (w + local_id.y) * uniforms.N]; + } else if (w + local_id.y - past_sequence_length < uniforms.kv_sequence_length) { + tileV[idx] = v[vOffset + (w + local_id.y - past_sequence_length) * uniforms.N]; + } + `:` + if (w + local_id.y < uniforms.kv_sequence_length) { + tileV[idx] = v[vOffset + (w + local_id.y) * uniforms.N]; + }`} + ${B?` + if (w + local_id.y < present_sequence_length) { + present_value[presentValueOffset + (w + local_id.y) * uniforms.N] = tileV[idx]; + }`:""} + } + workgroupBarrier(); + for (var k: u32 = 0u; k < TILE_SIZE && w+k < total_sequence_length; k++) { + value += tileQ[TILE_SIZE * local_id.y + k] * tileV[TILE_SIZE * k + local_id.x]; + } + workgroupBarrier(); + } + + // we need to transpose output from BNSH_v to BSND_v + if (m < uniforms.M && n < uniforms.N) { + let outputIdx = batchIdx * uniforms.M * uniforms.v_hidden_size + m * uniforms.v_hidden_size + + headIdx * uniforms.N + n; + output[outputIdx] = value; + } + }`};return{name:"AttentionScore",shaderCache:{hint:`${g!==void 0};${a}`,inputDependencies:V},getRunData:()=>({outputs:d,dispatchGroup:K,programUniforms:L}),getShaderSource:k}},s0=(a,n,i,g,p,h,C,w,E,v,D=void 0,B=void 0)=>{let x=Math.min(a.outputCount,1+(C?1:0)+(w?1:0)),S=x>1?v.pastSequenceLength:0,F=S+v.kvSequenceLength,R=E&&Ze.size(E.dims)>0?E:void 0,K=[n,i];x>1&&C&&Ze.size(C.dims)>0&&K.push(C),R&&K.push(R),D&&K.push(D),B&&K.push(B);let L=a.compute(Og(x,n,i,C,R,v,S,D,B),{inputs:K,outputs:x>1?[-1,1]:[-1]})[0];a.compute(Sg(L,v.batchSize,v.numHeads,S,v.sequenceLength,F,D,B),{inputs:D&&B?[L,D,B]:[L],outputs:[]});let N=[L,g];x>1&&w&&Ze.size(w.dims)>0&&N.push(w),D&&N.push(D),B&&N.push(B),a.compute(zg(x,L,g,w,v,S,D,B),{inputs:N,outputs:x>1?[0,2]:[0]})},Ng=(a,n)=>{let i=[n.batchSize,n.numHeads,n.sequenceLength,n.headSize],g=n.sequenceLength,p=n.inputHiddenSize,h=n.headSize,C=12,w={x:Math.ceil(n.headSize/C),y:Math.ceil(n.sequenceLength/C),z:n.batchSize*n.numHeads},E=[a.inputs[0],a.inputs[1],a.inputs[2]],v=[{type:12,data:g},{type:12,data:p},{type:12,data:h},{type:12,data:n.numHeads},{type:12,data:n.headSize},{type:12,data:n.hiddenSize},{type:12,data:n.hiddenSize+n.hiddenSize+n.vHiddenSize}],D=B=>{let x=YA("output_q",E[0].dataType,i),S=YA("output_k",E[0].dataType,i),F=YA("output_v",E[0].dataType,i),R=rA("input",E[0].dataType,E[0].dims),K=rA("weight",E[1].dataType,E[1].dims),L=rA("bias",E[2].dataType,E[2].dims),N=R.type.storage,V=[{name:"M",type:"u32"},{name:"K",type:"u32"},{name:"N",type:"u32"},{name:"num_heads",type:"u32"},{name:"head_size",type:"u32"},{name:"hidden_size",type:"u32"},{name:"ldb",type:"u32"}];return` + const TILE_SIZE = ${C}u; + var tileInput: array<${N}, ${C*C}>; + var tileWeightQ: array<${N}, ${C*C}>; + var tileWeightK: array<${N}, ${C*C}>; + var tileWeightV: array<${N}, ${C*C}>; + ${B.registerUniforms(V).declareVariables(R,K,L,x,S,F)} + ${B.mainStart([C,C,1])} + let batchIndex = workgroup_id.z / uniforms.num_heads; + let headNumber = workgroup_id.z % uniforms.num_heads; + let m = global_id.y; + let n = global_id.x; + + let inputOffset = batchIndex * (uniforms.M * uniforms.K) + m * uniforms.K; + let biasOffsetQ = headNumber * uniforms.head_size; + let biasOffsetK = uniforms.hidden_size + biasOffsetQ; + let biasOffsetV = uniforms.hidden_size + biasOffsetK; + + var valueQ = ${N}(0); + var valueK = ${N}(0); + var valueV = ${N}(0); + for (var w: u32 = 0u; w < uniforms.K; w += TILE_SIZE) { + if (m < uniforms.M && w + local_id.x < uniforms.K) { + tileInput[TILE_SIZE * local_id.y + local_id.x] = input[inputOffset + w + local_id.x]; + } + if (n < uniforms.N && w + local_id.y < uniforms.K) { + let offset = n + (w + local_id.y) * uniforms.ldb; + tileWeightQ[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetQ + offset]; + tileWeightK[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetK + offset]; + tileWeightV[TILE_SIZE * local_id.y + local_id.x] = weight[biasOffsetV + offset]; + } + workgroupBarrier(); + for (var k: u32 = 0u; k({outputs:[{dims:i,dataType:a.inputs[0].dataType,gpuDataType:0},{dims:i,dataType:a.inputs[0].dataType,gpuDataType:0},{dims:i,dataType:a.inputs[0].dataType,gpuDataType:0}],dispatchGroup:w,programUniforms:v}),getShaderSource:D},{inputs:E,outputs:[-1,-1,-1]})},Sh=(a,n)=>{let i=Fg(a.inputs,n),[g,p,h]=Ng(a,i);return s0(a,g,p,h,a.inputs[4],void 0,void 0,void 0,a.inputs[5],i)}}),Lg,_g,Rg,Oh,R6=bA(()=>{Na(),ot(),mt(),Wr(),bt(),Lg=(a,n)=>{if(!a||a.length!==5)throw new Error("BatchNormalization requires 5 inputs");let i=(g,p,h)=>{let C=p.length;if(C!==g.length)throw new Error(`${h}: num dimensions != ${C}`);p.forEach((w,E)=>{if(w!==g[E])throw new Error(`${h}: dim[${E}] do not match`)})};if(a[0].dims.length>1){let g=n.format==="NHWC"?n.spatial?a[0].dims.slice(-1):a[0].dims.slice(-1).concat(a[0].dims.slice(1,a[0].dims.length-1)):a[0].dims.slice(1,n.spatial?2:void 0);i(a[1].dims,g,"Invalid input scale"),i(a[2].dims,g,"Invalid input B"),i(a[3].dims,g,"Invalid input mean"),i(a[4].dims,g,"Invalid input var")}else i(a[1].dims,[1],"Invalid input scale"),i(a[2].dims,[1],"Invalid input B"),i(a[3].dims,[1],"Invalid input mean"),i(a[4].dims,[1],"Invalid input var")},_g=(a,n)=>{let{epsilon:i,spatial:g,format:p}=n,h=a[0].dims,C=g?Nr(h[h.length-1]):1,w=p==="NHWC"&&h.length>1?C:1,E=Ze.size(h)/C,v=g,D=v?h.length:h,B=rA("x",a[0].dataType,a[0].dims,C),x=rA("scale",a[1].dataType,a[1].dims,w),S=rA("bias",a[2].dataType,a[2].dims,w),F=rA("inputMean",a[3].dataType,a[3].dims,w),R=rA("inputVar",a[4].dataType,a[4].dims,w),K=YA("y",a[0].dataType,D,C),L=()=>{let V="";if(g)V=`let cOffset = ${h.length===1?"0u":p==="NHWC"?`outputIndices[${h.length-1}] / ${C}`:"outputIndices[1]"};`;else if(p==="NCHW")V=` + ${K.indicesSet("outputIndices","0","0")} + let cOffset = ${K.indicesToOffset("outputIndices")};`;else{V=`var cIndices = ${x.type.indices}(0); + cIndices[0] = outputIndices[${h.length-1}];`;for(let d=1;d` + const epsilon = ${i}; + ${V.registerUniform("outputSize","u32").declareVariables(B,x,S,F,R,K)} + ${V.mainStart()} + ${V.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var outputIndices = ${K.offsetToIndices(`global_idx * ${C}`)}; + ${L()} + let scale = ${x.getByOffset("cOffset")}; + let bias = ${S.getByOffset("cOffset")}; + let inputMean = ${F.getByOffset("cOffset")}; + let inputVar = ${R.getByOffset("cOffset")}; + let x = ${B.getByOffset("global_idx")}; + let value = (x - inputMean) * inverseSqrt(inputVar + epsilon) * scale + bias; + ${K.setByOffset("global_idx","value")} + }`;return{name:"BatchNormalization",shaderCache:{hint:`${n.epsilon}_${n.format}_${g}_${C}`,inputDependencies:v?["rank","type","type","type","type"]:void 0},getShaderSource:N,getRunData:()=>({outputs:[{dims:a[0].dims,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:v?[{type:12,data:E},...et(h)]:[{type:12,data:E}]})}},Rg=a=>Xt(a),Oh=(a,n)=>{let{inputs:i,outputCount:g}=a,p=Rg({...n,outputCount:g});if(Ir.webgpu.validateInputContent&&Lg(i,p),n.trainingMode)throw new Error("BatchNormalization trainingMode is not supported yet.");a.compute(_g(i,p))}}),jg,Wg,zh,j6=bA(()=>{mt(),bt(),jg=a=>{if(a[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![320,640,1280].includes(a[0].dims[2]))throw new Error("number of channels should be 320, 640 or 1280");if(a[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(a[0].dims[2]!==a[1].dims[0])throw new Error("last dimension of input and bias are not the same")},Wg=a=>{let n=a[0].dims,i=a[0].dims[2],g=Ze.size(n)/4,p=a[0].dataType,h=rA("input",p,n,4),C=rA("bias",p,[i],4),w=rA("residual",p,n,4),E=YA("output",p,n,4);return{name:"BiasAdd",getRunData:()=>({outputs:[{dims:n,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(g/64)}}),getShaderSource:v=>` + const channels = ${i}u / 4; + ${v.declareVariables(h,C,w,E)} + + ${v.mainStart()} + ${v.guardAgainstOutOfBoundsWorkgroupSizes(g)} + let value = ${h.getByOffset("global_idx")} + + ${C.getByOffset("global_idx % channels")} + ${w.getByOffset("global_idx")}; + ${E.setByOffset("global_idx","value")} + }`}},zh=a=>{jg(a.inputs),a.compute(Wg(a.inputs))}}),Yg,Yt,Nh,Lh,_h,Rh,jh,Wh,Yh,Hh,Vh,Hg,Uh,Kh,Xh,Zh,Vo,Jh,H0,qh,$h,e3,A3,t3,r3,s3,a3,n3,i3,o3,l3,c3,u3,d3,f3,f2,g3,nc,ic,p3,m3,h3,Vg,Ug,C3,Sc=bA(()=>{ot(),mt(),Wr(),bt(),Yg=(a,n,i,g,p,h,C)=>{let w=Math.ceil(n/4),E="";typeof p=="string"?E=`${p}(a)`:E=p("a");let v=rA("inputData",i,[w],4),D=YA("outputData",g,[w],4),B=[{name:"vec_size",type:"u32"}];return C&&B.push(...C),` + ${a.registerUniforms(B).declareVariables(v,D)} + + ${h??""} + + ${a.mainStart()} + ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + + let a = ${v.getByOffset("global_idx")}; + ${D.setByOffset("global_idx",E)} + }`},Yt=(a,n,i,g,p,h=a.dataType,C,w)=>{let E=[{type:12,data:Math.ceil(Ze.size(a.dims)/4)}];return C&&E.push(...C),{name:n,shaderCache:{hint:p,inputDependencies:["type"]},getShaderSource:v=>Yg(v,Ze.size(a.dims),a.dataType,h,i,g,w),getRunData:v=>({outputs:[{dims:a.dims,dataType:h}],dispatchGroup:{x:Math.ceil(Ze.size(v[0].dims)/64/4)},programUniforms:E})}},Nh=a=>{a.compute(Yt(a.inputs[0],"Abs","abs"))},Lh=a=>{a.compute(Yt(a.inputs[0],"Acos","acos"))},_h=a=>{a.compute(Yt(a.inputs[0],"Acosh","acosh"))},Rh=a=>{a.compute(Yt(a.inputs[0],"Asin","asin"))},jh=a=>{a.compute(Yt(a.inputs[0],"Asinh","asinh"))},Wh=a=>{a.compute(Yt(a.inputs[0],"Atan","atan"))},Yh=a=>{a.compute(Yt(a.inputs[0],"Atanh","atanh"))},Hh=a=>Xt(a),Vh=(a,n)=>{let i;switch(n.to){case 10:i="vec4";break;case 1:i="vec4";break;case 12:i="vec4";break;case 6:i="vec4";break;case 9:i="vec4";break;default:throw new RangeError(`not supported type (specified in attribute 'to' from 'Cast' operator): ${n.to}`)}a.compute(Yt(a.inputs[0],"Cast",i,void 0,n.cacheKey,n.to))},Hg=a=>{let n,i,g=a.length>=2&&a[1].data!==0,p=a.length>=3&&a[2].data!==0;switch(a[0].dataType){case 1:n=g?a[1].getFloat32Array()[0]:-34028234663852886e22,i=p?a[2].getFloat32Array()[0]:34028234663852886e22;break;case 10:n=g?a[1].getUint16Array()[0]:64511,i=p?a[2].getUint16Array()[0]:31743;break;default:throw new Error("Unsupport data type")}return Xt({min:n,max:i})},Uh=(a,n)=>{let i=n||Hg(a.inputs),g=ys(a.inputs[0].dataType);a.compute(Yt(a.inputs[0],"Clip",p=>`clamp(${p}, vec4<${g}>(uniforms.min), vec4<${g}>(uniforms.max))`,void 0,i.cacheKey,void 0,[{type:a.inputs[0].dataType,data:i.min},{type:a.inputs[0].dataType,data:i.max}],[{name:"min",type:g},{name:"max",type:g}]),{inputs:[0]})},Kh=a=>{a.compute(Yt(a.inputs[0],"Ceil","ceil"))},Xh=a=>{a.compute(Yt(a.inputs[0],"Cos","cos"))},Zh=a=>{a.compute(Yt(a.inputs[0],"Cosh","cosh"))},Vo=a=>Xt(a),Jh=(a,n)=>{let i=ys(a.inputs[0].dataType);a.compute(Yt(a.inputs[0],"Elu",g=>`elu_vf32(${g})`,` + const elu_alpha_ = ${i}(${n.alpha}); + + fn elu_f32(a: ${i}) -> ${i} { + return select((exp(a) - 1.0) * elu_alpha_, a, a >= 0.0); + } + + fn elu_vf32(v: vec4<${i}>) -> vec4<${i}> { + return vec4(elu_f32(v.x), elu_f32(v.y), elu_f32(v.z), elu_f32(v.w)); + }`,n.cacheKey))},H0=(a="f32")=>` +const r0: ${a} = 0.3275911; +const r1: ${a} = 0.254829592; +const r2: ${a} = -0.284496736; +const r3: ${a} = 1.421413741; +const r4: ${a} = -1.453152027; +const r5: ${a} = 1.061405429; + +fn erf_vf32(v: vec4<${a}>) -> vec4<${a}> { + let absv = abs(v); + let x = 1.0 / (1.0 + r0 * absv); + return sign(v) * (1.0 - ((((r5 * x + r4) * x + r3) * x + r2) * x + r1) * x * exp(-absv * absv)); +}`,qh=a=>{let n=ys(a.inputs[0].dataType);a.compute(Yt(a.inputs[0],"Erf",i=>`erf_vf32(${i})`,H0(n)))},$h=a=>{a.compute(Yt(a.inputs[0],"Exp","exp"))},e3=a=>{a.compute(Yt(a.inputs[0],"Floor","floor"))},A3=a=>{let n=ys(a.inputs[0].dataType);a.compute(Yt(a.inputs[0],"Gelu",i=>`0.5 * ${i} * (1.0 + erf_vf32(${i} * 0.7071067811865475))`,H0(n)))},t3=(a,n)=>{let i=ys(a.inputs[0].dataType);a.compute(Yt(a.inputs[0],"LeakyRelu",g=>`select(leaky_relu_alpha_ * ${g}, ${g}, ${g} >= vec4<${i}>(0.0))`,`const leaky_relu_alpha_ = ${i}(${n.alpha});`,n.cacheKey))},r3=a=>{a.compute(Yt(a.inputs[0],"Not",n=>`!${n}`))},s3=a=>{a.compute(Yt(a.inputs[0],"Neg",n=>`-${n}`))},a3=a=>{a.compute(Yt(a.inputs[0],"Reciprocal",n=>`1.0/${n}`))},n3=a=>{let n=ys(a.inputs[0].dataType);a.compute(Yt(a.inputs[0],"Relu",i=>`select(vec4<${n}>(0.0), ${i}, ${i} > vec4<${n}>(0.0))`))},i3=a=>{a.compute(Yt(a.inputs[0],"Sigmoid",n=>`(1.0 / (1.0 + exp(-${n})))`))},o3=a=>Xt(a),l3=(a,n)=>{let i=ys(a.inputs[0].dataType);a.compute(Yt(a.inputs[0],"HardSigmoid",g=>`max(vec4<${i}>(0.0), min(vec4<${i}>(1.0), ${n.alpha} * ${g} + vec4<${i}>(${n.beta})))`,void 0,n.cacheKey))},c3=a=>{a.compute(Yt(a.inputs[0],"Sin","sin"))},u3=a=>{a.compute(Yt(a.inputs[0],"Sinh","sinh"))},d3=a=>{a.compute(Yt(a.inputs[0],"Sqrt","sqrt"))},f3=a=>{a.compute(Yt(a.inputs[0],"Tan","tan"))},f2=a=>`sign(${a}) * (1 - exp(-2 * abs(${a}))) / (1 + exp(-2 * abs(${a})))`,g3=a=>{a.compute(Yt(a.inputs[0],"Tanh",f2))},nc=(a="f32")=>` +const fast_gelu_a: ${a} = 0.5; +const fast_gelu_b: ${a} = 0.7978845608028654; +const fast_gelu_c: ${a} = 0.035677408136300125; + +fn tanh_v(v: vec4<${a}>) -> vec4<${a}> { + return ${f2("v")}; +} +`,ic=a=>`(fast_gelu_a + fast_gelu_a * tanh_v(${a} * (fast_gelu_c * ${a} * ${a} + fast_gelu_b))) * ${a}`,p3=a=>{let n=ys(a.inputs[0].dataType);a.compute(Yt(a.inputs[0],"FastGelu",ic,nc(n),void 0,a.inputs[0].dataType))},m3=(a,n)=>{let i=ys(a.inputs[0].dataType);return a.compute(Yt(a.inputs[0],"ThresholdedRelu",g=>`select(vec4<${i}>(0.0), ${g}, ${g} > thresholded_relu_alpha_)`,`const thresholded_relu_alpha_ = vec4<${i}>(${n.alpha});`,n.cacheKey)),0},h3=a=>{a.compute(Yt(a.inputs[0],"Log","log"))},Vg=(a,n)=>` +const alpha = vec4<${a}>(${n}); +const one = ${a}(1.0); +const zero = ${a}(0.0); + +fn quick_gelu_impl(x: vec4<${a}>) -> vec4<${a}> { + let v = x *alpha; + var x1 : vec4<${a}>; + for (var i = 0; i < 4; i = i + 1) { + if (v[i] >= zero) { + x1[i] = one / (one + exp(-v[i])); + } else { + x1[i] = one - one / (one + exp(v[i])); + } + } + return x * x1; +} +`,Ug=a=>`quick_gelu_impl(${a})`,C3=(a,n)=>{let i=ys(a.inputs[0].dataType);a.compute(Yt(a.inputs[0],"QuickGelu",Ug,Vg(i,n.alpha),n.cacheKey,a.inputs[0].dataType))}}),Kg,Xg,b3,W6=bA(()=>{mt(),bt(),Sc(),Kg=a=>{if(a[0].dims.length!==3)throw new Error("input should have 3 dimensions");if(![2560,5120,10240].includes(a[0].dims[2]))throw new Error("hidden state should be 2560, 5120 or 10240");if(a[1].dims.length!==1)throw new Error("bias is expected to have 1 dimensions");if(a[0].dims[2]!==a[1].dims[0])throw new Error("last dimension of input and bias are not the same")},Xg=a=>{let n=a[0].dims.slice();n[2]=n[2]/2;let i=rA("input",a[0].dataType,a[0].dims,4),g=rA("bias",a[0].dataType,[a[0].dims[2]],4),p=YA("output",a[0].dataType,n,4),h=Ze.size(n)/4,C=us(a[0].dataType);return{name:"BiasSplitGelu",getRunData:()=>({outputs:[{dims:n,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(h/64)}}),getShaderSource:w=>` + const M_SQRT2 = sqrt(2.0); + const halfChannels = ${a[0].dims[2]/4/2}u; + + ${w.declareVariables(i,g,p)} + + ${H0(C)} + + ${w.mainStart()} + ${w.guardAgainstOutOfBoundsWorkgroupSizes(h)} + let biasIdx = global_idx % halfChannels; + let batchIndex = global_idx / halfChannels; + let inputOffset = biasIdx + batchIndex * halfChannels * 2; + let valueLeft = input[inputOffset] + bias[biasIdx]; + let valueRight = input[inputOffset + halfChannels] + bias[biasIdx + halfChannels]; + let geluRight = valueRight * 0.5 * (erf_vf32(valueRight / M_SQRT2) + 1); + + ${p.setByOffset("global_idx","valueLeft * geluRight")} + }`}},b3=a=>{Kg(a.inputs),a.compute(Xg(a.inputs))}}),Zg,Jg,Qa,I3,w3,k3,E3,M3,B3,v3,x3,y3,D3,Y6=bA(()=>{ot(),mt(),bt(),Zg=(a,n,i,g,p,h,C,w,E,v,D,B)=>{let x,S;typeof w=="string"?x=S=(N,V)=>`${w}((${N}),(${V}))`:typeof w=="function"?x=S=w:(x=w.scalar,S=w.vector);let F=YA("outputData",D,g.length,4),R=rA("aData",E,n.length,4),K=rA("bData",v,i.length,4),L;if(p)if(h){let N=Ze.size(n)===1,V=Ze.size(i)===1,d=n.length>0&&n[n.length-1]%4===0,k=i.length>0&&i[i.length-1]%4===0;N||V?L=F.setByOffset("global_idx",S(N?`${R.type.value}(${R.getByOffset("0")}.x)`:R.getByOffset("global_idx"),V?`${K.type.value}(${K.getByOffset("0")}.x)`:K.getByOffset("global_idx"))):L=` + let outputIndices = ${F.offsetToIndices("global_idx * 4u")}; + let offsetA = ${R.broadcastedIndicesToOffset("outputIndices",F)}; + let offsetB = ${K.broadcastedIndicesToOffset("outputIndices",F)}; + ${F.setByOffset("global_idx",S(C||d?R.getByOffset("offsetA / 4u"):`${R.type.value}(${R.getByOffset("offsetA / 4u")}[offsetA % 4u])`,C||k?K.getByOffset("offsetB / 4u"):`${K.type.value}(${K.getByOffset("offsetB / 4u")}[offsetB % 4u])`))} + `}else L=F.setByOffset("global_idx",S(R.getByOffset("global_idx"),K.getByOffset("global_idx")));else{if(!h)throw new Error("no necessary to use scalar implementation for element-wise binary op implementation.");let N=(V,d,k="")=>{let e=`aData[indexA${d}][componentA${d}]`,u=`bData[indexB${d}][componentB${d}]`;return` + let outputIndices${d} = ${F.offsetToIndices(`global_idx * 4u + ${d}u`)}; + let offsetA${d} = ${R.broadcastedIndicesToOffset(`outputIndices${d}`,F)}; + let offsetB${d} = ${K.broadcastedIndicesToOffset(`outputIndices${d}`,F)}; + let indexA${d} = offsetA${d} / 4u; + let indexB${d} = offsetB${d} / 4u; + let componentA${d} = offsetA${d} % 4u; + let componentB${d} = offsetB${d} % 4u; + ${V}[${d}] = ${k}(${x(e,u)}); + `};D===9?L=` + var data = vec4(0); + ${N("data",0,"u32")} + ${N("data",1,"u32")} + ${N("data",2,"u32")} + ${N("data",3,"u32")} + outputData[global_idx] = dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(data));`:L=` + ${N("outputData[global_idx]",0)} + ${N("outputData[global_idx]",1)} + ${N("outputData[global_idx]",2)} + ${N("outputData[global_idx]",3)} + `}return` + ${a.registerUniform("vec_size","u32").declareVariables(R,K,F)} + + ${B??""} + + ${a.mainStart()} + ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${L} + }`},Jg=(a,n,i,g,p,h,C=i.dataType)=>{let w=i.dims.map(R=>Number(R)??1),E=g.dims.map(R=>Number(R)??1),v=!Ze.areEqual(w,E),D=w,B=Ze.size(w),x=!1,S=!1,F=[v];if(v){let R=uo.calcShape(w,E,!1);if(!R)throw new Error("Can't perform binary op on the given tensors");D=R.slice(),B=Ze.size(D);let K=Ze.size(w)===1,L=Ze.size(E)===1,N=w.length>0&&w[w.length-1]%4===0,V=E.length>0&&E[E.length-1]%4===0;F.push(K),F.push(L),F.push(N),F.push(V);let d=1;for(let k=1;kR.toString()).join("_"),inputDependencies:["rank","rank"]},getShaderSource:R=>Zg(R,w,E,D,x,v,S,p,i.dataType,g.dataType,C,h),getRunData:()=>({outputs:[{dims:D,dataType:C}],dispatchGroup:{x:Math.ceil(B/64/4)},programUniforms:[{type:12,data:Math.ceil(Ze.size(D)/4)},...et(w,E,D)]})}},Qa=(a,n,i,g,p,h)=>{a.compute(Jg(n,p??"",a.inputs[0],a.inputs[1],i,g,h))},I3=a=>{Qa(a,"Add",(n,i)=>`${n}+${i}`)},w3=a=>{Qa(a,"Div",(n,i)=>`${n}/${i}`)},k3=a=>{Qa(a,"Equal",{scalar:(n,i)=>`u32(${n}==${i})`,vector:(n,i)=>`vec4(${n}==${i})`},void 0,void 0,9)},E3=a=>{Qa(a,"Mul",(n,i)=>`${n}*${i}`)},M3=a=>{let n=rA("input",a.inputs[0].dataType,a.inputs[0].dims).type.value;Qa(a,"Pow",{scalar:(i,g)=>`pow_custom(${i},${g})`,vector:(i,g)=>`pow_vector_custom(${i},${g})`},` + fn pow_custom(a : ${n}, b : ${n}) -> ${n} { + if (b == ${n}(0.0)) { + return ${n}(1.0); + } else if (a < ${n}(0.0) && f32(b) != floor(f32(b))) { + return ${n}(pow(f32(a), f32(b))); // NaN + } + return select(sign(a), ${n}(1.0), round(f32(abs(b) % ${n}(2.0))) != 1.0) * ${n}(${n==="i32"?"round":""}(pow(f32(abs(a)), f32(b)))); + } + fn pow_vector_custom(a : vec4<${n}>, b : vec4<${n}>) -> vec4<${n}> { + // TODO: implement vectorized pow + return vec4<${n}>(pow_custom(a.x, b.x), pow_custom(a.y, b.y), pow_custom(a.z, b.z), pow_custom(a.w, b.w)); + } + `)},B3=a=>{Qa(a,"Sub",(n,i)=>`${n}-${i}`)},v3=a=>{Qa(a,"Greater",{scalar:(n,i)=>`u32(${n}>${i})`,vector:(n,i)=>`vec4(${n}>${i})`},void 0,void 0,9)},x3=a=>{Qa(a,"Less",{scalar:(n,i)=>`u32(${n}<${i})`,vector:(n,i)=>`vec4(${n}<${i})`},void 0,void 0,9)},y3=a=>{Qa(a,"GreaterOrEqual",{scalar:(n,i)=>`u32(${n}>=${i})`,vector:(n,i)=>`vec4(${n}>=${i})`},void 0,void 0,9)},D3=a=>{Qa(a,"LessOrEqual",{scalar:(n,i)=>`u32(${n}<=${i})`,vector:(n,i)=>`vec4(${n}<=${i})`},void 0,void 0,9)}}),qg,$g,e4,A4,T3,G3,H6=bA(()=>{ot(),mt(),Wr(),bt(),qg=(a,n)=>{if(!a||a.length<1)throw new Error("too few inputs");let i=0,g=a[i],p=g.dataType,h=g.dims.length;a.forEach((C,w)=>{if(w!==i){if(C.dataType!==p)throw new Error("input tensors should be one type");if(C.dims.length!==h)throw new Error("input tensors should have the same shape");C.dims.forEach((E,v)=>{if(v!==n&&E!==g.dims[v])throw new Error("non concat dimensions must match")})}})},$g=(a,n)=>` + fn calculateInputIndex(index: u32) -> u32 { + let sizeInConcatAxis = array(${n}); + for (var i: u32 = 0u; i < ${a}; i += 1u ) { + if (index < sizeInConcatAxis[i]) { + return i; + } + } + return ${a}u; + }`,e4=(a,n)=>{let i=a.length,g=[];for(let p=0;p{let p=Ze.size(i),h=new Array(a.length),C=new Array(a.length),w=0,E=[],v=[],D=[{type:12,data:p}];for(let R=0;R`uniforms.sizeInConcatAxis${R}`).join(","),F=R=>` + + ${(()=>{R.registerUniform("outputSize","u32");for(let K=0;K(${S}); + ${x} -= sizeInConcatAxis[inputIndex - 1u]; + } + + ${e4(C,B)} + }`;return{name:"Concat",shaderCache:{hint:`${n}`,inputDependencies:E},getRunData:()=>({outputs:[{dims:i,dataType:g}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:D}),getShaderSource:F}},T3=(a,n)=>{let i=a.inputs,g=i[0].dims,p=Ze.normalizeAxis(n.axis,g.length);qg(i,p);let h=g.slice();h[p]=i.reduce((w,E)=>w+(E.dims.length>p?E.dims[p]:0),0);let C=i.filter(w=>Ze.size(w.dims)>0);a.compute(A4(C,p,h,i[0].dataType),{inputs:C})},G3=a=>Xt({axis:a.axis})}),Fi,Si,Oi,Oc,Ni=bA(()=>{ot(),mt(),Fi=(a,n,i="f32")=>{switch(a.activation){case"Relu":return`value = max(value, ${n}(0.0));`;case"Sigmoid":return`value = (${n}(1.0) / (${n}(1.0) + exp(-value)));`;case"Clip":return`value = clamp(value, ${n}(${i}(uniforms.clip_min)), ${n}(${i}(uniforms.clip_max)));`;case"HardSigmoid":return`value = max(${n}(0.0), min(${n}(1.0), ${i}(uniforms.alpha) * value + ${i}(uniforms.beta)));`;case"LeakyRelu":return`value = select(${i}(uniforms.alpha) * value, value, value >= ${n}(0.0));`;case"Tanh":return`let e2x = exp(-2.0 * abs(value)); + value = sign(value) * (1.0 - e2x) / (1.0 + e2x); + `;case"":return"";default:throw new Error(`Unsupported activation ${a.activation}`)}},Si=(a,n)=>{a.activation==="Clip"?n.push({type:1,data:a.clipMax},{type:1,data:a.clipMin}):a.activation==="HardSigmoid"?n.push({type:1,data:a.alpha},{type:1,data:a.beta}):a.activation==="LeakyRelu"&&n.push({type:1,data:a.alpha})},Oi=(a,n)=>{a.activation==="Clip"?n.push({name:"clip_max",type:"f32"},{name:"clip_min",type:"f32"}):a.activation==="HardSigmoid"?n.push({name:"alpha",type:"f32"},{name:"beta",type:"f32"}):a.activation==="LeakyRelu"&&n.push({name:"alpha",type:"f32"})},Oc=a=>{let n=(a==null?void 0:a.activation)||"";if(n==="HardSigmoid"){let[i,g]=(a==null?void 0:a.activation_params)||[.2,.5];return{activation:n,alpha:i,beta:g}}else if(n==="Clip"){let[i,g]=(a==null?void 0:a.activation_params)||[rh,sh];return{activation:n,clipMax:g,clipMin:i}}else if(n==="LeakyRelu"){let[i]=(a==null?void 0:a.activation_params)||[.01];return{activation:n,alpha:i}}return{activation:n}}}),hs,P3,zc=bA(()=>{hs=(a,n)=>{switch(a){case 1:return n;case 2:return`vec2<${n}>`;case 3:return`vec3<${n}>`;case 4:return`vec4<${n}>`;default:throw new Error(`${a}-component is not supported.`)}},P3=a=>` + ${a?"value = value + getBiasByOutputCoords(coords);":""} + `}),Q3,V6=bA(()=>{Q3=a=>` +fn getIndexFromCoords4D(coords : vec4, shape : vec4) -> i32 { + return dot(coords, vec4( + shape.y * shape.z * shape.w, shape.z * shape.w, shape.w, 1)); +} +fn getOutputIndexFromCoords(coords : vec4) -> i32 { + return dot(coords, vec4( + i32(${a}.x), i32(${a}.y), i32(${a}.z), 1)); +} +`}),Ko,Nc,Lc=bA(()=>{ot(),mt(),bt(),Ni(),Ko=(a,n,i,g,p)=>{let h=g-i;return` + ${Array.from({length:i}).map((C,w)=>` + if (${JA(n.shape,w,n.rank)} != 1) { + ${n.indicesSet(a,w,JA(p,w+h,g))} + } else { + ${n.indicesSet(a,w,0)} + }`).join("")} +`},Nc=(a,n,i,g,p=!1,h)=>{let C=a[0].dims,w=a[1].dims,E=C[C.length-2],v=w[w.length-1],D=C[C.length-1],B=Nr(v),x=Nr(D),S=Nr(E),F=Ze.size(i)/B/S,R=a.length>2,K=g?g.slice(0,-2):i.slice(0,-2),L=[Ze.size(K),E,v],N=[{type:12,data:F},{type:12,data:E},{type:12,data:v},{type:12,data:D}];Si(n,N),N.push(...et(K,C,w)),R&&N.push(...et(a[2].dims)),N.push(...et(L));let V=d=>{let k=Pc("batch_dims",a[0].dataType,K.length),e=rA("a",a[0].dataType,C.length,x),u=rA("b",a[1].dataType,w.length,B),y=YA("output",a[0].dataType,L.length,B),$=us(y.type.tensor),T=Fi(n,y.type.value,$),O=[e,u],Ce="";if(R){let he=p?B:1;O.push(rA("bias",a[2].dataType,a[2].dims.length,he)),Ce=`${p?`value += bias[col / ${he}];`:`value += ${y.type.value}(bias[row + i]);`}`}let Ae=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"}];Oi(n,Ae);let be=()=>{let he=`var a_data: ${e.type.value};`;for(let Ee=0;Ee; + for (var k: u32 = 0u; k < uniforms.K; k = k + ${x}) { + ${be()} + } + for (var i = 0u; i < ${S}u; i++) { + var value = values[i]; + ${Ce} + ${T} + let cur_indices = ${y.type.indices}(batch, row + i, col); + let offset = ${y.indicesToOffset("cur_indices")}; + ${y.setByOffset(`offset / ${B}`,"value")}; + } + } + `};return{name:"MatMulNaive",shaderCache:{hint:`${n.activation};${B};${x};${S};${p}`,inputDependencies:R?["rank","rank","rank"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:h?h(i):i,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(F/64)},programUniforms:N}),getShaderSource:V}}}),t4,r4,oc,g2,s4,lc,a4,q0,_c=bA(()=>{ot(),mt(),bt(),Ni(),Lc(),zc(),t4=(a,n)=>a?` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + kStart + inputRow, + globalRowStart / innerElementSize + inputCol${n?", batchIndices":""}); + `:` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + globalRow + innerRow, + kStart / innerElementSize + inputCol${n?", batchIndices":""}); + `,r4=(a,n)=>a?` + let ACached0 = mm_Asub[k * innerElementSize][localRow]; + let ACached1 = mm_Asub[k * innerElementSize + 1][localRow]; + let ACached2 = mm_Asub[k * innerElementSize + 2][localRow]; + ${n===3?"":"let ACached3 = mm_Asub[k * innerElementSize + 3][localRow];"} + for (var i = 0; i < rowPerThread; i = i + 1) { + acc[i] = BCached0 * ACached0[i] + acc[i]; + acc[i] = BCached1 * ACached1[i] + acc[i]; + acc[i] = BCached2 * ACached2[i] + acc[i]; + ${n===3?"":"acc[i] = BCached3 * ACached3[i] + acc[i];"} + }`:` + for (var i = 0; i < rowPerThread; i = i + 1) { + let ACached = mm_Asub[tileRow + i][k]; + acc[i] = BCached0 * ACached.x + acc[i]; + acc[i] = BCached1 * ACached.y + acc[i]; + acc[i] = BCached2 * ACached.z + acc[i]; + ${n===3?"":"acc[i] = BCached3 * ACached.w + acc[i];"} + }`,oc=(a,n,i="f32",g,p=!1,h=32,C=!1,w=32)=>{let E=n[1]*a[1],v=n[0]*a[0],D=p?E:h,B=p?h:E,x=D/n[0],S=h/n[1];if(!((p&&x===4&&a[1]===4||!p&&(x===3||x===4))&&D%n[0]===0&&h%n[1]===0&&a[0]===4))throw new Error(`If transposeA ${p} is true, innerElementSize ${x} and workPerThread[1] ${a[1]} must be 4. + Otherwise, innerElementSize ${x} must be 3 or 4. + tileAWidth ${D} must be divisible by workgroupSize[0]${n[0]}. tileInner ${h} must be divisible by workgroupSize[1] ${n[1]}. colPerThread ${a[0]} must be 4.`);return` +var mm_Asub: array, ${D/x}>, ${B}>; +var mm_Bsub: array, ${v/a[0]}>, ${h}>; + +const rowPerThread = ${a[1]}; +const colPerThread = ${a[0]}; +const innerElementSize = ${x}; +const tileInner = ${h}; + +@compute @workgroup_size(${n[0]}, ${n[1]}, ${n[2]}) +fn main(@builtin(local_invocation_id) localId : vec3, + @builtin(global_invocation_id) globalId : vec3, + @builtin(workgroup_id) workgroupId : vec3) { + let localRow = i32(localId.y); + let tileRow = localRow * rowPerThread; + let tileCol = i32(localId.x); + + let globalRow =i32(globalId.y) * rowPerThread; + let globalCol = i32(globalId.x); + let batch = ${C?"0":"i32(globalId.z)"}; + ${g?`let batchIndices = ${g.offsetToIndices("u32(batch)")};`:""} + let globalRowStart = i32(workgroupId.y) * ${E}; + + let num_tiles = ${C?`${Math.ceil(w/h)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; + var kStart = ${C?`i32(globalId.z) * ${w}`:"0"}; + + var acc: array, rowPerThread>; + + // Loop over shared dimension. + let tileRowB = localRow * ${S}; + for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let inputRow = tileRow + innerRow; + let inputCol = tileCol; + ${t4(p,g)} + } + + // Load one tile of B into local memory. + for (var innerRow = 0; innerRow < ${S}; innerRow = innerRow + 1) { + let inputRow = tileRowB + innerRow; + let inputCol = tileCol; + mm_Bsub[inputRow][inputCol] = mm_readB(batch, kStart + inputRow, globalCol${g?", batchIndices":""}); + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + for (var k = 0; k < tileInner / innerElementSize; k = k + 1) { + let BCached0 = mm_Bsub[k * innerElementSize][tileCol]; + let BCached1 = mm_Bsub[k * innerElementSize + 1][tileCol]; + let BCached2 = mm_Bsub[k * innerElementSize + 2][tileCol]; + ${x===3?"":"let BCached3 = mm_Bsub[k * innerElementSize + 3][tileCol];"} + + ${r4(p,x)} + } + + workgroupBarrier(); + } + + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + mm_write(batch, globalRow + innerRow, globalCol, acc[innerRow]); + } +}`},g2=(a,n)=>a?` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + kStart + inputRow, + globalRowStart + inputCol${n?", batchIndices":""}); + `:` + mm_Asub[inputRow][inputCol] = mm_readA(batch, + globalRowStart + inputRow, + kStart + inputCol${n?", batchIndices":""}); + `,s4=a=>a?"let ACached = mm_Asub[k][tileRow + innerRow];":"let ACached = mm_Asub[tileRow + innerRow][k];",lc=(a,n,i="f32",g,p=!1,h=32,C=!1,w=32,E=!1)=>{let v=a[1]*n[1],D=a[0]*n[0],B=p?v:h,x=p?h:v;if(!(x%n[1]===0&&B%n[0]===0&&h%n[1]===0))throw new Error(`tileAHight ${x} must be divisible by workgroupSize[1]${n[1]}, tileAWidth ${B} must be divisible by workgroupSize[0]${n[0]}, tileInner ${h} must be divisible by workgroupSize[1]${n[1]}`);let S=x/n[1],F=B/n[0],R=h/n[1],K=E?` + let localRow = i32(localId.y); + let localCol = i32(localId.x); + let globalRowStart = i32(workgroupId.y) * ${v}; + let globalColStart = i32(workgroupId.x) * ${D}; + + // Loop over shared dimension. + for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var inputRow = localRow; inputRow < ${x}; inputRow = inputRow + ${n[1]}) { + for (var inputCol = localCol; inputCol < ${B}; inputCol = inputCol + ${n[0]}) { + ${g2(p,g)} + } + } + // Load one tile of B into local memory. + for (var inputRow = localRow; inputRow < ${h}; inputRow = inputRow + ${n[1]}) { + for (var inputCol = localCol; inputCol < ${D}; inputCol = inputCol + ${n[0]}) { + mm_Bsub[inputRow][inputCol] = mm_readB(batch, + kStart + inputRow, + globalColStart + inputCol${g?", batchIndices":""}); + } + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + var BCached : array<${i}, colPerThread>; + for (var k = 0; k < tileInner; k = k + 1) { + for (var inner = 0; inner < colPerThread; inner = inner + 1) { + BCached[inner] = mm_Bsub[k][localCol + inner * ${n[0]}]; + } + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let ACached = ${p?`mm_Asub[k][localRow + innerRow * ${n[1]}];`:`mm_Asub[localRow + innerRow * ${n[1]}][k];`} + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + acc[innerRow][innerCol] = acc[innerRow][innerCol] + + ACached * BCached[innerCol]; + } + } + } + workgroupBarrier(); + } + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + let gRow = globalRowStart + localRow + innerRow * ${n[1]}; + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + let gCol = globalColStart + localCol + innerCol * ${n[0]}; + mm_write(batch, gRow, gCol, acc[innerRow][innerCol]); + } + } + `:` +let tileRow = i32(localId.y) * rowPerThread; +let tileCol = i32(localId.x) * colPerThread; + +let globalRow = i32(globalId.y) * rowPerThread; +let globalCol = i32(globalId.x) * colPerThread; +let globalRowStart = i32(workgroupId.y) * ${v}; + +let tileRowA = i32(localId.y) * ${S}; +let tileColA = i32(localId.x) * ${F}; +let tileRowB = i32(localId.y) * ${R}; +// Loop over shared dimension. +for (var t = 0; t < num_tiles; t = t + 1) { + // Load one tile of A into local memory. + for (var innerRow = 0; innerRow < ${S}; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < ${F}; innerCol = innerCol + 1) { + let inputRow = tileRowA + innerRow; + let inputCol = tileColA + innerCol; + ${g2(p,g)} + } + } + + // Load one tile of B into local memory. + for (var innerRow = 0; innerRow < ${R}; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + let inputRow = tileRowB + innerRow; + let inputCol = tileCol + innerCol; + mm_Bsub[inputRow][inputCol] = mm_readB(batch, + kStart + inputRow, + globalCol + innerCol${g?", batchIndices":""}); + } + } + kStart = kStart + tileInner; + workgroupBarrier(); + + // Compute acc values for a single thread. + var BCached : array<${i}, colPerThread>; + for (var k = 0; k < tileInner; k = k + 1) { + for (var inner = 0; inner < colPerThread; inner = inner + 1) { + BCached[inner] = mm_Bsub[k][tileCol + inner]; + } + + for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + ${s4(p)} + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + acc[innerRow][innerCol] = acc[innerRow][innerCol] + ACached * BCached[innerCol]; + } + } + } + + workgroupBarrier(); +} + +for (var innerRow = 0; innerRow < rowPerThread; innerRow = innerRow + 1) { + for (var innerCol = 0; innerCol < colPerThread; innerCol = innerCol + 1) { + mm_write(batch, globalRow + innerRow, globalCol + innerCol, + acc[innerRow][innerCol]); + } +} +`;return` + var mm_Asub : array, ${x}>; + var mm_Bsub : array, ${h}>; + const rowPerThread = ${a[1]}; + const colPerThread = ${a[0]}; + const tileInner = ${h}; + +@compute @workgroup_size(${n[0]}, ${n[1]}, ${n[2]}) +fn main(@builtin(local_invocation_id) localId : vec3, + @builtin(global_invocation_id) globalId : vec3, + @builtin(workgroup_id) workgroupId : vec3) { + let batch = ${C?"0":"i32(globalId.z)"}; + ${g?`let batchIndices = ${g.offsetToIndices("u32(batch)")};`:""} + let num_tiles = ${C?`${Math.ceil(w/h)}`:"(uniforms.dim_inner - 1) / tileInner + 1"}; + var kStart = ${C?`i32(globalId.z) * ${w}`:"0"}; + + var acc : array, rowPerThread>; + ${K} + } +`},a4=(a,n,i,g,p=!1)=>{let[h,C,w,E]=g,v=us(g[0].type.tensor);return` + fn mm_readA(batch: i32, row: i32, colIn: i32, batchIndices: ${h.type.indices}) -> ${hs(a,v)} { + var value = ${hs(a,v)}(0.0); + let col = colIn * ${a}; + if(row < uniforms.dim_a_outer && col < uniforms.dim_inner) + { + var aIndices: ${C.type.indices}; + ${Ko("aIndices",C,C.rank-2,h.rank,"batchIndices")} + ${C.indicesSet("aIndices",C.rank-2,"u32(row)")} + ${C.indicesSet("aIndices",C.rank-1,"u32(colIn)")} + value = ${C.getByIndices("aIndices")}; + } + return value; + } + + fn mm_readB(batch: i32, row: i32, colIn: i32, batchIndices: ${h.type.indices}) -> ${hs(a,v)} { + var value = ${hs(a,v)}(0.0); + let col = colIn * ${a}; + if(row < uniforms.dim_inner && col < uniforms.dim_b_outer) + { + var bIndices: ${w.type.indices}; + ${Ko("bIndices",w,w.rank-2,h.rank,"batchIndices")} + ${w.indicesSet("bIndices",w.rank-2,"u32(row)")} + ${w.indicesSet("bIndices",w.rank-1,"u32(colIn)")} + value = ${w.getByIndices("bIndices")}; + } + return value; + } + + fn mm_write(batch: i32, row: i32, colIn: i32, valueIn: ${hs(a,v)}) { + let col = colIn * ${a}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) { + var value = valueIn; + let coords = vec3(batch, row, colIn); + ${n?`value = value + ${p?"bias[colIn]":`${hs(a,v)}(bias[row])`};`:""} + ${i} + ${E.setByIndices("vec3(coords)","value")} + } + } + `},q0=(a,n,i,g,p=!1,h)=>{let C=a[0].dims,w=a[1].dims,E=C.slice(0,-2),v=w.slice(0,-2),D=g?g.slice(0,-2):i.slice(0,-2),B=Ze.size(D),x=C[C.length-2],S=C[C.length-1],F=w[w.length-1],R=S%4===0&&F%4===0,K=x<=8?[4,1,1]:[4,4,1],L=[8,8,1],N=[Math.ceil(F/L[0]/K[0]),Math.ceil(x/L[1]/K[1]),Math.ceil(B/L[2]/K[2])],V=R?4:1,d=[...E,x,S/V],k=d.length,e=[...v,S,F/V],u=e.length,y=[B,x,F/V],$=[{type:6,data:x},{type:6,data:F},{type:6,data:S}];Si(n,$),$.push(...et(D,d,e));let T=["rank","rank"],O=a.length>2;O&&($.push(...et(a[2].dims)),T.push("rank")),$.push(...et(y));let Ce=Ae=>{let be=D.length,he=Pc("batchDims",a[0].dataType,be,1),Ee=us(a[0].dataType),ke=rA("a",a[0].dataType,k,V),De=rA("b",a[1].dataType,u,V),Re=YA("result",a[0].dataType,y.length,V),Qe=[ke,De];if(O){let Ye=p?V:1;Qe.push(rA("bias",a[2].dataType,a[2].dims.length,Ye))}let ue=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"}];Oi(n,ue);let ee=us(Re.type.tensor),de=Fi(n,Re.type.value,ee),xe=a4(V,O,de,[he,ke,De,Re],p);return` + ${Ae.registerUniforms(ue).registerInternalVariables(he).declareVariables(...Qe,Re)} + ${xe} + ${R?oc(K,L,Ee,he):lc(K,L,Ee,he)} + `};return{name:"MatMul",shaderCache:{hint:`${K};${n.activation};${R};${p}`,inputDependencies:T},getRunData:()=>({outputs:[{dims:h?h(i):i,dataType:a[0].dataType}],dispatchGroup:{x:N[0],y:N[1],z:N[2]},programUniforms:$}),getShaderSource:Ce}}}),n4,F3,U6=bA(()=>{ot(),xn(),bt(),Ni(),zc(),V6(),_c(),n4=(a,n,i,g,p=!1,h,C=4,w=4,E=4,v="f32")=>{let D=$=>{switch($){case 1:return"resData = x[xIndex];";case 3:return`resData = vec3<${v}>(x[xIndex], x[xIndex + 1], x[xIndex + 2]);`;case 4:return"resData = x[xIndex / 4];";default:throw new Error(`innerElementSize ${$} is not supported.`)}},B=$=>{switch($){case 1:return"return w[row * i32(uniforms.w_shape[3]) + colIn];";case 4:return"return w[row * i32(uniforms.w_shape[3]) / 4 + colIn];";default:throw new Error(`innerElementSize ${$} is not supported.`)}},x=a?` + let coord = vec4(batch, xRow, xCol, xCh); + `:` + let coord = vec4(batch, xCh, xRow, xCol); + `,S=a?` + let coords = vec4( + batch, + row / outWidth, + row % outWidth, + col); + `:` + let coords = vec4( + batch, + row, + col / outWidth, + col % outWidth); + `,F=a?"i32(uniforms.x_shape[1])":"i32(uniforms.x_shape[2])",R=a?"i32(uniforms.x_shape[2])":"i32(uniforms.x_shape[3])",K=a?"row":"col",L=a?"col":"row",N=` + let inChannels = i32(uniforms.w_shape[2]); + let outWidth = ${a?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + let outRow = ${K} / outWidth; + let outCol = ${K} % outWidth; + + let WRow = ${L} / (i32(uniforms.w_shape[1]) * inChannels); + let WCol = ${L} / inChannels % i32(uniforms.w_shape[1]); + let xRow = outRow * uniforms.stride[0] + uniforms.dilation[0] * WRow - uniforms.pad[0]; + let xCol = outCol * uniforms.stride[1] + uniforms.dilation[1] * WCol - uniforms.pad[1]; + let xCh = ${L} % inChannels; + var resData = ${hs(C,v)}(0.0); + // The bounds checking is always needed since we use it to pad zero for + // the 'same' padding type. + if (xRow >= 0 && xRow < ${F} && xCol >= 0 && xCol < ${R}) { + ${x} + let xIndex = getIndexFromCoords4D(coord, vec4(uniforms.x_shape)); + ${D(C)} + } + return resData;`,V=a?n&&g?` + let col = colIn * ${C}; + ${N}`:` + let col = colIn * ${C}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_inner) { + ${N} + } + return ${hs(C,v)}(0.0);`:g&&i?` + let col = colIn * ${C}; + ${N}`:` + let col = colIn * ${C}; + if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { + ${N} + } + return ${hs(C,v)}(0.0);`,d=a?g&&i?B(w):` + let col = colIn * ${w}; + if (row < uniforms.dim_inner && col < uniforms.dim_b_outer) { + ${B(w)} + } + return ${hs(w,v)}(0.0);`:` + let col = colIn * ${w}; + if (row < uniforms.dim_inner && col < uniforms.dim_a_outer) { + ${B(w)} + } + return ${hs(w,v)}(0.0);`,k=hs(E,v),e=hs(a?C:w,v),u=hs(a?w:C,v),y=Fi(h,k,v);return` + fn mm_readA(batch: i32, row : i32, colIn : i32) -> ${e} { + ${a?V:d} + } + + fn mm_readB(batch: i32, row : i32, colIn : i32) -> ${u} { + ${a?d:V} + } + + fn mm_write(batch: i32, row : i32, colIn : i32, valueIn : ${k}) { + let col = colIn * ${E}; + if (row < uniforms.dim_a_outer && col < uniforms.dim_b_outer) + { + var value = valueIn; + let outWidth = ${a?"i32(uniforms.result_shape[2])":"i32(uniforms.result_shape[3])"}; + ${S} + ${P3(p)} + ${y} + setOutputAtCoords(coords[0], coords[1], coords[2], coords[3], value); + } + }`},F3=(a,n,i,g,p,h,C,w,E)=>{let v=n.format==="NHWC",D=v?a[0].dims[3]:a[0].dims[1],B=i[0],x=v?i[2]:i[3],S=v?i[1]:i[2],F=v?i[3]:i[1],R=v&&(D%4===0||D%3===0)&&F%4===0,K=v?F:x*S,L=v?x*S:F,N=[8,8,1],V=g<=8?[4,1,1]:[4,4,1],d=[Math.ceil(K/N[0]/V[0]),Math.ceil(L/N[1]/V[1]),Math.ceil(B/N[2]/V[2])];Ft("verbose",()=>`[conv2d_mm_webgpu] dispatch = ${d}`);let k=R?v&&D%4!==0?3:4:1,e=N[1]*V[1],u=N[0]*V[0],y=Math.max(N[0]*k,N[1]),$=g%e===0,T=p%u===0,O=h%y===0,Ce=R?[k,4,4]:[1,1,1],Ae=[{type:6,data:g},{type:6,data:p},{type:6,data:h},{type:6,data:[n.pads[0],n.pads[1]]},{type:6,data:n.strides},{type:6,data:n.dilations}];Si(n,Ae),Ae.push(...et(a[0].dims,a[1].dims));let be=["rank","rank"];C&&(Ae.push(...et(a[2].dims)),be.push("rank")),Ae.push(...et(i));let he=Ee=>{let ke=[{name:"dim_a_outer",type:"i32"},{name:"dim_b_outer",type:"i32"},{name:"dim_inner",type:"i32"},{name:"pad",type:"i32",length:2},{name:"stride",type:"i32",length:2},{name:"dilation",type:"i32",length:2}];Oi(n,ke);let De=R?4:1,Re=us(a[0].dataType),Qe=` + fn setOutputAtIndex(flatIndex : i32, value : ${R?`vec4<${Re}>`:Re}) { + result[flatIndex] = ${R?`vec4<${Re}>`:Re}(value); + } + fn setOutputAtCoords(d0 : i32, d1 : i32, d2 : i32, d3 : i32, value : ${R?`vec4<${Re}>`:Re}) { + let flatIndex = getOutputIndexFromCoords(vec4(d0, d1, d2, d3)); + setOutputAtIndex(flatIndex ${R?"/ 4":""}, value); + }`,ue=rA("x",a[0].dataType,a[0].dims.length,k===3?1:k),ee=rA("w",a[1].dataType,a[1].dims.length,De),de=[ue,ee],xe=YA("result",a[0].dataType,i.length,De);if(C){let Ye=rA("bias",a[2].dataType,a[2].dims.length,De);de.push(Ye),Qe+=` + fn getBiasByOutputCoords(coords : vec4) -> ${R?`vec4<${Re}>`:Re} { + return bias[coords.${v?"w":"y"}${R?"/ 4":""}]; + }`}return` + ${Q3("uniforms.result_strides")} + //struct Uniforms { xShape : vec4, wShape : vec4, outShape : vec4, + // outShapeStrides: vec3, filterDims : vec2, pad : vec2, stride : vec2, + // dilation : vec2, dimAOuter : i32, dimBOuter : i32, dimInner : i32 }; + ${Ee.registerUniforms(ke).declareVariables(...de,xe)} + ${Qe} + ${n4(v,$,T,O,C,n,Ce[0],Ce[1],Ce[2],Re)} + ${R?oc(V,N,Re,void 0,!v,y):lc(V,N,Re,void 0,!v,y,!1,void 0,w)}`};return{name:"Conv2DMatMul",shaderCache:{hint:`${n.cacheKey};${k};${R};${$};${T};${O};${e};${u};${y}`,inputDependencies:be},getRunData:()=>({outputs:[{dims:E?E(i):i,dataType:a[0].dataType}],dispatchGroup:{x:d[0],y:d[1],z:d[2]},programUniforms:Ae}),getShaderSource:he}}}),i4,p2,zo,o4,m2,l4,S3,O3,K6=bA(()=>{ot(),xn(),mt(),bt(),Ni(),zc(),i4=a=>{let n=1;for(let i=0;itypeof a=="number"?[a,a,a]:a,zo=(a,n)=>n<=1?a:a+(a-1)*(n-1),o4=(a,n,i,g=1)=>{let p=zo(n,g);return Math.floor((a[0]*(i-1)-i+p)/2)},m2=(a,n,i,g,p)=>{p==null&&(p=o4(a,n[0],g[0]));let h=[0,0,0,i];for(let C=0;C<3;C++)a[C]+2*p>=n[C]&&(h[C]=Math.trunc((a[C]-n[C]+2*p)/g[C]+1));return h},l4=(a,n,i,g,p,h,C,w,E,v)=>{let D,B,x,S;if(a==="VALID"&&(a=0),typeof a=="number"){D={top:a,bottom:a,left:a,right:a,front:a,back:a};let F=m2([n,i,g,1],[w,E,v],1,[p,h,C],a);B=F[0],x=F[1],S=F[2]}else if(Array.isArray(a)){if(!a.every((R,K,L)=>R===L[0]))throw Error(`Unsupported padding parameter: ${a}`);D={top:a[0],bottom:a[1],left:a[2],right:a[3],front:a[4],back:a[5]};let F=m2([n,i,g,1],[w,E,v],1,[p,h,C],a[0]);B=F[0],x=F[1],S=F[2]}else if(a==="SAME_UPPER"){B=Math.ceil(n/p),x=Math.ceil(i/h),S=Math.ceil(g/C);let F=(B-1)*p+w-n,R=(x-1)*h+E-i,K=(S-1)*C+v-g,L=Math.floor(F/2),N=F-L,V=Math.floor(R/2),d=R-V,k=Math.floor(K/2),e=K-k;D={top:V,bottom:d,left:k,right:e,front:L,back:N}}else throw Error(`Unknown padding parameter: ${a}`);return{padInfo:D,outDepth:B,outHeight:x,outWidth:S}},S3=(a,n,i,g,p,h=!1,C="channelsLast")=>{let w,E,v,D,B;if(C==="channelsLast")[w,E,v,D,B]=a;else if(C==="channelsFirst")[w,B,E,v,D]=a;else throw new Error(`Unknown dataFormat ${C}`);let[x,,S,F,R]=n,[K,L,N]=p2(i),[V,d,k]=p2(g),e=zo(S,V),u=zo(F,d),y=zo(R,k),{padInfo:$,outDepth:T,outHeight:O,outWidth:Ce}=l4(p,E,v,D,K,L,N,e,u,y),Ae=h?x*B:x,be=[0,0,0,0,0];return C==="channelsFirst"?be=[w,Ae,T,O,Ce]:C==="channelsLast"&&(be=[w,T,O,Ce,Ae]),{batchSize:w,dataFormat:C,inDepth:E,inHeight:v,inWidth:D,inChannels:B,outDepth:T,outHeight:O,outWidth:Ce,outChannels:Ae,padInfo:$,strideDepth:K,strideHeight:L,strideWidth:N,filterDepth:S,filterHeight:F,filterWidth:R,effectiveFilterDepth:e,effectiveFilterHeight:u,effectiveFilterWidth:y,dilationDepth:V,dilationHeight:d,dilationWidth:k,inShape:a,outShape:be,filterShape:n}},O3=(a,n,i,g,p,h)=>{let C=h==="channelsLast";C?a[0].dims[3]:a[0].dims[1];let w=[64,1,1],E={x:i.map((K,L)=>L)},v=[Math.ceil(i4(E.x.map(K=>i[K]))/w[0]),1,1];Ft("verbose",()=>`[conv3d_naive_webgpu] dispatch = ${v}`);let D=1,B=Ze.size(i),x=[{type:12,data:B},{type:12,data:g},{type:12,data:p},{type:12,data:n.strides},{type:12,data:n.dilations}];Si(n,x),x.push(...et(a[0].dims,a[1].dims));let S=["rank","rank"],F=a.length===3;F&&(x.push(...et(a[2].dims)),S.push("rank")),x.push(...et(i));let R=K=>{let L=[{name:"output_size",type:"u32"},{name:"filter_dims",type:"u32",length:g.length},{name:"pads",type:"u32",length:p.length},{name:"strides",type:"u32",length:n.strides.length},{name:"dilations",type:"u32",length:n.dilations.length}];Oi(n,L);let N=1,V=us(a[0].dataType),d=rA("x",a[0].dataType,a[0].dims.length,D),k=rA("W",a[1].dataType,a[1].dims.length,N),e=[d,k],u=YA("result",a[0].dataType,i.length,N),y="";if(F){let O=rA("bias",a[2].dataType,a[2].dims.length,N);e.push(O),y+=` + fn getBiasByOutputCoords(coords : array) -> ${V} { + return bias[${C?JA("coords",4,5):JA("coords",1,5)}]; + }`}let $=hs(D,V),T=Fi(n,$,V);return` + ${y} + fn getX(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { + let aIndices = array(d0, d1, d2, d3, d4); + return ${d.getByIndices("aIndices")}; + } + fn getW(d0 : u32, d1 : u32, d2 : u32, d3 : u32, d4 : u32) -> f32 { + let aIndices = array(d0, d1, d2, d3, d4); + return ${k.getByIndices("aIndices")}; + } + ${K.registerUniforms(L).declareVariables(...e,u)} + ${K.mainStart()} + ${K.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let coords = ${u.offsetToIndices("global_idx")}; + let batch = ${JA("coords",0,d.rank)}; + let d2 = ${C?JA("coords",d.rank-1,d.rank):JA("coords",1,d.rank)}; + let xFRCCorner = vec3(${C?JA("coords",1,d.rank):JA("coords",2,d.rank)}, + ${C?JA("coords",2,d.rank):JA("coords",3,d.rank)}, + ${C?JA("coords",3,d.rank):JA("coords",4,d.rank)}) * uniforms.strides - uniforms.pads; + let xFCorner = xFRCCorner.x; + let xRCorner = xFRCCorner.y; + let xCCorner = xFRCCorner.z; + let xShapeY = ${C?JA("uniforms.x_shape",1,d.rank):JA("uniforms.x_shape",2,d.rank)}; + let xShapeZ = ${C?JA("uniforms.x_shape",2,d.rank):JA("uniforms.x_shape",3,d.rank)}; + let xShapeW = ${C?JA("uniforms.x_shape",3,d.rank):JA("uniforms.x_shape",4,d.rank)}; + let xShapeU = ${C?JA("uniforms.x_shape",4,d.rank):JA("uniforms.x_shape",1,d.rank)}; + let inputDepthNearestVec4 = (xShapeU / 4) * 4; + let inputDepthVec4Remainder = xShapeU % 4; + + var value = 0.0; + for (var wF = 0u; wF < uniforms.filter_dims[0]; wF++) { + let xF = xFCorner + wF * uniforms.dilations[0]; + if (xF < 0 || xF >= xShapeY) { + continue; + } + + for (var wR = 0u; wR < uniforms.filter_dims[1]; wR++) { + let xR = xRCorner + wR * uniforms.dilations[1]; + if (xR < 0 || xR >= xShapeZ) { + continue; + } + + for (var wC = 0u; wC < uniforms.filter_dims[2]; wC++) { + let xC = xCCorner + wC * uniforms.dilations[2]; + if (xC < 0 || xC >= xShapeW) { + continue; + } + + for (var d1 = 0u; d1 < inputDepthNearestVec4; d1 += 4) { + ${C?`let xValues = vec4( + getX(batch, xF, xR, xC, d1), + getX(batch, xF, xR, xC, d1 + 1), + getX(batch, xF, xR, xC, d1 + 2), + getX(batch, xF, xR, xC, d1 + 3)); + `:`let xValues = vec4( + getX(batch, d1, xF, xR, xC), + getX(batch, d1 + 1, xF, xR, xC), + getX(batch, d1 + 2, xF, xR, xC), + getX(batch, d1 + 3, xF, xR, xC)); + `} + let wValues = vec4( + getW(d2, d1, wF, wR, wC), + getW(d2, d1 + 1, wF, wR, wC), + getW(d2, d1 + 2, wF, wR, wC), + getW(d2, d1 + 3, wF, wR, wC)); + value += dot(xValues, wValues); + } + if (inputDepthVec4Remainder == 1) { + ${C?`value += getX(batch, xF, xR, xC, inputDepthNearestVec4) + * getW(d2, inputDepthNearestVec4, wF, wR, wC);`:`value += getX(batch, inputDepthNearestVec4, xF, xR, xC) + * getW(d2, inputDepthNearestVec4, wF, wR, wC);`} + } else if (inputDepthVec4Remainder == 2) { + ${C?`let xValues = vec2( + getX(batch, xF, xR, xC, inputDepthNearestVec4), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1)); + `:`let xValues = vec2( + getX(batch, inputDepthNearestVec4, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC)); + `} + let wValues = vec2( + getW(d2, inputDepthNearestVec4, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC)); + value += dot(xValues, wValues); + } else if (inputDepthVec4Remainder == 3) { + ${C?`let xValues = vec3( + getX(batch, xF, xR, xC, inputDepthNearestVec4), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 1), + getX(batch, xF, xR, xC, inputDepthNearestVec4 + 2)); + `:`let xValues = vec3( + getX(batch, inputDepthNearestVec4, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 1, xF, xR, xC), + getX(batch, inputDepthNearestVec4 + 2, xF, xR, xC)); + `} + let wValues = vec3( + getW(d2, inputDepthNearestVec4, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 1, wF, wR, wC), + getW(d2, inputDepthNearestVec4 + 2, wF, wR, wC)); + value += dot(xValues, wValues); + } + } + } + } + ${F?"value = value + getBiasByOutputCoords(coords)":""}; + ${T} + result[global_idx] = f32(value); + }`};return{name:"Conv3DNaive",shaderCache:{hint:`${n.cacheKey};${C};${D};${F}`,inputDependencies:S},getRunData:()=>({outputs:[{dims:i,dataType:a[0].dataType}],dispatchGroup:{x:v[0],y:v[1],z:v[2]},programUniforms:x}),getShaderSource:R}}}),z3,N3,X6=bA(()=>{ot(),mt(),bt(),Ni(),z3=(a,n,i,g)=>{let p=a.length>2,h=p?"value += b[output_channel];":"",C=a[0].dims,w=a[1].dims,E=n.format==="NHWC",v=E?i[3]:i[1],D=v/n.group,B=E&&D>=4?Nr(v):1,x=Ze.size(i)/B,S=[{type:12,data:x},{type:12,data:n.dilations},{type:12,data:[n.strides[0],n.strides[1]]},{type:12,data:[n.pads[0],n.pads[1]]},{type:12,data:D}];Si(n,S),S.push(...et(C,[w[0],w[1],w[2],w[3]/B]));let F=p?["rank","rank","rank"]:["rank","rank"];S.push(...et([i[0],i[1],i[2],i[3]/B]));let R=K=>{let L=YA("output",a[0].dataType,i.length,B),N=us(L.type.tensor),V=Fi(n,L.type.value,N),d=rA("x",a[0].dataType,C.length),k=rA("w",a[1].dataType,w.length,B),e=[d,k];p&&e.push(rA("b",a[2].dataType,a[2].dims,B));let u=[{name:"output_size",type:"u32"},{name:"dilations",type:"u32",length:n.dilations.length},{name:"strides",type:"u32",length:2},{name:"pads",type:"u32",length:2},{name:"output_channels_per_group",type:"u32"}];Oi(n,u);let y=E?` + for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[0]; wHeight++) { + let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0]; + + if (xHeight < 0u || xHeight >= uniforms.x_shape[1]) { + continue; + } + + for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[1]; wWidth++) { + let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1]; + if (xWidth < 0u || xWidth >= uniforms.x_shape[2]) { + continue; + } + + for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[2]; wInChannel++) { + let input_channel = in_channel_offset + wInChannel; + let xVal = ${d.get("batch","xHeight","xWidth","input_channel")}; + let wVal = ${k.get("wHeight","wWidth","wInChannel","output_channel")}; + value += xVal * wVal; + } + } + } + `:` + for (var wInChannel: u32 = 0u; wInChannel < uniforms.w_shape[1]; wInChannel++) { + let input_channel = in_channel_offset + wInChannel; + for (var wHeight: u32 = 0u; wHeight < uniforms.w_shape[2]; wHeight++) { + let xHeight = xRCCorner.x + wHeight * uniforms.dilations[0]; + + if (xHeight < 0u || xHeight >= uniforms.x_shape[2]) { + continue; + } + + for (var wWidth: u32 = 0u; wWidth < uniforms.w_shape[3]; wWidth++) { + let xWidth = xRCCorner.y + wWidth * uniforms.dilations[1]; + if (xWidth < 0u || xWidth >= uniforms.x_shape[3]) { + continue; + } + + let xVal = ${d.get("batch","input_channel","xHeight","xWidth")}; + let wVal = ${k.get("output_channel","wInChannel","wHeight","wWidth")}; + value += xVal * wVal; + } + } + } + `;return` + ${K.registerUniforms(u).declareVariables(...e,L)} + + ${K.mainStart()} + ${K.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let outputIndices = ${L.offsetToIndices("global_idx")}; + let batch: u32 = outputIndices[0]; + let output_channel: u32 = outputIndices[${E?3:1}]; + let xRCCorner: vec2 = vec2(outputIndices[${E?1:2}], outputIndices[${E?2:3}]) * uniforms.strides - uniforms.pads; + let group_id: u32 = output_channel * ${B} / uniforms.output_channels_per_group; + var in_channel_offset = group_id * uniforms.w_shape[${E?2:1}]; + + var value: ${L.type.value} = ${L.type.value}(0); + ${y} + ${h} + ${V} + ${L.setByOffset("global_idx","value")} + }`};return{name:"GroupedConv",shaderCache:{hint:`${n.cacheKey}_${B}`,inputDependencies:F},getRunData:()=>({outputs:[{dims:g?g(i):i,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(x/64)},programUniforms:S}),getShaderSource:R}},N3=(a,n,i,g)=>{let p=a.length>2,h=Nr(i[3]),C=Nr(i[2]),w=Ze.size(i)/h/C,E=[a[0].dims[0],a[0].dims[1],a[0].dims[2],a[0].dims[3]/h],v=[a[1].dims[0],a[1].dims[1],a[1].dims[2],a[1].dims[3]/h],D=[i[0],i[1],i[2],i[3]/h],B=[{type:12,data:w},{type:6,data:[n.strides[0],n.strides[1]]},{type:6,data:[n.pads[0],n.pads[1]]}];Si(n,B),B.push(...et(E,v,D));let x=(C-1)*n.strides[1]+v[1],S=F=>{let R=YA("output",a[0].dataType,D.length,h),K=us(R.type.tensor),L=Fi(n,R.type.value,K),N=rA("x",a[0].dataType,E.length,h),V=rA("w",a[1].dataType,v.length,h),d=[N,V];p&&d.push(rA("b",a[2].dataType,a[2].dims,h));let k=p?"value += b[output_channel];":"",e=[{name:"output_size",type:"u32"},{name:"strides",type:"i32",length:2},{name:"pads",type:"i32",length:2}];return Oi(n,e),` + ${F.registerUniforms(e).declareVariables(...d,R)} + ${F.mainStart()} + ${F.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let width0 = uniforms.output_shape[3]; + let output_channel = global_idx % width0; + var index1 = global_idx / width0; + let width1 = uniforms.output_shape[2] / ${C}u; + let col = (index1 % width1) * ${C}u; + index1 = index1 / width1; + let row = index1 % uniforms.output_shape[1]; + let batch = index1 / uniforms.output_shape[1]; + + let x_corner = vec2(i32(row), i32(col)) * uniforms.strides - uniforms.pads; + + var x_vals: array<${N.type.value}, ${x}>; + var values: array<${R.type.value}, ${C}>; + let input_channel = output_channel; + // Use constant instead of uniform can give better performance for w's height/width. + for (var w_height: u32 = 0u; w_height < ${v[0]}; w_height++) { + let x_height = x_corner.x + i32(w_height); + if (x_height >= 0 && u32(x_height) < uniforms.x_shape[1]) { + for (var i = 0; i < ${x}; i++) { + let x_width = x_corner.y + i; + if (x_width >= 0 && u32(x_width) < uniforms.x_shape[2]) { + x_vals[i] = ${N.get("batch","u32(x_height)","u32(x_width)","input_channel")}; + } else { + x_vals[i] = ${N.type.value}(0); + } + } + for (var w_width: u32 = 0u; w_width < ${v[1]}; w_width++) { + let w_val = ${V.get("w_height","w_width","0","output_channel")}; + for (var i = 0u; i < ${C}u; i++) { + values[i] = fma(x_vals[i * u32(uniforms.strides[1]) + w_width], w_val, values[i]); + } + } + } + } + + for (var i = 0u; i < ${C}u; i++) { + var value = values[i]; + ${k} + ${L} + ${R.set("batch","row","col + i","output_channel","value")}; + } + }`};return{name:"GroupedConv-Vectorize",shaderCache:{hint:`${n.cacheKey};${h};${C};${x};${v[0]};${v[1]}`,inputDependencies:p?["rank","rank","type"]:["rank","rank"]},getRunData:()=>({outputs:[{dims:g?g(i):i,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(w/64)},programUniforms:B}),getShaderSource:S}}}),c4,S0,u4,O0,cc,h2,d4,f4,uc,Z6=bA(()=>{mt(),U6(),K6(),_c(),X6(),Ni(),Lc(),ri(),c4=(a,n,i,g,p,h)=>{let C=a[0],w=a.slice(h?1:2,h?3:4),E=w.length,v=n[0],D=n.slice(2).map((x,S)=>x+(x-1)*(i[S]-1)),B=w.map((x,S)=>x+g[S]+g[S+E]).map((x,S)=>Math.floor((x-D[S]+p[S])/p[S]));return B.splice(0,0,C),B.splice(h?3:1,0,v),B},S0=[2,3,1,0],u4=(a,n)=>{if(!a||a.length!==2&&a.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(a[0].dims.length>5)throw new Error("greater than 5D is not supported");if(a[0].dims.length!==a[1].dims.length)throw new Error("filter does not have same dimension as input");let i=a[0].dims[n.format==="NHWC"?a[0].dims.length-1:1],g=a[1].dims[1]*n.group;if(i!==g)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");if(a.length===3&&(a[2].dims.length!==1||a[1].dims[0]!==a[2].dims[0]))throw new Error("invalid bias");let p=a[0].dims.length-2;if(n.dilations.length!==p)throw new Error(`dilations should be ${p}D`);if(n.strides.length!==p)throw new Error(`strides should be ${p}D`);if(n.pads.length!==p*2)throw new Error(`pads should be ${p*2}D`);if(n.kernelShape.length!==0&&n.kernelShape.length!==a[1].dims.length-2)throw new Error("invalid kernel shape")},O0=(a,n)=>{let i=a.kernelShape.slice();i.length{let n=Oc(a),i=a.format,g=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][a.auto_pad],p=a.dilations,h=a.group,C=a.kernel_shape,w=a.pads,E=a.strides,v=a.w_is_const();return{autoPad:g,format:i,dilations:p,group:h,kernelShape:C,pads:w,strides:E,wIsConst:v,...n,cacheKey:`${a.format};${n.activation};`}},h2=(a,n,i,g)=>{let p=i.format==="NHWC",h=c4(n[0].dims,n[1].dims,i.dilations,i.pads,i.strides,p);if(i.group!==1){let e=[n[0]];if(p){let u=a.kernelCustomData.wT??a.compute(la(n[1],S0),{inputs:[1],outputs:[i.wIsConst?-2:-1]})[0];i.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=u),e.push(u)}else e.push(n[1]);n.length===3&&e.push(n[2]),!a.adapterInfo.isArchitecture("ampere")&&p&&n[1].dims[0]===i.group&&n[1].dims[1]===1&&i.dilations[0]===1&&i.dilations[1]===1?a.compute(N3(e,i,h,g),{inputs:e}):a.compute(z3(e,i,h,g),{inputs:e});return}let C=n.length===3,w=n[0].dims[p?1:2],E=n[0].dims[p?2:3],v=n[0].dims[p?3:1],D=n[1].dims[2],B=n[1].dims[3],x=h[p?1:2],S=h[p?2:3],F=h[p?3:1],R=p&&D===w&&B===E&&i.pads[0]===0&&i.pads[1]===0;if(R||D===1&&B===1&&i.dilations[0]===1&&i.dilations[1]===1&&i.strides[0]===1&&i.strides[1]===1&&i.pads[0]===0&&i.pads[1]===0){let e=h[0],u,y,$,T=[];if(p){let Ae=a.kernelCustomData.wT??a.compute(la(n[1],S0),{inputs:[1],outputs:[i.wIsConst?-2:-1]})[0];if(i.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=Ae),R){let be=w*E*v;u=n[0].reshape([1,e,be]),y=Ae.reshape([1,be,F]),$=[1,e,F]}else u=n[0].reshape([e,w*E,v]),y=Ae.reshape([1,v,F]),$=[e,x*S,F];T.push(u),T.push(y)}else u=n[0].reshape([e,v,w*E]),y=n[1].reshape([1,F,v]),$=[e,F,x*S],T.push(y),T.push(u);C&&T.push(n[2]);let O=$[2],Ce=T[0].dims[T[0].dims.length-1];O<8&&Ce<8?a.compute(Nc(T,i,h,$,p,g),{inputs:T}):a.compute(q0(T,i,h,$,p,g),{inputs:T});return}let K=!0,L=a.kernelCustomData.wT??a.compute(la(n[1],S0),{inputs:[1],outputs:[i.wIsConst?-2:-1]})[0];i.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=L);let N=[n[0],L];C&&N.push(n[2]);let V=p?x*S:F,d=p?F:x*S,k=D*B*v;a.compute(F3(N,i,h,V,d,k,C,K,g),{inputs:N})},d4=(a,n)=>{let i=n.format==="NHWC",g=[a.inputs[0].reshape(i?[a.inputs[0].dims[0],1,a.inputs[0].dims[1],a.inputs[0].dims[2]]:[a.inputs[0].dims[0],a.inputs[0].dims[1],1,a.inputs[0].dims[2]]),a.inputs[1].reshape([a.inputs[1].dims[0],a.inputs[1].dims[1],1,a.inputs[1].dims[2]])];a.inputs.length===3&&g.push(a.inputs[2]);let p=[0,n.pads[0],0,n.pads[1]],h=[1].concat(n.strides),C=[1].concat(n.dilations),w=[1].concat(n.kernelShape),E=O0({...n,pads:p,strides:h,dilations:C,kernelShape:w},g);h2(a,g,E,v=>i?[v[0],v[2],v[3]]:[v[0],v[1],v[3]])},f4=(a,n,i)=>{let g=i.format==="NHWC"?"channelsLast":"channelsFirst",p=O0(i,n),h=i.autoPad==="NOTSET"?i.pads:i.autoPad,C=S3(n[0].dims,n[1].dims,i.strides,i.dilations,h,!1,g);a.compute(O3(n,p,C.outShape,[C.filterDepth,C.filterHeight,C.filterWidth],[C.padInfo.front,C.padInfo.top,C.padInfo.left],g))},uc=(a,n)=>{if(u4(a.inputs,n),a.inputs[0].dims.length===3)d4(a,n);else if(a.inputs[0].dims.length===5)f4(a,a.inputs,n);else{let i=O0(n,a.inputs);h2(a,a.inputs,i)}}}),L3,J6=bA(()=>{ot(),xn(),mt(),bt(),L3=(a,n,i)=>{let g=a.length>2,p=n.outputShape,h=n.format==="NHWC",C=n.group,w=a[1].dims,E=w[2]/C,v=w[3],D=h?Nr(E):1,B=h&&v===1&&E>=4,x=B?Math.floor(E/4)*4:Math.floor(E/D)*D,S=E-x,F=h?Nr(v):1,R=h?v===1?D:F:1,K=Ze.size(p)/F,L=[Math.ceil(K/64),1,1];Ft("verbose",()=>`[conv2d_backprop_webgpu] dispatch = ${L}`);let N=["rank","rank"],V=[n.strides[0],n.strides[1]],d=[n.kernelShape[h?1:2],n.kernelShape[h?2:3]],k=[n.dilations[0],n.dilations[1]],e=[d[0]+(n.dilations[0]<=1?0:(n.kernelShape[h?1:2]-1)*(n.dilations[0]-1)),d[1]+(n.dilations[1]<=1?0:(n.kernelShape[h?2:3]-1)*(n.dilations[1]-1))],u=[e[0]-1-Math.floor((n.pads[0]+n.pads[2])/2),e[1]-1-Math.floor((n.pads[1]+n.pads[3])/2)],y=[{type:12,data:K},{type:12,data:V},{type:12,data:d},{type:12,data:k},{type:12,data:e},{type:6,data:u},{type:12,data:x},{type:12,data:E},{type:12,data:v},...et(a[0].dims,a[1].dims)];g&&(y.push(...et(a[2].dims)),N.push("rank")),y.push(...et(p));let $=T=>{let O=[{name:"output_size",type:"u32"},{name:"strides",type:"u32",length:V.length},{name:"filter_dims",type:"u32",length:d.length},{name:"dilations",type:"u32",length:d.length},{name:"effective_filter_dims",type:"u32",length:e.length},{name:"pads",type:"i32",length:u.length},{name:"input_channels_per_group_int",type:"u32"},{name:"input_channels_per_group",type:"u32"},{name:"output_channels_per_group",type:"u32"}],Ce=us(a[0].dataType),Ae=h?1:2,be=h?2:3,he=h?3:1,Ee=rA("W",a[1].dataType,a[1].dims.length,R),ke=rA("Dy",a[0].dataType,a[0].dims.length,D),De=[ke,Ee];g&&De.push(rA("bias",a[2].dataType,[p[he]].length,F));let Re=YA("result",a[0].dataType,p.length,F),Qe=()=>{let de="";if(B)D===4?de+=` + let xValue = ${ke.getByOffset("x_offset")}; + let wValue = ${Ee.getByOffset("w_offset")}; + dotProd = dotProd + dot(xValue, wValue); + x_offset += 1u; + w_offset += 1u;`:D===2?de+=` + dotProd = dotProd + dot(vec4<${Ce}>(${ke.getByOffset("x_offset")}, ${ke.getByOffset("x_offset + 1u")}), vec4<${Ce}>(${Ee.getByOffset("w_offset")}, ${Ee.getByOffset("w_offset + 1u")})); + x_offset += 2u; + w_offset += 2u;`:D===1&&(de+=` + dotProd = dotProd + dot(vec4<${Ce}>(${ke.getByOffset("x_offset")}, ${ke.getByOffset("x_offset + 1u")}, ${ke.getByOffset("x_offset + 2u")}, ${ke.getByOffset("x_offset + 3u")}), vec4<${Ce}>(${Ee.getByOffset("w_offset")}, ${Ee.getByOffset("w_offset + 1u")}, ${Ee.getByOffset("w_offset + 2u")}, ${Ee.getByOffset("w_offset + 3u")})); + x_offset += 4u; + w_offset += 4u;`);else if(de+=` + let xValue = ${h?ke.getByOffset(`${ke.indicesToOffset(`${ke.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${D}`):ke.get("batch","inputChannel","idyR","idyC")}; + `,D===1)de+=` + let w_offset = ${Ee.indicesToOffset(`${Ee.type.indices}(u32(wRPerm), u32(wCPerm), inputChannel, wOutChannel)`)}; + let wValue = ${Ee.getByOffset(`w_offset / ${R}`)}; + dotProd = dotProd + xValue * wValue;`;else for(let xe=0;xe{if(S===0)return"";if(!B)throw new Error(`packInputAs4 ${B} is not true.`);let de="";if(D===1){de+="dotProd = dotProd";for(let xe=0;xe(i32(r), i32(c)) - uniforms.pads; + let dyRCorner = dyCorner.x; + let dyCCorner = dyCorner.y; + let groupId = d1 / uniforms.output_channels_per_group; + let wOutChannel = d1 - groupId * uniforms.output_channels_per_group; + // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). + // ? = to be determined. : = across all values in that axis. + var dotProd = ${Re.type.value}(0.0); + var wR: u32 = 0; + if (uniforms.dilations.x == 1) { + // Minimum wR >= 0 that satisfies (dyRCorner + wR) % (uniforms.strides.x) == 0 + wR = u32(((dyRCorner + i32(uniforms.strides.x) - 1) / i32(uniforms.strides.x)) * i32(uniforms.strides.x) - dyRCorner); + } + for (; wR < uniforms.effective_filter_dims.x; wR = wR + 1) { + if (wR % uniforms.dilations.x != 0) { + continue; + } + let dyR = (${Ce}(dyRCorner) + ${Ce}(wR)) / ${Ce}(uniforms.strides[0]); + let wRPerm = uniforms.filter_dims.x - 1 - wR / uniforms.dilations.x; + if (dyR < 0.0 || dyR >= ${Ce}(uniforms.Dy_shape[${Ae}]) || fract(dyR) > 0.0 || + wRPerm < 0) { + continue; + } + let idyR: u32 = u32(dyR); + var wC: u32 = 0; + if (uniforms.dilations.y == 1) { + // Minimum wC >= 0 that satisfies (dyCCorner + wC) % (uniforms.strides.y) == 0 + wC = u32(((dyCCorner + i32(uniforms.strides.y) - 1) / i32(uniforms.strides.y)) * i32(uniforms.strides.y) - dyCCorner); + } + for (; wC < uniforms.effective_filter_dims.y; wC = wC + 1) { + if (wC % uniforms.dilations.y != 0) { + continue; + } + let dyC = (${Ce}(dyCCorner) + ${Ce}(wC)) / ${Ce}(uniforms.strides.y); + let wCPerm = uniforms.filter_dims.y - 1 - wC / uniforms.dilations.y; + if (dyC < 0.0 || dyC >= ${Ce}(uniforms.Dy_shape[${be}]) || + fract(dyC) > 0.0 || wCPerm < 0) { + continue; + } + let idyC: u32 = u32(dyC); + var inputChannel = groupId * uniforms.input_channels_per_group; + ${B?` + var x_offset = ${ke.indicesToOffset(`${ke.type.indices}(batch, idyR, idyC, inputChannel)`)} / ${D}; + var w_offset = ${Ee.indicesToOffset(`${Ee.type.indices}(wRPerm, wCPerm, inputChannel, wOutChannel)`)} / ${R}; + `:""} + for (var d2: u32 = 0; d2 < uniforms.input_channels_per_group_int; d2 = d2 + ${B?4:D}) { + ${Qe()} + inputChannel = inputChannel + ${B?4:D}; + } + ${ue()} + wC = wC + uniforms.strides.y - 1; + } + wR = wR + uniforms.strides[0] - 1; + } + let value = dotProd${g?` + bias[d1 / ${F}]`:""}; + ${Re.setByOffset("global_idx","value")}; + `;return` + ${T.registerUniforms(O).declareVariables(...De,Re)} + ${T.mainStart()} + ${T.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")}; + ${ee}}`};return{name:"ConvTranspose2D",shaderCache:{hint:`${n.cacheKey};${D}${R}${F}${B}${S}`,inputDependencies:N},getRunData:()=>({dispatchGroup:{x:L[0],y:L[1],z:L[2]},outputs:[{dims:i?i(p):p,dataType:a[0].dataType}],programUniforms:y}),getShaderSource:$}}}),g4,p4,m4,C2,_3,h4,b2,C4,R3,q6=bA(()=>{J6(),Ni(),ri(),g4=(a,n,i,g,p,h)=>(a-1)*n+i+(g-1)*p+1-h,p4=(a,n,i,g,p)=>{let h=Math.floor(a/2);n==="SAME_UPPER"?(i[g]=h,i[p]=a-h):n==="SAME_LOWER"&&(i[g]=a-h,i[p]=h)},m4=(a,n,i,g,p,h,C,w,E,v)=>{let D=a.length-2,B=v.length===0;E.length{let i=a.kernelShape.slice();if(a.kernelShape.length===0||a.kernelShape.reduce((B,x)=>B*x,1)===0){i.length=0;for(let B=2;BB+x,0)===0){let B=n[0].dims.length-2;E=new Array(B).fill(1)}let v=a.strides.slice();if(v.reduce((B,x)=>B+x,0)===0){let B=n[0].dims.length-2;v=new Array(B).fill(1)}m4(w,i,E,a.autoPad,a.group,p,v,g,C,h);let D=Object.assign({},a);return Object.assign(D,{kernelShape:i,pads:p,outputPadding:C,outputShape:h,dilations:E,strides:v}),D},_3=a=>{let n=Oc(a),i=a.format,g=["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][typeof a.autoPad>"u"?0:a.autoPad],p=a.dilations,h=a.group,C=a.kernelShape,w=a.pads,E=a.strides,v=a.wIsConst(),D=a.outputPadding,B=a.outputShape;return{autoPad:g,format:i,dilations:p,group:h,kernelShape:C,outputPadding:D,outputShape:B,pads:w,strides:E,wIsConst:v,...n,cacheKey:`${a.format};${n.activation};`}},h4=(a,n)=>{if(!a||a.length!==2&&a.length!==3)throw new Error("Conv requires 2 or 3 inputs");if(a[0].dims.length!==4&&a[0].dims.length!==3)throw new Error("currently only support 2-dimensional conv");if(a[0].dims.length!==a[1].dims.length)throw new Error("filter does not have same dimension as input");let i=a[0].dims[n.format==="NHWC"?a[0].dims.length-1:1],g=a[1].dims[0];if(i!==g)throw new Error("FILTER_IN_CHANNEL should be equal to DATA_CHANNEL");let p=a[1].dims[1]*n.group;if(a.length===3&&(a[2].dims.length!==1||a[2].dims[0]!==p))throw new Error("invalid bias");let h=a[0].dims.length-2;if(n.dilations.reduce((C,w)=>C+w,0)>0&&n.dilations.length!==h)throw new Error(`dilations should be ${h}D`);if(n.strides.reduce((C,w)=>C+w,0)>0&&n.strides.length!==h)throw new Error(`strides should be ${h}D`);if(n.pads.reduce((C,w)=>C+w,0)>0&&n.pads.length!==h*2)throw new Error(`pads should be ${h*2}D`);if(n.outputPadding.length!==h&&n.outputPadding.length!==0)throw new Error(`output_padding should be ${h}D`);if(n.kernelShape.reduce((C,w)=>C+w,0)>0&&n.kernelShape.length!==0&&n.kernelShape.length!==a[1].dims.length-2)throw new Error("invalid kernel shape");if(n.outputShape.length!==0&&n.outputShape.length!==a[0].dims.length-2)throw new Error("invalid output shape")},b2=(a,n,i,g)=>{let p=a.kernelCustomData.wT??a.compute(la(n[1],[2,3,0,1]),{inputs:[1],outputs:[i.wIsConst?-2:-1]})[0];i.wIsConst&&!a.kernelCustomData.wT&&(a.kernelCustomData.wT=p);let h=[n[0],p];n.length===3&&h.push(n[2]),a.compute(L3(h,i,g),{inputs:h})},C4=(a,n)=>{let i=n.format==="NHWC",g=[a.inputs[0].reshape(i?[a.inputs[0].dims[0],1,a.inputs[0].dims[1],a.inputs[0].dims[2]]:[a.inputs[0].dims[0],a.inputs[0].dims[1],1,a.inputs[0].dims[2]]),a.inputs[1].reshape([a.inputs[1].dims[0],a.inputs[1].dims[1],1,a.inputs[1].dims[2]])];a.inputs.length===3&&g.push(a.inputs[2]);let p=n.kernelShape;(p.length===0||p[0]===0)&&(p=[a.inputs[1].dims[2]]);let h=n.dilations;(h.length===0||h[0]===0)&&(h=[1]);let C=n.strides;(C.length===0||C[0]===0)&&(C=[1]);let w=n.pads;w.length===0&&(w=[0,0]),w=[0,w[0],0,w[1]],C=[1].concat(C),h=[1].concat(h),p=[1].concat(p);let E=n.outputPadding;E=[0].concat(E);let v=C2({...n,pads:w,strides:C,dilations:h,kernelShape:p,outputPadding:E},g);b2(a,g,v,D=>i?[D[0],D[2],D[3]]:[D[0],D[1],D[3]])},R3=(a,n)=>{if(h4(a.inputs,n),a.inputs[0].dims.length===3)C4(a,n);else{let i=C2(n,a.inputs);b2(a,a.inputs,i)}}}),b4,j3,W3,$6=bA(()=>{ot(),mt(),Wr(),bt(),b4=(a,n,i,g)=>{let p=Ze.size(n),h=n.length,C=rA("input",a,h),w=YA("output",a,h),E=i.dataType===6?i.getInt32Array()[0]:Number(i.getBigInt64Array()[0]),v=Ze.normalizeAxis(E,h),D=B=>{let x=` i32(${C.indicesGet("inputIndices","uniforms.axis")}) `,S=JA("uniforms.input_shape","uniforms.axis",h),F=g.reverse?x+(g.exclusive?" + 1":""):"0",R=g.reverse?S:x+(g.exclusive?"":" + 1");return` + ${B.registerUniform("outputSize","u32").registerUniform("axis","u32").declareVariables(C,w)} + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var inputIndices = ${w.offsetToIndices("global_idx")}; + var sum = ${w.type.value}(0); + let first : i32 = ${F}; + let last : i32 = ${R}; + for (var i : i32 = first; i < last; i++) { + ${C.indicesSet("inputIndices","uniforms.axis","u32(i)")}; + sum = sum + ${C.getByIndices("inputIndices")}; + } + ${w.setByOffset("global_idx","sum")}; + }`};return{name:"CumSum",shaderCache:{hint:g.cacheKey,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:n,dataType:a}],dispatchGroup:{x:Math.ceil(p/64)},programUniforms:[{type:12,data:p},{type:12,data:v},...et(n,n)]}),getShaderSource:D}},j3=(a,n)=>{let i=a.inputs[0].dims,g=a.inputs[0].dataType,p=a.inputs[1];a.compute(b4(g,i,p,n),{inputs:[0]})},W3=a=>{let n=a.exclusive===1,i=a.reverse===1;return Xt({exclusive:n,reverse:i})}}),I4,w4,k4,Y3,H3,eI=bA(()=>{ot(),mt(),Wr(),bt(),I4=a=>{if(!a||a.length!==1)throw new Error("DepthToSpace requires 1 input.");if(a[0].dims.length!==4)throw new Error("DepthToSpace requires 4D input.")},w4=(a,n,i,g)=>{let p=[];p.push(`fn perm(i: ${g.type.indices}) -> ${i.type.indices} { + var a: ${i.type.indices};`);for(let h=0;h{let i,g,p,h,C,w,E=n.format==="NHWC",v=n.blocksize,D=n.mode==="DCR";E?([i,g,p,h]=a.dims,C=D?[i,g,p,v,v,h/v**2]:[i,g,p,h/v**2,v,v],w=D?[0,1,3,2,4,5]:[0,1,4,2,5,3]):([i,g,p,h]=[a.dims[0],a.dims[2],a.dims[3],a.dims[1]],C=D?[i,v,v,h/v**2,g,p]:[i,h/v**2,v,v,g,p],w=D?[0,3,4,1,5,2]:[0,1,4,2,5,3]);let B=a.reshape(C),x=B.dims.length,S=a.dataType,F=rA("a",S,x),R=YA("output",S,x),K=L=>` + ${L.registerUniform("output_size","u32").declareVariables(F,R)} + + ${w4(w,x,F,R)} + + ${L.mainStart()} + ${L.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${R.offsetToIndices("global_idx")}; + let aIndices = perm(indices); + + ${R.setByOffset("global_idx",F.getByIndices("aIndices"))} + }`;return{name:"DepthToSpace",shaderCache:{hint:`${a.dims};${n.blocksize};${n.mode}`,inputDependencies:["rank"]},getRunData:L=>{let N=E?[i,g*v,p*v,h/v**2]:[i,h/v**2,g*v,p*v],V=Ze.size(N),d=B.dims,k=Ze.sortBasedOnPerm(d,w);return{outputs:[{dims:N,dataType:L[0].dataType}],dispatchGroup:{x:Math.ceil(V/64)},programUniforms:[{type:12,data:V},...et(d,k)]}},getShaderSource:K}},Y3=(a,n)=>{I4(a.inputs),a.compute(k4(a.inputs[0],n))},H3=a=>Xt({blocksize:a.blocksize,mode:a.mode,format:a.format})}),z0,No,I2,E4,M4,B4,v4,w2,x4,V3,U3,AI=bA(()=>{ot(),mt(),Wr(),bt(),z0="[a-zA-Z]|\\.\\.\\.",No="("+z0+")+",I2="^"+No+"$",E4="("+No+",)*"+No,M4="^"+E4+"$",B4=class{constructor(a=-1){this.symbolToIndices=new Map,this.inputIndex=a}addSymbol(a,n){let i=this.symbolToIndices.get(a);i===void 0?i=[n]:i.push(n),this.symbolToIndices.set(a,i)}},v4=class{constructor(a,n){var p;this.equation=n,this.hasEllipsis=!1,this.symbolToInfo=new Map,this.lhs=new Array,this.outputDims=[];let[i,g]=n.includes("->")?n.split("->",2):[n,""];if(!i.match(RegExp(M4)))throw new Error("Invalid LHS term");if(i.split(",").forEach((h,C)=>{let w=a[C].dims.slice();if(!h.match(RegExp(I2)))throw new Error("Invalid LHS term");let E=this.processTerm(h,!0,w,C);this.lhs.push(E)}),g==="")g+=[...this.symbolToInfo.entries()].filter(([h,C])=>C.count===1||h==="...").map(([h])=>h).join("");else if(!g.match(RegExp(No)))throw new Error("Invalid RHS");(p=g.match(RegExp(z0,"g")))==null||p.forEach(h=>{if(h==="...")this.outputDims=this.outputDims.concat(this.ellipsisDims);else{let C=this.symbolToInfo.get(h);if(C===void 0)throw new Error("Invalid RHS symbol");this.outputDims.push(C.dimValue)}}),this.rhs=this.processTerm(g,!1,this.outputDims)}addSymbol(a,n,i){let g=this.symbolToInfo.get(a);if(g!==void 0){if(g.dimValue!==n&&g.count!==1)throw new Error("Dimension mismatch");g.count++,g.inputIndices.push(i)}else g={count:1,dimValue:n,inputIndices:[i]};this.symbolToInfo.set(a,g)}processTerm(a,n,i,g=-1){let p=i.length,h=!1,C=[],w=0;if(!a.match(RegExp(I2))&&!n&&a!=="")throw new Error("Invalid LHS term");let E=a.match(RegExp(z0,"g")),v=new B4(g);return E==null||E.forEach((D,B)=>{if(D==="..."){if(h)throw new Error("Only one ellipsis is allowed per input term");h=!0;let x=p-E.length+1;if(x<0)throw new Error("Ellipsis out of bounds");if(C=i.slice(w,w+x),this.hasEllipsis){if(this.ellipsisDims.length!==C.length||this.ellipsisDims.toString()!==C.toString())throw new Error("Ellipsis dimensions mismatch")}else if(n)this.hasEllipsis=!0,this.ellipsisDims=C;else throw new Error("Ellipsis must be specified in the LHS");for(let S=0;Sa+"_max",x4=(a,n,i,g)=>{let p=a.map(v=>v.length).map((v,D)=>rA(`input${D}`,n,v)),h=Ze.size(g),C=YA("output",n,g.length),w=[...i.symbolToInfo.keys()].filter(v=>!i.rhs.symbolToIndices.has(v)),E=v=>{let D=[],B="var prod = 1.0;",x="var sum = 0.0;",S="sum += prod;",F=[],R=[],K=[],L=[],N=i.symbolToInfo.size===i.rhs.symbolToIndices.size;i.symbolToInfo.forEach((d,k)=>{var e;if(i.rhs.symbolToIndices.has(k)){let u=(e=i.rhs.symbolToIndices.get(k))==null?void 0:e[0];u!==void 0&&i.lhs.forEach((y,$)=>{if(d.inputIndices.includes($)){let T=y.symbolToIndices.get(k);if(T===void 0)throw new Error("Invalid symbol error");T.forEach(O=>{D.push(`${p[$].indicesSet(`input${$}Indices`,O,C.indicesGet("outputIndices",u))}`)})}})}else i.lhs.forEach((u,y)=>{if(d.inputIndices.includes(y)){let $=u.symbolToIndices.get(k);if($===void 0)throw new Error("Invalid symbol error");$.forEach(T=>{F.push(`${p[y].indicesSet(`input${y}Indices`,T,`${k}`)}`)}),L.push(`prod *= ${p[y].getByIndices(`input${y}Indices`)};`)}}),R.push(`for(var ${k}: u32 = 0; ${k} < uniforms.${w2(k)}; ${k}++) {`),K.push("}")});let V=N?[...D,`let sum = ${p.map((d,k)=>d.getByIndices(`input${k}Indices`)).join(" * ")};`]:[...D,x,...R,...F,B,...L,S,...K];return` + ${v.registerUniforms(w.map(d=>({name:`${w2(d)}`,type:"u32"}))).registerUniform("outputSize","u32").declareVariables(...p,C)} + + ${v.mainStart()} + ${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + var outputIndices = ${C.offsetToIndices("global_idx")}; + ${p.map((d,k)=>`var input${k}Indices: ${p[k].type.indices};`).join(` +`)} + ${V.join(` +`)}; + ${C.setByOffset("global_idx","sum")}; + }`};return{name:"Einsum",shaderCache:{hint:i.equation,inputDependencies:a.map(()=>"rank")},getRunData:()=>{let v=w.filter(B=>i.symbolToInfo.has(B)).map(B=>{var x;return{type:12,data:((x=i.symbolToInfo.get(B))==null?void 0:x.dimValue)||0}});v.push({type:12,data:h});let D=a.map((B,x)=>[...et(B)]).reduce((B,x)=>B.concat(x),v);return D.push(...et(g)),{outputs:[{dims:g,dataType:n}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:D}},getShaderSource:E}},V3=(a,n)=>{let i=new v4(a.inputs,n.equation),g=i.outputDims,p=a.inputs.map((h,C)=>h.dims);a.compute(x4(p,a.inputs[0].dataType,i,g))},U3=a=>{let n=a.equation.replace(/\s+/g,"");return Xt({equation:n})}}),y4,k2,D4,T4,K3,tI=bA(()=>{ot(),mt(),bt(),y4=a=>{if(!a||a.length!==2)throw new Error("Expand requires 2 input.");let n=a[0].dims,i=Array.from(a[1].getBigInt64Array(),Number),g=i.length{let i=a.length-n.length,g=[];for(let p=0;pa.length>n.length?k2(a,n):k2(n,a),T4=a=>{let n=a[0].dims,i=Array.from(a[1].getBigInt64Array(),Number),g=D4(n,i),p=a[0].dataType,h=p===9||Ze.size(n)===1,C=p===9||n.length>0&&n[n.length-1]%4===0?4:1,w=h||g.length>0&&g[g.length-1]%4===0?4:1,E=Math.ceil(Ze.size(g)/w),v=B=>{let x=rA("input",p,n.length,C),S=YA("output",p,g.length,w),F;if(p===9){let R=(K,L,N="")=>` + let outputIndices${L} = ${S.offsetToIndices(`outputOffset + ${L}u`)}; + let offset${L} = ${x.broadcastedIndicesToOffset(`outputIndices${L}`,S)}; + let index${L} = offset${L} / 4u; + let component${L} = offset${L} % 4u; + ${K}[${L}] = ${N}(${x.getByOffset(`index${L}`)}[component${L}]); + `;F=` + let outputOffset = global_idx * ${w}; + var data = vec4(0); + ${R("data",0,"u32")} + ${R("data",1,"u32")} + ${R("data",2,"u32")} + ${R("data",3,"u32")} + ${S.setByOffset("global_idx","data")} + }`}else F=` + let outputIndices = ${S.offsetToIndices(`global_idx * ${w}`)}; + let inputOffset = ${x.broadcastedIndicesToOffset("outputIndices",S)}; + let data = ${S.type.value}(${x.getByOffset(`inputOffset / ${C}`)}); + ${S.setByOffset("global_idx","data")} + }`;return` + ${B.registerUniform("vec_size","u32").declareVariables(x,S)} + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${F}`},D=[{type:12,data:E},...et(n,g)];return{name:"Expand",shaderCache:{hint:`${g.length};${C}${w}`,inputDependencies:["rank"]},getShaderSource:v,getRunData:()=>({outputs:[{dims:g,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:D})}},K3=a=>{y4(a.inputs),a.compute(T4(a.inputs),{inputs:[0]})}}),G4,X3,rI=bA(()=>{ot(),mt(),bt(),Sc(),G4=a=>{let n=a[0].dataType,i=Ze.size(a[0].dims),g=Ze.size(a[1].dims),p=g%4===0,h=C=>{let w=rA("x",n,[1],4),E=rA("bias",n,[1],4),v=YA("y",n,[1],4),D=[{name:"output_vec_size",type:"u32"},{name:"bias_size",type:"u32"}],B=S=>` + let bias${S}_offset: u32 = (global_idx * 4 + ${S}) % uniforms.bias_size; + let bias${S} = ${E.getByOffset(`bias${S}_offset / 4`)}[bias${S}_offset % 4];`,x=p?` + let bias = ${E.getByOffset("global_idx % (uniforms.bias_size / 4)")};`:`${B(0)}${B(1)}${B(2)}${B(3)} + let bias = ${w.type.value}(bias0, bias1, bias2, bias3);`;return`${C.registerUniforms(D).declareVariables(w,E,v)} + + ${nc(ys(n))} + + ${C.mainStart(fo)} + ${C.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_vec_size")} + + let x = ${w.getByOffset("global_idx")}; + ${x} + let x_in = x + bias; + ${v.setByOffset("global_idx",ic("x_in"))} + }`};return{name:"FastGeluWithBias",shaderCache:{hint:`${p}`,inputDependencies:["type","type"]},getShaderSource:h,getRunData:C=>({outputs:[{dims:C[0].dims,dataType:C[0].dataType}],programUniforms:[{type:12,data:Math.ceil(i/4)},{type:12,data:g}],dispatchGroup:{x:Math.ceil(i/fo/4)}})}},X3=a=>{a.inputs.length<2||Ze.size(a.inputs[1].dims)===0?p3(a):a.compute(G4(a.inputs))}}),P4,Q4,Z3,J3,sI=bA(()=>{ot(),mt(),Wr(),bt(),P4=a=>{if(!a||a.length!==2)throw new Error("Gather requires 2 inputs.")},Q4=(a,n)=>{let i=a[0].dims,g=a[1].dims,p=i.length,h=Ze.normalizeAxis(n.axis,p),C=i.slice(0);C.splice(h,1,...g);let w=i[h],E=a[0].dataType===9?4:1,v=Math.ceil(Ze.size(C)/E),D=[{type:12,data:v},{type:6,data:w},{type:12,data:h},...et(a[0].dims,a[1].dims,C)],B=x=>{let S=rA("data",a[0].dataType,a[0].dims.length,E),F=rA("inputIndices",a[1].dataType,a[1].dims.length),R=YA("output",a[0].dataType,C.length,E),K=N=>{let V=g.length,d=`var indicesIndices${N} = ${F.type.indices}(0);`;for(let k=0;k1?`indicesIndices${N}[${k}]`:`indicesIndices${N}`} = ${C.length>1?`outputIndices${N}[uniforms.axis + ${k}]`:`outputIndices${N}`};`;d+=` + var idx${N} = ${F.getByIndices(`indicesIndices${N}`)}; + if (idx${N} < 0) { + idx${N} = idx${N} + uniforms.axisDimLimit; + } + var dataIndices${N} : ${S.type.indices}; + `;for(let k=0,e=0;k1?`dataIndices${N}[${k}]`:`dataIndices${N}`} = u32(idx${N});`,e+=V):(d+=`${p>1?`dataIndices${N}[${k}]`:`dataIndices${N}`} = ${C.length>1?`outputIndices${N}[${e}]`:`outputIndices${N}`};`,e++);return d},L;if(a[0].dataType===9){let N=(V,d,k="")=>` + let outputIndices${d} = ${R.offsetToIndices(`outputOffset + ${d}u`)}; + ${K(d)}; + let offset${d} = ${S.indicesToOffset(`dataIndices${d}`)}; + let index${d} = offset${d} / 4u; + let component${d} = offset${d} % 4u; + ${V}[${d}] = ${k}(${S.getByOffset(`index${d}`)}[component${d}]); + `;L=` + let outputOffset = global_idx * ${E}; + var value = vec4(0); + ${N("value",0,"u32")} + ${N("value",1,"u32")} + ${N("value",2,"u32")} + ${N("value",3,"u32")} + ${R.setByOffset("global_idx","value")} + `}else L=` + let outputIndices = ${R.offsetToIndices("global_idx")}; + ${K("")}; + let value = ${S.getByIndices("dataIndices")}; + ${R.setByOffset("global_idx","value")}; + `;return` + ${x.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(S,F,R)} + ${x.mainStart()} + ${x.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + ${L} + }`};return{name:"Gather",shaderCache:{hint:n.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:C,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:D}),getShaderSource:B}},Z3=a=>Xt({axis:a.axis}),J3=(a,n)=>{let i=a.inputs;P4(i),a.compute(Q4(a.inputs,n))}}),F4,q3,$3,aI=bA(()=>{ot(),mt(),bt(),F4=(a,n,i,g,p,h,C,w,E)=>{let v=[{type:12,data:h},{type:12,data:g},{type:12,data:p},{type:12,data:i},{type:12,data:C},{type:12,data:w},{type:12,data:E}],D=[h];v.push(...et(n.dims,D));let B=x=>{let S=rA("indices_data",n.dataType,n.dims.length),F=YA("input_slice_offsets_data",12,1,1),R=[S,F],K=[{name:"output_size",type:"u32"},{name:"batch_dims",type:"u32"},{name:"input_dims",type:"u32",length:p.length},{name:"sizes_from_slice_dims_data",type:"u32",length:i.length},{name:"num_slices_per_batch",type:"u32"},{name:"input_batch_stride",type:"u32"},{name:"num_slice_dims",type:"u32"}];return` + ${x.registerUniforms(K).declareVariables(...R)} + ${x.mainStart()} + ${x.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let batch_idx = global_idx / uniforms.num_slices_per_batch; + let base_offset = batch_idx * uniforms.input_batch_stride; + + let slice_indices_base_offset = global_idx * uniforms.num_slice_dims; + var relative_slice_offset = 0; + for (var dim_idx = 0u; dim_idx < uniforms.num_slice_dims; dim_idx ++) { + var index = i32(indices_data[dim_idx + slice_indices_base_offset].x); + let input_dim_idx = uniforms.batch_dims + dim_idx; + if (index < 0) { + ${p.length===1?"index += i32(uniforms.input_dims);":"index += i32(uniforms.input_dims[input_dim_idx]);"} + } + ${i.length===1?"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data);":"relative_slice_offset += index * i32(uniforms.sizes_from_slice_dims_data[dim_idx]);"} + } + + input_slice_offsets_data[global_idx] = base_offset + u32(relative_slice_offset); + }`};return a.compute({name:"computeSliceOffsets",shaderCache:{hint:`${p.length}_${i.length}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:D,dataType:a.inputs[1].dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:v}),getShaderSource:B},{inputs:[n],outputs:[-1]})[0]},q3=(a,n)=>{let i=a.inputs,g=i[0].dims,p=i[0].dataType,h=i[1].dims,C=h[h.length-1],w=Ze.sizeToDimension(h,h.length-1),E=Ze.sizeFromDimension(g,n.batchDims+C),v=Ze.sizeToDimension(g,n.batchDims),D=Ze.sizeFromDimension(g,n.batchDims),B=w/v,x=new Array(C),S=E;for(let d=0;dg.length)throw new Error("last dimension of indices must not be larger than rank of input tensor");let K=h.slice(0,-1).concat(g.slice(R)),L=Ze.size(K),N=[{type:12,data:L},{type:12,data:E},...et(i[0].dims,F.dims,K)],V=d=>{let k=rA("data",i[0].dataType,i[0].dims.length),e=rA("slice_offsets",12,F.dims.length),u=YA("output",i[0].dataType,K.length);return` + ${d.registerUniform("output_size","u32").registerUniform("slice_size","u32").declareVariables(k,e,u)} + ${d.mainStart()} + ${d.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let slice_offset = slice_offsets[global_idx / uniforms.slice_size]; + output[global_idx] = data[u32(slice_offset) + global_idx % uniforms.slice_size]; + }`};a.compute({name:"GatherND",shaderCache:{hint:n.cacheKey,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:K,dataType:p}],dispatchGroup:{x:Math.ceil(L/64)},programUniforms:N}),getShaderSource:V},{inputs:[i[0],F]})},$3=a=>({batchDims:a.batch_dims,cacheKey:""})}),S4,O4,eC,AC,nI=bA(()=>{ot(),mt(),Wr(),bt(),S4=(a,n)=>{if(a.length<3||a.length>4)throw new Error("GatherBlockQuantized requires 3 or 4 inputs.");let i=Ze.normalizeAxis(n.quantizeAxis,a[0].dims.length),g=n.blockSize,p=a[0],h=a[2],C=a.length===4?a[3]:void 0;if(h.dims.length!==p.dims.length||!p.dims.map((w,E)=>E===i?Math.ceil(w/g)===h.dims[E]:w===h.dims[E]).reduce((w,E)=>w&&E,!0))throw new Error("Scales must have the same rank as the input tensor and the dims should match except on gatherAxis.");if(C){if(C.dataType!==p.dataType)throw new Error("Zero point must have the same data type as the input tensor.");if(C.dims.length!==h.dims.length||!C.dims.map((w,E)=>w===h.dims[E]).reduce((w,E)=>w&&E,!0))throw new Error("Zero point must have the same rank as the input tensor and the dims should match except on quantizeAxis.")}},O4=(a,n)=>{let i=a[0].dims,g=a[1].dims,p=i.length,h=Ze.normalizeAxis(n.gatherAxis,p),C=Ze.normalizeAxis(n.quantizeAxis,p),w=i.slice(0);w.splice(h,1,...g);let E=Ze.size(w),v=a[2].dataType,D=a[0].dataType===22,B=[{type:12,data:E},{type:12,data:C},{type:12,data:h},{type:12,data:n.blockSize},...et(...a.map((S,F)=>S.dims),w)],x=S=>{let F=rA("data",a[0].dataType,a[0].dims.length),R=rA("inputIndices",a[1].dataType,a[1].dims.length),K=rA("scales",a[2].dataType,a[2].dims.length),L=a.length>3?rA("zeroPoint",a[3].dataType,a[3].dims.length):void 0,N=YA("output",v,w.length),V=[F,R,K];L&&V.push(L);let d=[{name:"output_size",type:"u32"},{name:"quantize_axis",type:"u32"},{name:"gather_axis",type:"u32"},{name:"block_size",type:"u32"}];return` + ${S.registerUniforms(d).declareVariables(...V,N)} + ${S.mainStart()} + let output_indices = ${N.offsetToIndices("global_idx")}; + var indices_indices = ${R.type.indices}(0); + ${g.length>1?` + for (var i: u32 = 0; i < ${g.length}; i++) { + let index = ${N.indicesGet("output_indices","uniforms.gather_axis + i")}; + ${R.indicesSet("indices_indices","i","index")}; + }`:`indices_indices = ${N.indicesGet("output_indices","uniforms.gather_axis")};`}; + var data_indices = ${F.type.indices}(0); + for (var i: u32 = 0; i < uniforms.gather_axis; i++) { + let index = ${N.indicesGet("output_indices","i")}; + ${F.indicesSet("data_indices","i","index")}; + } + var index_from_indices = ${R.getByIndices("indices_indices")}; + if (index_from_indices < 0) { + index_from_indices += ${i[h]}; + } + ${F.indicesSet("data_indices","uniforms.gather_axis","u32(index_from_indices)")}; + for (var i = uniforms.gather_axis + 1; i < ${w.length}; i++) { + let index = ${N.indicesGet("output_indices",`i + ${g.length} - 1`)}; + ${F.indicesSet("data_indices","i","index")}; + } + let data_offset = ${F.indicesToOffset("data_indices")}; + let data_index = data_offset % 8; + // Convert 4-bit packed data to 8-bit packed data. + let packed_4bit_quantized_data = ${F.getByOffset("data_offset / 8")}; + let packed_8bit_quantized_data = (packed_4bit_quantized_data >> (4 * (data_index % 2))) & 0x0f0f0f0f; + let quantized_data_vec = ${D?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_quantized_data)); + let quantized_data = quantized_data_vec[data_index / 2]; + var scale_indices = data_indices; + let quantize_axis_index = ${K.indicesGet("data_indices","uniforms.quantize_axis")} / uniforms.block_size; + ${K.indicesSet("scale_indices","uniforms.quantize_axis","quantize_axis_index")}; + var scale = ${K.getByIndices("scale_indices")}; + ${L?` + let zero_point_indices = scale_indices; + let zero_point_offset = ${L.indicesToOffset("zero_point_indices")}; + let zero_point_index = zero_point_offset % 8; + let packed_4bit_zero_points = ${L.getByOffset("zero_point_offset / 8")}; + let packed_8bit_zero_points = (packed_4bit_zero_points >> (4 * (zero_point_index % 2))) & 0x0f0f0f0f; + let zero_point_vec = ${D?"unpack4xI8":"unpack4xU8"}(u32(packed_8bit_zero_points)); + let zero_point = zero_point_vec[zero_point_index / 2];`:"var zero_point = 0"}; + let dequantized_data = ${ys(v)}(quantized_data - zero_point) * scale; + ${N.setByOffset("global_idx","dequantized_data")}; + }`};return{name:"GatherBlockQuantized",shaderCache:{hint:`${n.cacheKey};${a.filter((S,F)=>F!==1).map(S=>S.dims.join("_")).join(";")}`,inputDependencies:Array.from({length:a.length},(S,F)=>"rank")},getRunData:()=>({outputs:[{dims:w,dataType:v}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:B}),getShaderSource:x}},eC=(a,n)=>{let i=a.inputs;S4(i,n),a.compute(O4(a.inputs,n))},AC=a=>Xt({blockSize:a.blockSize,gatherAxis:a.gatherAxis,quantizeAxis:a.quantizeAxis})}),z4,N4,tC,rC,iI=bA(()=>{ot(),mt(),Wr(),bt(),z4=a=>{if(!a||a.length!==2)throw new Error("GatherElements requires 2 inputs.");if(a[0].dims.length<1)throw new Error("GatherElements requires that the data input be rank >= 1.");if(a[0].dims.length!==a[1].dims.length)throw new Error(`GatherElements requires that the data input and + indices input tensors be of same rank.`)},N4=(a,n)=>{let i=a[0].dims,g=a[0].dataType,p=i.length,h=a[1].dims,C=a[1].dataType,w=Ze.normalizeAxis(n.axis,p),E=i[w],v=h.slice(0),D=Ze.size(v),B=rA("input",g,p),x=rA("indicesInput",C,h.length),S=YA("output",g,v.length),F=[{type:12,data:D},{type:6,data:E},{type:12,data:w}];return F.push(...et(i,h,v)),{name:"GatherElements",shaderCache:{inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:v,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(D/64)},programUniforms:F}),getShaderSource:R=>` + ${R.registerUniform("outputSize","u32").registerUniform("axisDimLimit","i32").registerUniform("axis","u32").declareVariables(B,x,S)} + ${R.mainStart()} + ${R.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + + let outputIndices = ${S.offsetToIndices("global_idx")}; + + var idx = ${x.getByOffset("global_idx")}; + if (idx < 0) { + idx = idx + uniforms.axisDimLimit; + } + var inputIndices = ${B.type.indices}(outputIndices); + ${B.indicesSet("inputIndices","uniforms.axis","u32(idx)")}; + let value = ${B.getByIndices("inputIndices")}; + + ${S.setByOffset("global_idx","value")}; + }`}},tC=a=>Xt({axis:a.axis}),rC=(a,n)=>{let i=a.inputs;z4(i),a.compute(N4(a.inputs,n))}}),L4,_4,sC,aC,oI=bA(()=>{ot(),mt(),bt(),L4=a=>{if(!a)throw new Error("Input is missing");if(a.length<2||a.length>3)throw new Error("Invaid input number.");if(a.length===3&&a[2].dims.length>2)throw new Error("Invalid input shape of C");if(a[0].dataType!==a[1].dataType||a.length===3&&a[0].dataType!==a[2].dataType)throw new Error("Input types are mismatched")},_4=(a,n)=>{let i=a[0].dims.slice(),g=a[1].dims.slice(),[p,h,C]=th.getShapeOfGemmResult(i,n.transA,g,n.transB,a.length===3?a[2].dims:void 0),w=[p,h];if(!w)throw new Error("Can't use gemm on the given tensors");let E=16,v=Math.ceil(h/E),D=Math.ceil(p/E),B=!0,x=Ze.size(w),S=[{type:12,data:B?v:x},{type:12,data:p},{type:12,data:h},{type:12,data:C},{type:1,data:n.alpha},{type:1,data:n.beta}],F=["type","type"];a.length===3&&(S.push(...et(a[2].dims)),F.push("rank")),S.push(...et(w));let R=L=>{let N="";n.transA&&n.transB?N="value += a[k * uniforms.M + m] * b[n * uniforms.K + k];":n.transA&&!n.transB?N="value += a[k * uniforms.M + m] * b[k * uniforms.N + n];":!n.transA&&n.transB?N="value += a[m * uniforms.K + k] * b[n * uniforms.K + k];":!n.transA&&!n.transB&&(N="value += a[m * uniforms.K + k] * b[k * uniforms.N + n];");let V=n.alpha===1?"":"value *= uniforms.alpha;",d=rA("a",a[0].dataType,a[0].dims),k=rA("b",a[1].dataType,a[1].dims),e=d.type.value,u=null,y=[d,k];a.length===3&&(u=rA("c",a[2].dataType,a[2].dims.length),y.push(u));let $=YA("output",a[0].dataType,w.length);y.push($);let T=[{name:"output_size",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"},{name:"alpha",type:"f32"},{name:"beta",type:"f32"}];return` + ${L.registerUniforms(T).declareVariables(...y)} + + ${L.mainStart()} + ${L.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let m = global_idx / uniforms.N; + let n = global_idx % uniforms.N; + + var value = ${e}(0); + for (var k: u32 = 0u; k < uniforms.K; k++) { + ${N} + } + + ${V} + ${u!=null?`let cOffset = ${u.broadcastedIndicesToOffset("vec2(m, n)",$)}; value += ${e}(uniforms.beta) * ${u.getByOffset("cOffset")};`:""} + output[global_idx] = value; + }`},K=L=>{let N=rA("a",a[0].dataType,a[0].dims),V=rA("b",a[1].dataType,a[1].dims),d=null,k=[N,V];a.length===3&&(d=rA("c",a[2].dataType,a[2].dims.length),k.push(d));let e=YA("output",a[0].dataType,w.length);k.push(e);let u=[{name:"num_tile_n",type:"u32"},{name:"M",type:"u32"},{name:"N",type:"u32"},{name:"K",type:"u32"},{name:"alpha",type:"f32"},{name:"beta",type:"f32"}],y="",$="";n.transA&&n.transB?($=` + var col = tile_row_start + local_id.x; + var row = k_start + local_id.y; + if (col < uniforms.M && row < uniforms.K) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col]; + } else { + tile_a[local_id.y][local_id.x] = ${N.type.value}(0); + } + + col = k_start + local_id.x; + row = tile_col_start + local_id.y; + if (col < uniforms.K && row < uniforms.N) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col]; + } else { + tile_b[local_id.y][local_id.x] = ${V.type.value}(0); + } + `,y="value += tile_a[k][local_id.y] * tile_b[local_id.x][k];"):n.transA&&!n.transB?($=` + var col = tile_row_start + local_id.x; + var row = k_start + local_id.y; + if (col < uniforms.M && row < uniforms.K) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.M + col]; + } else { + tile_a[local_id.y][local_id.x] = ${N.type.value}(0); + } + + col = tile_col_start + local_id.x; + row = k_start + local_id.y; + if (col < uniforms.N && row < uniforms.K) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col]; + } else { + tile_b[local_id.y][local_id.x] = ${V.type.value}(0); + } + `,y="value += tile_a[k][local_id.y] * tile_b[k][local_id.x];"):!n.transA&&n.transB?($=` + var col = k_start + local_id.x; + var row = tile_row_start + local_id.y; + if (col < uniforms.K && row < uniforms.M) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col]; + } else { + tile_a[local_id.y][local_id.x] = ${N.type.value}(0); + } + + col = k_start + local_id.x; + row = tile_col_start + local_id.y; + if (col < uniforms.K && row < uniforms.N) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.K + col]; + } else { + tile_b[local_id.y][local_id.x] = ${V.type.value}(0); + } + `,y="value += tile_a[local_id.y][k] * tile_b[local_id.x][k];"):!n.transA&&!n.transB&&($=` + var col = k_start + local_id.x; + var row = tile_row_start + local_id.y; + if (col < uniforms.K && row < uniforms.M) { + tile_a[local_id.y][local_id.x] = a[row * uniforms.K + col]; + } else { + tile_a[local_id.y][local_id.x] = ${N.type.value}(0); + } + + col = tile_col_start + local_id.x; + row = k_start + local_id.y; + if (col < uniforms.N && row < uniforms.K) { + tile_b[local_id.y][local_id.x] = b[row * uniforms.N + col]; + } else { + tile_b[local_id.y][local_id.x] = ${V.type.value}(0); + } + `,y="value += tile_a[local_id.y][k] * tile_b[k][local_id.x];");let T=n.alpha===1?"":"value *= uniforms.alpha;";return` + ${L.registerUniforms(u).declareVariables(...k)} + var tile_a: array, ${E}>; + var tile_b: array, ${E}>; + ${L.mainStart([E,E,1])} + let tile_col_start = (workgroup_index % uniforms.num_tile_n) * ${E}; + let tile_row_start = (workgroup_index / uniforms.num_tile_n) * ${E}; + let num_tiles = (uniforms.K - 1) / ${E} + 1; + var k_start = 0u; + var value = ${e.type.value}(0); + for (var t: u32 = 0u; t < num_tiles; t++) { + ${$} + k_start = k_start + ${E}; + workgroupBarrier(); + + for (var k: u32 = 0u; k < ${E}; k++) { + ${y} + } + workgroupBarrier(); + } + + ${T} + let m = tile_row_start + local_id.y; + let n = tile_col_start + local_id.x; + ${d!=null?`let cOffset = ${d.broadcastedIndicesToOffset("vec2(m, n)",e)}; value += ${e.type.value}(uniforms.beta) * ${d.getByOffset("cOffset")};`:""} + if (m < uniforms.M && n < uniforms.N) { + output[m * uniforms.N + n] = value; + } + }`};return B?{name:"GemmShared",shaderCache:{hint:`${n.cacheKey}`,inputDependencies:F},getRunData:()=>({outputs:[{dims:w,dataType:a[0].dataType}],dispatchGroup:{x:v*D},programUniforms:S}),getShaderSource:K}:{name:"Gemm",shaderCache:{hint:`${n.cacheKey}`,inputDependencies:F},getRunData:()=>({outputs:[{dims:w,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(x/64)},programUniforms:S}),getShaderSource:R}},sC=a=>{let n=a.transA,i=a.transB,g=a.alpha,p=a.beta;return{transA:n,transB:i,alpha:g,beta:p,cacheKey:`${a.transA};${a.transB};${a.alpha===1}`}},aC=(a,n)=>{L4(a.inputs),a.compute(_4(a.inputs,n))}}),An,wn,Ei,Mi,R4,j4,W4,Y4,H4,V4,U4,K4,nC,iC,lI=bA(()=>{ot(),mt(),Wr(),bt(),[An,wn,Ei,Mi]=[0,1,2,3],R4=a=>{if(a[0].dims.length!==4)throw new Error("only 4-D tensor is supported.");if(a[0].dims.length!==a[1].dims.length)throw new Error("input dimensions must be equal to grid dimensions");if(a[0].dims.length-2!==a[1].dims[a[1].dims.length-1])throw new Error(`last dimension of grid must be equal to ${a[0].dims.length-2}`);if(a[0].dims[0]!==a[1].dims[0])throw new Error("grid batch size must match input batch size")},j4=` + fn gs_get_cubic_coeffs(x: f32) -> vec4 { + let cubic_alpha = -0.75f; + let x_abs = abs(x); + var coeffs: vec4; + coeffs[0] = (((cubic_alpha * (x_abs + 1) - 5 * cubic_alpha) * (x_abs + 1) + 8 * cubic_alpha) * (x_abs + 1) - 4 * cubic_alpha); + coeffs[1] = (((cubic_alpha + 2) * x_abs - (cubic_alpha + 3)) * x_abs * x_abs + 1); + coeffs[2] = (((cubic_alpha + 2) * (1 - x_abs) - (cubic_alpha + 3)) * (1 - x_abs) * (1 - x_abs) + 1); + coeffs[3] = (((cubic_alpha * (2 - x_abs) - 5 * cubic_alpha) * (2 - x_abs) + 8 * cubic_alpha) * (2 - x_abs) - 4 * cubic_alpha); + return coeffs; + } +`,W4=a=>` + fn gs_bicubic_interpolate(p: mat4x4<${a}>, x: f32, y: f32) -> ${a} { + var v: vec4; + var coeffs = gs_get_cubic_coeffs(x); + for (var i = 0; i < 4; i++) { + v[i] = coeffs[0] * p[i][0] + coeffs[1] * p[i][1] + coeffs[2] * p[i][2] + coeffs[3] * p[i][3]; + } + coeffs = gs_get_cubic_coeffs(y); + let pixel = ${a}(coeffs[0] * v[0] + coeffs[1] * v[1] + coeffs[2] * v[2] + coeffs[3] * v[3]); + return pixel; + } +`,Y4=a=>` + fn gs_denormalize(n: f32, length: i32) -> f32 { + ${a.alignCorners===0?` + // alignCorners: false => [-1, 1] to [-0.5, length - 0.5] + return ((n + 1.0) * f32(length) - 1.0) / 2.0; + `:` + // alignCorners: true => [-1, 1] to [0, length - 1] + return (n + 1.0) / 2.0 * (f32(length - 1)); + `} + } +`,H4=a=>` + ${a.paddingMode==="reflection"?` + fn gs_reflect(x: i32, x_min: f32, x_max: f32) -> u32 { + var dx = 0.0; + var fx = f32(x); + let range = x_max - x_min; + if (fx < x_min) { + dx = x_min - fx; + let n = u32(dx / range); + let r = dx - f32(n) * range; + if (n % 2 == 0) { + fx = x_min + r; + } else { + fx = x_max - r; + } + } else if (fx > x_max) { + dx = fx - x_max; + let n = u32(dx / range); + let r = dx - f32(n) * range; + if (n % 2 == 0) { + fx = x_max - r; + } else { + fx = x_min + r; + } + } + return u32(fx); + }`:""} +`,V4=(a,n,i)=>` + fn pixel_at_grid(r: i32, c: i32, H: i32, W: i32, batch: u32, channel: u32, border: vec4) -> ${n} { + var pixel = ${n}(0); + var indices = vec4(0); + indices[${An}] = batch; + indices[${wn}] = channel;`+(()=>{switch(i.paddingMode){case"zeros":return` + if (r >= 0 && r < H && c >=0 && c < W) { + indices[${Ei}] = u32(r); + indices[${Mi}] = u32(c); + } else { + return ${n}(0); + } + `;case"border":return` + indices[${Ei}] = u32(clamp(r, 0, H - 1)); + indices[${Mi}] = u32(clamp(c, 0, W - 1)); + `;case"reflection":return` + indices[${Ei}] = gs_reflect(r, border[1], border[3]); + indices[${Mi}] = gs_reflect(c, border[0], border[2]); + `;default:throw new Error(`padding mode ${i.paddingMode} is not supported`)}})()+` + return ${a.getByIndices("indices")}; + } +`,U4=(a,n,i)=>(()=>{switch(i.mode){case"nearest":return` + let result = pixel_at_grid(i32(round(y)), i32(round(x)), H_in, W_in, indices[${An}], indices[${wn}], border); + `;case"bilinear":return` + let x1 = i32(floor(x)); + let y1 = i32(floor(y)); + let x2 = x1 + 1; + let y2 = y1 + 1; + + let p11 = pixel_at_grid(y1, x1, H_in, W_in, indices[${An}], indices[${wn}], border); + let p12 = pixel_at_grid(y1, x2, H_in, W_in, indices[${An}], indices[${wn}], border); + let p21 = pixel_at_grid(y2, x1, H_in, W_in, indices[${An}], indices[${wn}], border); + let p22 = pixel_at_grid(y2, x2, H_in, W_in, indices[${An}], indices[${wn}], border); + + let dx2 = ${n}(f32(x2) - x); + let dx1 = ${n}(x - f32(x1)); + let dy2 = ${n}(f32(y2) - y); + let dy1 = ${n}(y - f32(y1)); + let result = dy2 * (dx2 * p11 + dx1 * p12) + dy1 * (dx2 * p21 + dx1 * p22); + `;case"bicubic":return` + let x0 = i32(floor(x)) - 1; + let y0 = i32(floor(y)) - 1; + var p: mat4x4<${n}>; + for (var h = 0; h < 4; h++) { + for (var w = 0; w < 4; w++) { + p[h][w] = pixel_at_grid(h + y0, w + x0, H_in, W_in, indices[${An}], indices[${wn}], border); + } + } + + let dx = x - f32(x0 + 1); + let dy = y - f32(y0 + 1); + let result = gs_bicubic_interpolate(p, dx, dy); + `;default:throw new Error(`mode ${i.mode} is not supported`)}})()+`${a.setByOffset("global_idx","result")}`,K4=(a,n)=>{let i=rA("x",a[0].dataType,a[0].dims.length),g=[a[1].dims[0],a[1].dims[1],a[1].dims[2]],p=rA("grid",a[1].dataType,g.length,2),h=[a[0].dims[0],a[0].dims[1],a[1].dims[1],a[1].dims[2]];n.format==="NHWC"&&(h=[a[0].dims[0],a[1].dims[1],a[1].dims[2],a[0].dims[3]],[An,wn,Ei,Mi]=[0,3,1,2]);let C=YA("output",a[0].dataType,h.length),w=i.type.value,E=Ze.size(h),v=[{type:12,data:E},...et(a[0].dims,g,h)],D=B=>` + ${B.registerUniform("output_size","u32").declareVariables(i,p,C)} + ${j4} + ${W4(w)} + ${Y4(n)} + ${H4(n)} + ${V4(i,w,n)} + + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let H_in = i32(uniforms.x_shape[${Ei}]); + let W_in = i32(uniforms.x_shape[${Mi}]); + + ${n.alignCorners===0?` + let x_min = -0.5; + let x_max = f32(W_in) - 0.5; + let y_min = -0.5; + let y_max = f32(H_in) - 0.5; + `:` + let x_min = 0.0; + let x_max = f32(W_in) - 1.0; + let y_min = 0.0; + let y_max = f32(H_in) - 1.0; + `}; + let border = vec4(x_min, y_min, x_max, y_max); + + let indices = ${C.offsetToIndices("global_idx")}; + var grid_indices = vec3(indices[${An}], indices[${Ei}], indices[${Mi}]); + let nxy = ${p.getByIndices("grid_indices")}; + var x = gs_denormalize(f32(nxy[0]), W_in); + var y = gs_denormalize(f32(nxy[1]), H_in); + + ${U4(C,w,n)} + }`;return{name:"GridSample",shaderCache:{hint:`${n.cacheKey}`,inputDependencies:["type","type"]},getRunData:B=>{let x=Ze.size(h);return{outputs:[{dims:h,dataType:B[0].dataType}],dispatchGroup:{x:Math.ceil(x/64)},programUniforms:v}},getShaderSource:D}},nC=(a,n)=>{R4(a.inputs),a.compute(K4(a.inputs,n))},iC=a=>Xt({alignCorners:a.align_corners,mode:a.mode,paddingMode:a.padding_mode,format:a.format})}),Rs,X4,oC,E2,Z4,Uo,lC,cC=bA(()=>{ot(),mt(),Wr(),Gc(),Fc(),bt(),ri(),Rs=(a,n)=>a.length>n&&a[n].dims.length>0?a[n]:void 0,X4=(a,n)=>{let i=a[0],g=Rs(a,1),p=Rs(a,2),h=Rs(a,3),C=Rs(a,4),w=Rs(a,5),E=Rs(a,6),v=Rs(a,7);if(i.dims.length!==3&&i.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let D=i.dims[0],B=i.dims[1],x=i.dims.length===3?i.dims[2]:n.numHeads*i.dims[4],S=B,F=0,R=0,K=Math.floor(x/n.numHeads);if(E&&v&&Ze.size(E.dims)&&Ze.size(v.dims)){if(E.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(E.dims[0]!==D||E.dims[1]!==n.numHeads||E.dims[3]!==K)throw new Error('Input "past_key" shape (batch_size, num_heads, past_sequence_length, head_size)');if(v.dims[0]!==D||v.dims[1]!==n.numHeads||v.dims[3]!==K)throw new Error('Input "past_value" shape (batch_size, num_heads, past_sequence_length, head_size)');if(E.dims[2]!==v.dims[2])throw new Error('Input "past_key" and "past_value" shall have same dim 2 (past_sequence_length)');if(v.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');F=E.dims[2],R=E.dims[2]}else if(E&&Ze.size(E.dims)||v&&Ze.size(v.dims))throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let L;if(g&&Ze.size(g.dims)>0){if(i.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(g.dims.length<3||g.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(i.dims[0]!==g.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(g.dims.length===3){if(g.dims[2]!==i.dims[2])throw new Error('Input "query" and "key" shall have same dim 2 (hidden_size)');L=2,S=g.dims[1]}else if(g.dims.length===5){if(g.dims[2]!==n.numHeads||g.dims[3]!==2||g.dims[4]!==K)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(p)throw new Error('Expect "value" be none when "key" has packed kv format.');L=5,S=g.dims[1]}else{if(g.dims[1]!==n.numHeads||g.dims[3]!==K)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');L=0,S=g.dims[2]}}else{if(i.dims.length!==5)throw new Error('Input "query" is expected to have 5 dimensions when key is empty');if(i.dims[2]!==n.numHeads||i.dims[3]!==3)throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');L=3}if(h&&Ze.size(h.dims)>0){if(h.dims.length!==1)throw new Error('Input "bias" is expected to have 1 dimension');if(g&&g.dims.length===5&&g.dims[3]===2)throw new Error("bias is not allowed for packed kv.")}let N=F+S,V=0;if(C&&Ze.size(C.dims)>0){V=8;let u=C.dims;throw u.length===1?u[0]===D?V=1:u[0]===3*D+2&&(V=3):u.length===2&&u[0]===D&&u[1]===N&&(V=5),V===8?new Error('Input "key_padding_mask" shape shall be (batch_size) or (batch_size, total_sequence_length)'):new Error("Mask not supported")}let d=!1,k=x;if(p&&Ze.size(p.dims)>0){if(p.dims.length!==3&&p.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(i.dims[0]!==p.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(p.dims.length===3){if(S!==p.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');k=p.dims[2]}else{if(S!==p.dims[2])throw new Error('Input "key" and "value" shall have the same dim 2 (kv_sequence_length)');k=p.dims[1]*p.dims[3],d=!0}}let e=!1;if(C&&Ze.size(C.dims)>0)throw new Error("Key padding mask is not supported");if(w&&Ze.size(w.dims)>0){if(w.dims.length!==4)throw new Error('Input "attention_bias" is expected to have 4 dimensions');if(w.dims[0]!==D||w.dims[1]!==n.numHeads||w.dims[2]!==B||w.dims[3]!==N)throw new Error('Expect "attention_bias" shape (batch_size, num_heads, sequence_length, total_sequence_length)')}return{batchSize:D,sequenceLength:B,pastSequenceLength:F,kvSequenceLength:S,totalSequenceLength:N,maxSequenceLength:R,inputHiddenSize:0,hiddenSize:x,vHiddenSize:k,headSize:K,vHeadSize:Math.floor(k/n.numHeads),numHeads:n.numHeads,isUnidirectional:!1,pastPresentShareBuffer:!1,maskFilterValue:n.maskFilterValue,maskType:V,scale:n.scale,broadcastResPosBias:e,passPastInKv:d,qkvFormat:L}},oC=a=>Xt({...a}),E2=Xt({perm:[0,2,1,3]}),Z4=(a,n,i,g,p,h,C)=>{let w=[g,p,h],E=Ze.size(w),v=[{type:12,data:E},{type:12,data:C},{type:12,data:h}],D=B=>{let x=YA("qkv_with_bias",n.dataType,w),S=rA("qkv",n.dataType,w),F=rA("bias",i.dataType,w),R=[{name:"output_size",type:"u32"},{name:"bias_offset",type:"u32"},{name:"hidden_size",type:"u32"}];return` + ${B.registerUniforms(R).declareVariables(S,F,x)} + ${B.mainStart()} + ${B.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let bias_offset_idx = (global_idx % uniforms.hidden_size) + uniforms.bias_offset; + + qkv_with_bias[global_idx] = qkv[global_idx] + bias[bias_offset_idx]; + }`};return a.compute({name:"MultiHeadAttentionAddBias",shaderCache:{inputDependencies:["type","type"]},getRunData:()=>({outputs:[{dims:w,dataType:n.dataType,gpuDataType:0}],dispatchGroup:{x:Math.ceil(E/64)},programUniforms:v}),getShaderSource:D},{inputs:[n,i],outputs:[-1]})[0]},Uo=(a,n,i,g,p,h,C,w)=>{let E=h;if(C&&Ze.size(C.dims)>0){if(g===1)throw new Error("AddBiasReshape is not implemented. Please export your model with packed QKV or KV");return E=Z4(a,h,C,n,g,i*p,w),E=E.reshape([n,g,i,p]),i===1||g===1?E:a.compute(la(E,E2.perm),{inputs:[E],outputs:[-1]})[0]}else return h.dims.length===3&&(E=h.reshape([n,g,i,p])),i===1||g===1?E:a.compute(la(E,E2.perm),{inputs:[E],outputs:[-1]})[0]},lC=(a,n)=>{let i=X4(a.inputs,n),g=a.inputs[0],p=Rs(a.inputs,1),h=Rs(a.inputs,2),C=Rs(a.inputs,3),w=Rs(a.inputs,4),E=Rs(a.inputs,5),v=Rs(a.inputs,6),D=Rs(a.inputs,7);if(g.dims.length===5)throw new Error("Packed QKV is not implemented");if((p==null?void 0:p.dims.length)===5)throw new Error("Packed KV is not implemented");let B=p&&h&&p.dims.length===4&&h.dims.length===4,x=Uo(a,i.batchSize,i.numHeads,i.sequenceLength,i.headSize,g,C,0);if(B)return s0(a,x,p,h,w,void 0,v,D,E,i);if(!p||!h)throw new Error("key and value must be provided");let S=Uo(a,i.batchSize,i.numHeads,i.kvSequenceLength,i.headSize,p,C,i.hiddenSize),F=Uo(a,i.batchSize,i.numHeads,i.kvSequenceLength,i.vHeadSize,h,C,2*i.hiddenSize);s0(a,x,S,F,w,void 0,v,D,E,i)}}),J4,q4,$4,ep,dc,uC,dC,fC=bA(()=>{ot(),mt(),Wr(),bt(),J4=a=>{if(!a||a.length<1)throw new Error("too few inputs")},q4=(a,n)=>{let i=[],g=n.numOutputs;return a[1].dims[0]>0&&(a[1].getBigInt64Array().forEach(p=>i.push(Number(p))),g=i.length),Xt({numOutputs:g,axis:n.axis,splitSizes:i})},$4=a=>` +fn calculateOutputIndex(index: u32) -> u32 { + for (var i: u32 = 0u; i < ${a}u; i += 1u ) { + if (index < ${JA("uniforms.size_in_split_axis","i",a)}) { + return i; + } + } + return ${a}u; +}`,ep=a=>{let n=a.length,i=[];for(let g=0;g{let i=a[0].dims,g=Ze.size(i),p=a[0].dataType,h=Ze.normalizeAxis(n.axis,i.length),C=new Array(n.numOutputs),w=rA("input",p,i.length),E=new Array(n.numOutputs),v=[],D=[],B=0,x=[{type:12,data:g}];for(let F=0;F` + ${F.registerUniform("input_size","u32").registerUniform("size_in_split_axis","u32",E.length).declareVariables(w,...C)} + ${$4(E.length)} + ${ep(C)} + + ${F.mainStart()} + ${F.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.input_size")} + + var indices = ${w.offsetToIndices("global_idx")}; + var index = ${w.indicesGet("indices",h)}; + let output_number = calculateOutputIndex(index); + if (output_number != 0) { + index -= ${JA("uniforms.size_in_split_axis","output_number - 1u",E.length)}; + ${w.indicesSet("indices",h,"index")}; + } + writeBufferData(output_number, indices, global_idx); + }`;return{name:"Split",shaderCache:{hint:n.cacheKey,inputDependencies:["rank"]},getShaderSource:S,getRunData:()=>({outputs:v,dispatchGroup:{x:Math.ceil(g/64)},programUniforms:x})}},uC=(a,n)=>{J4(a.inputs);let i=a.inputs.length===1?n:q4(a.inputs,n);a.compute(dc(a.inputs,i),{inputs:[0]})},dC=a=>{let n=a.axis,i=a.splitSizes,g=a.numOutputs<0?i.length:a.numOutputs;if(g!==i.length)throw new Error("numOutputs and splitSizes lengh must be equal");return Xt({axis:n,numOutputs:g,splitSizes:i})}}),Ap,$0,gC,pC=bA(()=>{ot(),mt(),Wr(),bt(),Ap=(a,n)=>{let[i,g,p,h]=a,{numHeads:C,rotaryEmbeddingDim:w}=n;if(i.dims.length!==3&&i.dims.length!==4)throw new Error(`Input 'x' is expected to have 3 or 4 dimensions, got ${i.dims.length}`);if(!Ze.areEqual(g.dims,[])&&!Ze.areEqual(g.dims,[1])&&g.dims.length!==2)throw new Error(`Input 'position_ids' is expected to have 0, 1, or 2 dimensions, got ${g.dims.length}`);if(p.dims.length!==2)throw new Error(`Input 'cos_cache' is expected to have 2 dimensions, got ${p.dims.length}`);if(h.dims.length!==2)throw new Error(`Input 'sin_cache' is expected to have 2 dimensions, got ${h.dims.length}`);if(!Ze.areEqual(p.dims,h.dims))throw new Error("Inputs 'cos_cache' and 'sin_cache' are expected to have the same shape");if(w>0&&C===0)throw new Error("num_heads must be provided if rotary_embedding_dim is specified");let E=i.dims[0],v=i.dims[i.dims.length-2],D=p.dims[0],B=Ze.sizeFromDimension(i.dims,1)/v,x=w===0?p.dims[1]*2:B/C;if(w>x)throw new Error("rotary_embedding_dim must be less than or equal to head_size");if(g.dims.length===2){if(E!==g.dims[0])throw new Error(`Input 'position_ids' dimension 0 should be of size batch_size, got ${g.dims[0]}`);if(v!==g.dims[1])throw new Error(`Input 'position_ids' dimension 1 should be of size sequence_length, got ${g.dims[1]}`)}if(x/2!==p.dims[1]&&w/2!==p.dims[1])throw new Error(`Input 'cos_cache' dimension 1 should be same as head_size / 2 or rotary_embedding_dim / 2, got ${p.dims[1]}`);if(v>D)throw new Error("Updating cos_cache and sin_cache in RotaryEmbedding is not currently supported")},$0=(a,n)=>{let{interleaved:i,numHeads:g,rotaryEmbeddingDim:p,scale:h}=n,C=a[0].dims[0],w=Ze.sizeFromDimension(a[0].dims,1),E=a[0].dims[a[0].dims.length-2],v=w/E,D=a[2].dims[1],B=p===0?D*2:v/g,x=new Array(C,E,v/B,B-D),S=Ze.computeStrides(x),F=[{type:1,data:h},{type:12,data:x},{type:12,data:S},...a[0].dims.length===3?new Array({type:12,data:[w,v,B,1]}):[],...a[0].dims.length===4?new Array({type:12,data:[w,B,E*B,1]}):[],...et(a[0].dims,a[1].dims,a[2].dims,a[3].dims,a[0].dims)],R=K=>{let L=rA("input",a[0].dataType,a[0].dims.length),N=rA("position_ids",a[1].dataType,a[1].dims.length),V=rA("cos_cache",a[2].dataType,a[2].dims.length),d=rA("sin_cache",a[3].dataType,a[3].dims.length),k=YA("output",a[0].dataType,a[0].dims.length);return K.registerUniforms([{name:"scale",type:"f32"},{name:"global_shape",type:"u32",length:x.length},{name:"global_strides",type:"u32",length:S.length},{name:"input_output_strides",type:"u32",length:S.length}]),` + ${K.declareVariables(L,N,V,d,k)} + + ${K.mainStart(fo)} + let half_rotary_emb_dim = uniforms.${V.name}_shape[1]; + let bsnh = global_idx / uniforms.global_strides % uniforms.global_shape; + let size = uniforms.global_shape[0] * uniforms.global_strides[0]; + ${K.guardAgainstOutOfBoundsWorkgroupSizes("size")} + + if (bsnh[3] < half_rotary_emb_dim) { + let position_ids_idx = + ${N.broadcastedIndicesToOffset("bsnh.xy",YA("",N.type.tensor,2))}; + let position_id = + u32(${N.getByOffset("position_ids_idx")}) + select(0, bsnh[1], position_ids_idx == 0); + let i = dot(bsnh, uniforms.input_output_strides) + select(0, bsnh[3], ${i}); + let j = i + select(half_rotary_emb_dim, 1, ${i}); + let re = ${L.getByOffset("i")} * ${V.get("position_id","bsnh[3]")} - + ${L.getByOffset("j")} * ${d.get("position_id","bsnh[3]")}; + ${k.setByOffset("i","re")} + let im = ${L.getByOffset("i")} * ${d.get("position_id","bsnh[3]")} + + ${L.getByOffset("j")} * ${V.get("position_id","bsnh[3]")}; + ${k.setByOffset("j","im")} + } else { + let k = dot(bsnh, uniforms.input_output_strides) + half_rotary_emb_dim; + ${k.setByOffset("k",L.getByOffset("k"))} + } + }`};return{name:"RotaryEmbedding",shaderCache:{hint:Xt({interleaved:i}).cacheKey,inputDependencies:["rank","rank","rank","rank"]},getShaderSource:R,getRunData:()=>({outputs:[{dims:a[0].dims,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(Ze.size(x)/fo)},programUniforms:F})}},gC=(a,n)=>{Ap(a.inputs,n),a.compute($0(a.inputs,n))}}),tp,rp,M2,sp,mC,cI=bA(()=>{Wr(),ot(),Fc(),cC(),fC(),ri(),pC(),bt(),tp=(a,n)=>{if(n.doRotary&&a.length<=7)throw new Error("cos_cache and sin_cache inputs are required if do_rotary is specified");let i=a[0],g=a[1],p=a[2],h=a[3],C=a[4];if(n.doRotary!==0&&a.length<=7)throw new Error("cos_cast and sin_cache are expected if do_rotary attribute is non-zero");if(n.localWindowSize!==-1)throw new Error("Local attention is not supported");if(n.softcap!==0)throw new Error("Softcap is not supported");if(n.rotaryInterleaved!==0)throw new Error("Rotary interleaved is not supported");if(n.smoothSoftmax)throw new Error("Smooth softmax is not supported");if(i.dims.length!==3&&i.dims.length!==5)throw new Error("Input query is expected to have 3 or 5 dimensions");let w=!1,E=i.dims[0],v=i.dims[1],D=i.dims.length===3?w?i.dims[2]/3:i.dims[2]:n.numHeads*i.dims[4],B=v,x=0,S=!g||g.dims.length===0,F=Math.floor(S?D/(n.numHeads+2*n.kvNumHeads):D/n.numHeads);S&&(D=F*n.numHeads);let R=h&&h.dims.length!==0,K=C&&C.dims.length!==0;if(R&&h.dims.length===4&&h.dims[0]===E&&h.dims[1]!==n.kvNumHeads&&h.dims[2]===n.kvNumHeads&&h.dims[3]===F)throw new Error("BSNH pastKey/pastValue is not supported");if(R&&K){if(h.dims.length!==4)throw new Error('Input "past_key" is expected to have 4 dimensions');if(C.dims.length!==4)throw new Error('Input "past_value" is expected to have 4 dimensions');x=h.dims[2]}else if(R||K)throw new Error('Input "past_key" and "past_value" shall be both present or both absent');let L=1;if(g&&g.dims.length>0){if(i.dims.length!==3)throw new Error('Input "query" is expected to have 3 dimensions when key is given');if(g.dims.length<3||g.dims.length>5)throw new Error('Input "key" is expected to have 3, 4, or 5 dimensions');if(i.dims[0]!==g.dims[0])throw new Error('Input "query" and "key" shall have same dim 0 (batch size)');if(g.dims.length===3){if(i.dims[2]%g.dims[2]!==0)throw new Error('Dimension 2 of "query" should be a multiple of "key"');B=g.dims[1]}else if(g.dims.length===5){if(g.dims[2]!==n.numHeads||g.dims[3]!==2||g.dims[4]!==F)throw new Error('Expect "key" shape (batch_size, kv_sequence_length, num_heads, 2, head_size) for packed kv');if(p)throw new Error('Expect "value" be none when "key" has packed kv format.');B=g.dims[1]}else{if(g.dims[1]!==n.numHeads||g.dims[3]!==F)throw new Error('Expect "key" shape (batch_size, num_heads, kv_sequence_length, head_size) for past_key');B=g.dims[2]}}else{if(i.dims.length!==3&&i.dims.length!==5)throw new Error('Input "query" is expected to have 3 or 5 dimensions when key is empty');if(i.dims.length===5&&(i.dims[2]!==n.numHeads||i.dims[3]!==3))throw new Error('Expect "query" shape (batch_size, kv_sequence_length, num_heads, 3, head_size) for packed kv');L=3}let N=0,V=!1,d=n.kvNumHeads?F*n.kvNumHeads:D;if(p&&p.dims.length>0){if(p.dims.length!==3&&p.dims.length!==4)throw new Error('Input "value" is expected to have 3 or 4 dimensions');if(i.dims[0]!==p.dims[0])throw new Error('Input "query" and "value" shall have same dim 0 (batch_size)');if(p.dims.length===3){if(B!==p.dims[1])throw new Error('Input "key" and "value" shall have the same dim 1 (kv_sequence_length)');d=p.dims[2]}else{if(B!==p.dims[2])throw new Error('Input "past_key" and "past_value" shall have the same dim 2 (kv_sequence_length)');d=p.dims[1]*p.dims[3],V=!0}}let k=a.length>4?a[5]:void 0;if(k&&k.dims.length!==1&&k.dims[0]!==E)throw new Error('Input "seqlens" is expected to have 1 dimension and the same dim 0 as batch_size');return{batchSize:E,sequenceLength:v,pastSequenceLength:x,kvSequenceLength:B,totalSequenceLength:-1,maxSequenceLength:-1,inputHiddenSize:0,hiddenSize:D,vHiddenSize:d,headSize:F,vHeadSize:Math.floor(d/n.kvNumHeads),numHeads:n.numHeads,kvNumHeads:n.kvNumHeads,nReps:n.numHeads/n.kvNumHeads,pastPresentShareBuffer:!1,maskType:N,scale:n.scale,broadcastResPosBias:!1,passPastInKv:V,qkvFormat:L}},rp=Xt({perm:[0,2,1,3]}),M2=(a,n,i)=>{let g=n,p=i.kvNumHeads;return n.dims.length===3&&i.kvSequenceLength!==0&&(g=n.reshape([i.batchSize,i.kvSequenceLength,p,i.headSize]),g=a.compute(la(g,rp.perm),{inputs:[g],outputs:[-1]})[0]),g},sp=(a,n,i,g)=>{let p=7,h=["type","type"],C=[a*n],w=a*n,E=[{type:12,data:w},{type:12,data:n},{type:12,data:a}],v=D=>{let B=rA("seq_lens",i.dataType,i.dims),x=rA("total_seq_lens",g.dataType,g.dims),S=YA("pos_ids",p,C),F=[{name:"output_size",type:"u32"},{name:"sequence_length",type:"u32"},{name:"batch_size",type:"u32"}];return` + ${D.registerUniforms(F).declareVariables(B,x,S)} + ${D.mainStart()} + ${D.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let total_sequence_length = u32(${x.getByOffset("0")}); + let is_subsequent_prompt = uniforms.sequence_length > 1 && uniforms.sequence_length != total_sequence_length; + let is_first_prompt = !is_subsequent_prompt && uniforms.sequence_length == total_sequence_length; + let batch_idx = global_idx / uniforms.sequence_length; + let sequence_idx = i32(global_idx % uniforms.sequence_length); + var pos_id: i32 = 0; + let seqlen = ${B.getByOffset("batch_idx")}; + let total_seqlen = seqlen + 1; + if (is_first_prompt) { + if (sequence_idx < total_seqlen) { + pos_id = sequence_idx; + } else { + pos_id = 1; + } + ${S.setByOffset("global_idx","pos_id")} + } else if (is_subsequent_prompt) { + let past_seqlen = total_seqlen - i32(uniforms.sequence_length); + if (past_seqlen + sequence_idx < total_seqlen) { + pos_id = past_seqlen + sequence_idx; + } else { + pos_id = 1; + } + ${S.setByOffset("global_idx","pos_id")} + } else if (global_idx < uniforms.batch_size) { + ${S.setByOffset("global_idx","seqlen")} + }; + } + `};return{name:"GeneratePositionIds",shaderCache:{hint:`${a};${n}`,inputDependencies:h},getRunData:()=>({outputs:[{dims:C,dataType:p}],dispatchGroup:{x:Math.ceil(w/64)},programUniforms:E}),getShaderSource:v}},mC=(a,n)=>{var d;let i=tp(a.inputs,n);if(a.inputs[0].dims.length===5)throw new Error("Packed QKV is not implemented");if(((d=a.inputs[1])==null?void 0:d.dims.length)===5)throw new Error("Packed KV is not implemented");let g=a.inputs[0],p=a.inputs[1]&&a.inputs[1].dims.length>0?a.inputs[1]:void 0,h=a.inputs[2]&&a.inputs[2].dims.length>0?a.inputs[2]:void 0,C=a.inputs[3]&&a.inputs[3].dims.length!==0?a.inputs[3]:void 0,w=a.inputs[4]&&a.inputs[4].dims.length!==0?a.inputs[4]:void 0,E=a.inputs.length>4?a.inputs[5]:void 0,v=a.inputs.length>5?a.inputs[6]:void 0,D=i.kvNumHeads?i.kvNumHeads:i.numHeads,B=Xt({axis:2,numOutputs:3,splitSizes:[i.numHeads*i.headSize,D*i.headSize,D*i.headSize]}),[x,S,F]=!p&&!h?a.compute(dc([g],B),{inputs:[g],outputs:[-1,-1,-1]}):[g,p,h],R,K;if(n.doRotary){let k=a.compute(sp(i.batchSize,i.sequenceLength,E,v),{inputs:[E,v],outputs:[-1]})[0],e=a.inputs[7],u=a.inputs[8],y=Xt({interleaved:n.rotaryInterleaved!==0,numHeads:i.numHeads,rotaryEmbeddingDim:0,scale:n.scale}),$=[x,k,e,u],T=[-1];R=a.compute($0($,y),{inputs:$,outputs:T})[0],$.splice(0,1,S);let O=Xt({interleaved:n.rotaryInterleaved!==0,numHeads:i.kvNumHeads,rotaryEmbeddingDim:0,scale:n.scale});K=a.compute($0($,O),{inputs:$,outputs:T})[0]}let L=Uo(a,i.batchSize,i.numHeads,i.sequenceLength,i.headSize,n.doRotary?R:x,void 0,0),N=M2(a,n.doRotary?K:S,i),V=M2(a,F,i);s0(a,L,N,V,void 0,void 0,C,w,void 0,i,E,v)}}),B2,ap,np,hC,uI=bA(()=>{ot(),mt(),ri(),bt(),B2=(a,n,i,g,p,h,C,w)=>{let E=Nr(h),v=E===1?"f32":`vec${E}f`,D=E===1?"vec2f":`mat2x${E}f`,B=p*C,x=64;B===1&&(x=256);let S=[p,C,h/E],F=[p,C,2],R=["rank","type","type"],K=[];K.push(...et(S,F));let L=N=>{let V=rA("x",n.dataType,3,E),d=rA("scale",i.dataType,i.dims),k=rA("bias",g.dataType,g.dims),e=YA("output",1,3,2),u=[V,d,k,e];return` + var workgroup_shared : array<${D}, ${x}>; + const workgroup_size = ${x}u; + ${N.declareVariables(...u)} + ${N.mainStart(x)} + let batch = workgroup_index / uniforms.x_shape[1]; + let channel = workgroup_index % uniforms.x_shape[1]; + let hight = uniforms.x_shape[2]; + // initialize workgroup memory + var sum = ${v}(0); + var squared_sum = ${v}(0); + for (var h = local_idx; h < hight; h += workgroup_size) { + let value = ${v}(${V.get("batch","channel","h")}); + sum += value; + squared_sum += value * value; + } + workgroup_shared[local_idx] = ${D}(sum, squared_sum); + workgroupBarrier(); + + for (var currSize = workgroup_size >> 1; currSize > 0; currSize = currSize >> 1) { + if (local_idx < currSize) { + workgroup_shared[local_idx] = workgroup_shared[local_idx] + workgroup_shared[local_idx + currSize]; + } + workgroupBarrier(); + } + if (local_idx == 0) { + let sum_final = ${ti("workgroup_shared[0][0]",E)} / f32(hight * ${E}); + let squared_sum_final = ${ti("workgroup_shared[0][1]",E)} / f32(hight * ${E}); + + let inv_std_dev = inverseSqrt(squared_sum_final - sum_final * sum_final + f32(${w})); + let channel_scale = inv_std_dev * f32(scale[channel]); + let channel_shift = f32(bias[channel]) - sum_final * channel_scale; + output[workgroup_index] = vec2f(channel_scale, channel_shift); + } + }`};return a.compute({name:"InstanceNormComputeChannelScaleShift",shaderCache:{hint:`${E};${w};${x}`,inputDependencies:R},getRunData:()=>({outputs:[{dims:F,dataType:1}],dispatchGroup:{x:B},programUniforms:K}),getShaderSource:L},{inputs:[n,i,g],outputs:[-1]})[0]},ap=(a,n,i)=>{let g=n[0].dims,p=g,h=2,C=g[0],w=g[1],E=Ze.sizeFromDimension(g,h),v=Nr(E),D=Ze.size(p)/v,B=B2(a,n[0],n[1],n[2],C,E,w,i.epsilon),x=[C,w,E/v],S=[C,w],F=["type","none"],R=K=>{let L=rA("x",n[0].dataType,x.length,v),N=rA("scale_shift",1,S.length,2),V=YA("output",n[0].dataType,x.length,v),d=[L,N,V];return` + ${K.registerUniform("output_size","u32").declareVariables(...d)} + ${K.mainStart()} + ${K.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let outputIndices = ${V.offsetToIndices("global_idx")}; + let batch = outputIndices[0]; + let channel = outputIndices[1]; + let scale_shift = ${N.getByIndices("vec2(batch, channel)")}; + let value = ${L.getByOffset("global_idx")} * ${V.type.value}(scale_shift.x) + ${V.type.value}(scale_shift.y); + ${V.setByOffset("global_idx","value")}; + }`};a.compute({name:"InstanceNormalization",shaderCache:{hint:`${v}`,inputDependencies:F},getRunData:()=>({outputs:[{dims:p,dataType:n[0].dataType}],dispatchGroup:{x:Math.ceil(D/64)},programUniforms:[{type:12,data:D},...et(x,S,x)]}),getShaderSource:R},{inputs:[n[0],B]})},np=(a,n,i)=>{let g=n[0].dims,p=g,h=g[0],C=g[g.length-1],w=Ze.sizeFromDimension(g,1)/C,E=Nr(C),v=Ze.size(p)/E,D=[{type:12,data:w},{type:12,data:Math.floor(C/E)}],B=["type","type"],x=!1,S=[0,g.length-1];for(let L=0;Lg[S[N]])),R=B2(a,F,n[1],n[2],h,w,C,i.epsilon),K=L=>{let N=us(n[0].dataType),V=E===1?"vec2f":`mat${E}x2f`,d=u=>{let y=u===0?"x":"y",$=E===1?"f32":`vec${E}f`;switch(E){case 1:return`${N}(${$}(scale.${y}))`;case 2:return`vec2<${N}>(${$}(scale[0].${y}, scale[1].${y}))`;case 4:return`vec4<${N}>(${$}(scale[0].${y}, scale[1].${y}, scale[2].${y}, scale[3].${y}))`;default:throw new Error(`Not supported compoents ${E}`)}},k=rA("input",n[0].dataType,n[0].dims,E),e=YA("output",n[0].dataType,p,E);return` + @group(0) @binding(0) var input : array<${k.type.storage}>; + @group(0) @binding(1) var scale_input : array<${V}>; + @group(0) @binding(2) var output : array<${e.type.storage}>; + struct Uniforms {H: u32, C : u32}; + @group(0) @binding(3) var uniforms: Uniforms; + + ${L.mainStart()} + let current_image_number = global_idx / (uniforms.C * uniforms.H); + let current_channel_number = global_idx % uniforms.C; + + let scale_offset = current_image_number * uniforms.C + current_channel_number; + let scale = scale_input[scale_offset]; + output[global_idx] = fma(input[global_idx], ${d(0)}, ${d(1)}); + }`};a.compute({name:"InstanceNormalizationNHWC",shaderCache:{hint:`${E}`,inputDependencies:B},getRunData:()=>({outputs:[{dims:p,dataType:n[0].dataType}],dispatchGroup:{x:Math.ceil(v/64)},programUniforms:D}),getShaderSource:K},{inputs:[n[0],R]})},hC=(a,n)=>{n.format==="NHWC"?np(a,a.inputs,n):ap(a,a.inputs,n)}}),ip,op,CC,dI=bA(()=>{ot(),mt(),bt(),ip=a=>{if(!a||a.length<2)throw new Error("layerNorm requires at least 2 inputs.")},op=(a,n,i)=>{let g=n.simplified,p=a[0].dims,h=a[1],C=!g&&a[2],w=p,E=Ze.normalizeAxis(n.axis,p.length),v=Ze.sizeToDimension(p,E),D=Ze.sizeFromDimension(p,E),B=Ze.size(h.dims),x=C?Ze.size(C.dims):0;if(B!==D||C&&x!==D)throw new Error(`Size of X.shape()[axis:] == ${D}. + Size of scale and bias (if provided) must match this. + Got scale size of ${B} and bias size of ${x}`);let S=[];for(let k=0;k1,N=i>2,V=k=>{let e=us(a[0].dataType),u=[rA("x",a[0].dataType,a[0].dims,F),rA("scale",h.dataType,h.dims,F)];C&&u.push(rA("bias",C.dataType,C.dims,F)),u.push(YA("output",a[0].dataType,w,F)),L&&u.push(YA("mean_data_output",1,S)),N&&u.push(YA("inv_std_output",1,S));let y=[{name:"norm_count",type:"u32"},{name:"norm_size",type:"f32"},{name:"norm_size_vectorized",type:"u32"},{name:"epsilon",type:"f32"}];return` + ${k.registerUniforms(y).declareVariables(...u)} + ${k.mainStart()} + ${k.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.norm_count")} + let offset = global_idx * uniforms.norm_size_vectorized; + var mean_vector = ${rc("f32",F)}; + var mean_square_vector = ${rc("f32",F)}; + + for (var h: u32 = 0u; h < uniforms.norm_size_vectorized; h++) { + let value = ${ao(e,F,"x[h + offset]")}; + mean_vector += value; + mean_square_vector += value * value; + } + let mean = ${ti("mean_vector",F)} / uniforms.norm_size; + let inv_std_dev = inverseSqrt(${ti("mean_square_vector",F)} / uniforms.norm_size ${g?"":"- mean * mean"} + uniforms.epsilon); + + for (var j: u32 = 0; j < uniforms.norm_size_vectorized; j++) { + let f32input = ${ao(e,F,"x[j + offset]")}; + let f32scale = ${ao(e,F,"scale[j]")}; + output[j + offset] = ${u[0].type.value}((f32input ${g?"":"- mean"}) * inv_std_dev * f32scale + ${C?`+ ${ao(e,F,"bias[j]")}`:""} + ); + } + + ${L?"mean_data_output[global_idx] = mean":""}; + ${N?"inv_std_output[global_idx] = inv_std_dev":""}; + }`},d=[{dims:w,dataType:a[0].dataType}];return L&&d.push({dims:S,dataType:1}),N&&d.push({dims:S,dataType:1}),{name:"LayerNormalization",shaderCache:{hint:`${F};${i};${g}`,inputDependencies:R},getRunData:()=>({outputs:d,dispatchGroup:{x:Math.ceil(v/64)},programUniforms:K}),getShaderSource:V}},CC=(a,n)=>{ip(a.inputs),a.compute(op(a.inputs,n,a.outputCount))}}),lp,bC,fI=bA(()=>{mt(),Lc(),_c(),lp=a=>{if(!a||a.length!==2)throw new Error("MatMul requires 2 inputs.");if(a[0].dims[a[0].dims.length-1]!==a[1].dims[a[1].dims.length-2])throw new Error("shared dimension does not match.")},bC=a=>{lp(a.inputs);let n=uo.calcShape(a.inputs[0].dims,a.inputs[1].dims,!0);if(!n)throw new Error("Can't use matmul on the given tensors");let i=n[n.length-1],g=a.inputs[0].dims[a.inputs[0].dims.length-1];if(i<8&&g<8)a.compute(Nc(a.inputs,{activation:""},n));else{let p=n[n.length-2],h=Ze.size(a.inputs[0].dims.slice(0,-2)),C=Ze.size(a.inputs[1].dims.slice(0,-2));if(h!==1&&p===1&&C===1){let w=a.inputs[0].reshape([1,h,g]),E=a.inputs[1].reshape([1,g,i]),v=[1,h,i],D=[w,E];a.compute(q0(D,{activation:""},n,v),{inputs:D})}else a.compute(q0(a.inputs,{activation:""},n))}}}),cp,up,dp,IC,wC,gI=bA(()=>{ot(),mt(),Wr(),bt(),cp=(a,n)=>{if(a.length<3||a.length>4)throw new Error("MatMulNBits requires 3 or 4 inputs");let i=a[0],g=i.dims.length;if(i.dims[g-1]!==n.k)throw new Error("The last dim of input shape does not match the k value");let p=Math.floor((n.k+n.blockSize-1)/n.blockSize),h=n.blockSize/8*n.bits,C=a[1];if(!Ze.areEqual(C.dims,[n.n,p,h]))throw new Error("The second inputs must be 3D tensor with shape N X nBlocksPerCol X blobSize");let w=a[2].dims;if(Ze.size(w)!==n.n*p)throw new Error("scales input size error.");if(a.length===4){let E=a[3].dims,v=n.bits>4?n.n*p:n.n*Math.floor((p+1)/2);if(Ze.size(E)!==v)throw new Error("zeroPoints input size error.")}},up=(a,n)=>{let i=a[0].dims,g=i.length,p=i[g-2],h=n.k,C=n.n,w=i.slice(0,g-2),E=Ze.size(w),v=a[1].dims[2]/4,D=a[0].dataType,B=Nr(n.k),x=Nr(v),S=Nr(C),F=w.concat([p,C]),R=p>1&&C/S%2===0?2:1,K=Ze.size(F)/S/R,L=64,N=[],V=[E,p,h/B],d=Ze.convertShape(a[1].dims).slice();d.splice(-1,1,v/x),N.push(...et(V)),N.push(...et(d)),N.push(...et(a[2].dims)),a.length===4&&N.push(...et(Ze.convertShape(a[3].dims)));let k=[E,p,C/S];N.push(...et(k));let e=u=>{let y=V.length,$=rA("a",a[0].dataType,y,B),T=rA("b",12,d.length,x),O=rA("scales",a[2].dataType,a[2].dims.length),Ce=[$,T,O],Ae=a.length===4?rA("zero_points",12,a[3].dims.length):void 0;Ae&&Ce.push(Ae);let be=k.length,he=YA("output",a[0].dataType,be,S),Ee=us(a[0].dataType),ke=(()=>{switch(B){case 1:return`array<${Ee}, 8>`;case 2:return`mat4x2<${Ee}>`;case 4:return`mat2x4<${Ee}>`;default:throw new Error(`${B}-component is not supported.`)}})(),De=()=>{let ue=` + // reuse a data + var input_offset = ${$.indicesToOffset(`${$.type.indices}(batch, row, word_offset)`)}; + var a_data: ${ke}; + for (var j: u32 = 0; j < ${8/B}; j++) { + a_data[j] = ${$.getByOffset("input_offset")}; + input_offset++; + } + `;for(let ee=0;ee> 4) & b_mask); + b_quantized_values = ${ke}(${Array.from({length:4},(de,xe)=>`${Ee}(b_value_lower[${xe}]), ${Ee}(b_value_upper[${xe}])`).join(", ")}); + b_dequantized_values = ${B===1?`${ke}(${Array.from({length:8},(de,xe)=>`(b_quantized_values[${xe}] - ${Ae?`zero_point${ee}`:"zero_point"}) * scale${ee}`).join(", ")});`:`(b_quantized_values - ${ke}(${Array(8).fill(`${Ae?`zero_point${ee}`:"zero_point"}`).join(",")})) * scale${ee};`}; + workgroup_shared[local_id.x * ${R} + ${Math.floor(ee/S)}]${S>1?`[${ee%S}]`:""} += ${Array.from({length:8/B},(de,xe)=>`${B===1?`a_data[${xe}] * b_dequantized_values[${xe}]`:`dot(a_data[${xe}], b_dequantized_values[${xe}])`}`).join(" + ")}; + `;return ue},Re=()=>{let ue=` + var col_index = col * ${S}; + ${Ae?` + let zero_point_bytes_per_col = (nBlocksPerCol + 1) / 2; + var zero_point_byte_count: u32; + var zero_point_word_index: u32; + var zero_point_byte_offset: u32; + let zero_point_nibble_offset: u32 = block & 0x1u; + var zero_point_bits_offset: u32; + var zero_point_word: u32;`:` + // The default zero point is 8 for unsigned 4-bit quantization. + let zero_point = ${Ee}(8);`} + `;for(let ee=0;ee> 0x1u); + zero_point_word_index = zero_point_byte_count >> 0x2u; + zero_point_byte_offset = zero_point_byte_count & 0x3u; + zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2); + zero_point_word = ${Ae.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; + let zero_point${ee} = ${Ee}((zero_point_word) & 0xFu);`:""} + col_index += 1;`;return ue},Qe=()=>{let ue=`col_index = col * ${S};`;for(let ee=0;ee; + var b_value_upper: vec4; + var b_quantized_values: ${ke}; + var b_dequantized_values: ${ke};`,ue};return` + var workgroup_shared: array<${he.type.value}, ${R*L}>; + ${u.declareVariables(...Ce,he)} + ${u.mainStart([L,1,1])} + let output_indices = ${he.offsetToIndices(`(global_idx / ${L}) * ${R}`)}; + let col = output_indices[2]; + let row = output_indices[1]; + let batch = output_indices[0]; + let nBlocksPerCol = uniforms.b_shape[1]; + + for (var block = local_id.x; block < nBlocksPerCol; block += ${L}) { + //process one block + var word_offset: u32 = block * ${n.blockSize/B}; + ${Re()} + for (var word: u32 = 0; word < ${v}; word += ${x}) { + ${Qe()} + for (var i: u32 = 0; i < ${x}; i++) { + ${De()} + word_offset += ${8/B}; + } + } + } + workgroupBarrier(); + + if (local_id.x < ${R}) { + var output_value: ${he.type.value} = ${he.type.value}(0); + var workgroup_shared_offset: u32 = local_id.x; + for (var b: u32 = 0u; b < ${L}u; b++) { + output_value += workgroup_shared[workgroup_shared_offset]; + workgroup_shared_offset += ${R}; + } + ${he.setByIndices(`${he.type.indices}(batch, row, col + local_id.x)`,"output_value")}; + } + }`};return{name:"MatMulNBits",shaderCache:{hint:`${n.blockSize};${n.bits};${B};${x};${S};${R};${L}`,inputDependencies:Array(a.length).fill("rank")},getRunData:()=>({outputs:[{dims:F,dataType:D}],dispatchGroup:{x:K},programUniforms:N}),getShaderSource:e}},dp=(a,n)=>{let i=a[0].dims,g=i.length,p=i[g-2],h=n.k,C=n.n,w=i.slice(0,g-2),E=Ze.size(w),v=a[1].dims[2]/4,D=a[0].dataType,B=Nr(n.k),x=Nr(v),S=w.concat([p,C]),F=128,R=C%8===0?8:C%4===0?4:1,K=F/R,L=K*x*8,N=L/B,V=L/n.blockSize,d=Ze.size(S)/R,k=[],e=[E,p,h/B],u=Ze.convertShape(a[1].dims).slice();u.splice(-1,1,v/x),k.push(...et(e)),k.push(...et(u)),k.push(...et(a[2].dims)),a.length===4&&k.push(...et(Ze.convertShape(a[3].dims)));let y=[E,p,C];k.push(...et(y));let $=T=>{let O=e.length,Ce=rA("a",a[0].dataType,O,B),Ae=rA("b",12,u.length,x),be=rA("scales",a[2].dataType,a[2].dims.length),he=[Ce,Ae,be],Ee=a.length===4?rA("zero_points",12,a[3].dims.length):void 0;Ee&&he.push(Ee);let ke=y.length,De=YA("output",a[0].dataType,ke),Re=us(a[0].dataType),Qe=()=>{switch(B){case 1:return` + let a_data0 = vec4<${Re}>(sub_a[word_offset], sub_a[word_offset + 1], sub_a[word_offset + 2], sub_a[word_offset + 3]); + let a_data1 = vec4<${Re}>(sub_a[word_offset + 4], sub_a[word_offset + 5], sub_a[word_offset + 6], sub_a[word_offset + 7]);`;case 2:return` + let a_data0 = vec4<${Re}>(sub_a[word_offset], sub_a[word_offset + 1]); + let a_data1 = vec4<${Re}>(sub_a[word_offset + 2], sub_a[word_offset + 3]);`;case 4:return` + let a_data0 = sub_a[word_offset]; + let a_data1 = sub_a[word_offset + 1];`;default:throw new Error(`${B}-component is not supported.`)}};return` + var sub_a: array<${Ce.type.value}, ${N}>; + var inter_results: array, ${R}>; + ${T.declareVariables(...he,De)} + ${T.mainStart([K,R,1])} + let output_indices = ${De.offsetToIndices(`workgroup_index * ${R}`)}; + let col = output_indices[2]; + let row = output_indices[1]; + let batch = output_indices[0]; + let n_blocks_per_col = uniforms.b_shape[1]; + let num_tiles = (n_blocks_per_col - 1) / ${V} + 1; + + // Loop over shared dimension. + for (var tile: u32 = 0; tile < num_tiles; tile += 1) { + let a_col_start = tile * ${N}; + // load one tile A data into shared memory. + for (var a_offset = local_idx; a_offset < ${N}; a_offset += ${F}) + { + let a_col = a_col_start + a_offset; + if (a_col < uniforms.a_shape[2]) + { + sub_a[a_offset] = ${Ce.getByIndices(`${Ce.type.indices}(batch, row, a_col)`)}; + } else { + sub_a[a_offset] = ${Ce.type.value}(0); + } + } + workgroupBarrier(); + + // each thread process one block + let b_row = col + local_id.y; + let block = tile * ${V} + local_id.x; + ${Ee?` + let zero_point_bytes_per_col = (n_blocks_per_col + 1) / 2; + let zero_point_byte_count = b_row * zero_point_bytes_per_col + (block >> 0x1u); + let zero_point_word_index = zero_point_byte_count >> 0x2u; + let zero_point_byte_offset = zero_point_byte_count & 0x3u; + let zero_point_nibble_offset: u32 = block & 0x1u; + let zero_point_bits_offset = (zero_point_byte_offset << 3) + (zero_point_nibble_offset << 2); + let zero_point_word = ${Ee.getByOffset("zero_point_word_index")} >> zero_point_bits_offset; + let zero_point = ${Re}((zero_point_word) & 0xFu);`:` + // The default zero point is 8 for unsigned 4-bit quantization. + let zero_point = ${Re}(8);`} + let scale = ${be.getByOffset("b_row * n_blocks_per_col + block")}; + let b_data = ${Ae.getByIndices(`${Ae.type.indices}(b_row, block, 0)`)}; + var word_offset = local_id.x * ${n.blockSize/B}; + for (var i: u32 = 0; i < ${x}; i++) { + ${Qe()} + let b_value = ${x===1?"b_data":"b_data[i]"}; + let b_value_lower = unpack4xU8(b_value & 0x0F0F0F0Fu); + let b_value_upper = unpack4xU8((b_value >> 4) & 0x0F0F0F0Fu); + let b_quantized_values = mat2x4<${Re}>(${Array.from({length:4},(ue,ee)=>`${Re}(b_value_lower[${ee}]), ${Re}(b_value_upper[${ee}])`).join(", ")}); + let b_dequantized_values = (b_quantized_values - mat2x4<${Re}>(${Array(8).fill("zero_point").join(",")})) * scale; + inter_results[local_id.y][local_id.x] += ${Array.from({length:2},(ue,ee)=>`${`dot(a_data${ee}, b_dequantized_values[${ee}])`}`).join(" + ")}; + word_offset += ${8/B}; + } + workgroupBarrier(); + } + + if (local_idx < ${R}) { + var output_value: ${De.type.value} = ${De.type.value}(0); + for (var b = 0u; b < ${K}; b++) { + output_value += inter_results[local_idx][b]; + } + if (col + local_idx < uniforms.output_shape[2]) + { + ${De.setByIndices(`${De.type.indices}(batch, row, col + local_idx)`,"output_value")} + } + } + }`};return{name:"BlockwiseMatMulNBits32",shaderCache:{hint:`${n.blockSize};${B};${x};${K};${R}`,inputDependencies:Array(a.length).fill("rank")},getRunData:()=>({outputs:[{dims:S,dataType:D}],dispatchGroup:{x:d},programUniforms:k}),getShaderSource:$}},IC=(a,n)=>{cp(a.inputs,n),n.blockSize===32&&a.adapterInfo.isVendor("intel")&&a.adapterInfo.isArchitecture("gen-12lp")?a.compute(dp(a.inputs,n)):a.compute(up(a.inputs,n))},wC=a=>Xt(a)}),fp,gp,pp,mp,hp,Cp,bp,Ip,kC,pI=bA(()=>{ot(),mt(),bt(),fp=a=>{if(!a||a.length<1)throw new Error("Too few inputs");if(a[0].dataType!==1&&a[0].dataType!==10)throw new Error("Input type must be float or float16.");if(a.length>=2){let n=a[0].dims.length*2===a[1].dims[0];if(a.length===4&&(n=a[3].dims[0]*2===a[1].dims[0]),!n)throw new Error("The pads should be a 1D tensor of shape [2 * input_rank] or [2 * num_axes].")}},gp=(a,n,i)=>{let g="";for(let p=n-1;p>=0;--p)g+=` + k = i32(${a.indicesGet("indices",p)}) - ${JA("uniforms.pads",p,i)}; + if (k < 0) { + break; + } + if (k >= i32(${JA("uniforms.x_shape",p,n)})) { + break; + } + offset += k * i32(${JA("uniforms.x_strides",p,n)}); + `;return` + value = ${a.type.value}(uniforms.constant_value); + for (var i = 0; i < 1; i++) { + var offset = 0; + var k = 0; + ${g} + value = x[offset]; + } + `},pp=(a,n,i)=>{let g="";for(let p=n-1;p>=0;--p)g+=` + k = i32(${a.indicesGet("indices",p)}) - ${JA("uniforms.pads",p,i)}; + if (k < 0) { + k = -k; + } + { + let _2n_1 = 2 * (i32(${JA("uniforms.x_shape",p,n)}) - 1); + k = k % _2n_1; + if(k >= i32(${JA("uniforms.x_shape",p,n)})) { + k = _2n_1 - k; + } + } + offset += k * i32(${JA("uniforms.x_strides",p,n)}); + `;return` + var offset = 0; + var k = 0; + ${g} + value = x[offset]; + `},mp=(a,n,i)=>{let g="";for(let p=n-1;p>=0;--p)g+=` + k = i32(${a.indicesGet("indices",p)}) - ${JA("uniforms.pads",p,i)}; + if (k < 0) { + k = 0; + } + if (k >= i32(${JA("uniforms.x_shape",p,n)})) { + k = i32(${JA("uniforms.x_shape",p,n)}) - 1; + } + offset += k * i32(${JA("uniforms.x_strides",p,n)}); + `;return` + var offset = 0; + var k = 0; + ${g} + value = x[offset]; + `},hp=(a,n,i)=>{let g="";for(let p=n-1;p>=0;--p)g+=` + k = i32(${a.indicesGet("indices",p)}) - ${JA("uniforms.pads",p,i)}; + if (k < 0) { + k += i32(${JA("uniforms.x_shape",p,n)}]); + } + if (k >= i32(${JA("uniforms.x_shape",p,n)})) { + k -= i32(${JA("uniforms.x_shape",p,n)}); + } + offset += k * i32(${JA("uniforms.x_strides",p,n)}); + `;return` + var offset = 0; + var k = 0; + ${g} + value = x[offset]; + `},Cp=(a,n,i)=>{switch(i.mode){case 0:return gp(a,n,i.pads.length);case 1:return pp(a,n,i.pads.length);case 2:return mp(a,n,i.pads.length);case 3:return hp(a,n,i.pads.length);default:throw new Error("Invalid mode")}},bp=(a,n)=>{let i=Ze.padShape(a[0].dims.slice(),n.pads),g=a[0].dims,p=Ze.size(i),h=[{type:12,data:p},{type:6,data:n.pads}],C=a.length>=3&&a[2].data;n.mode===0&&h.push({type:C?a[2].dataType:1,data:n.value}),h.push(...et(a[0].dims,i));let w=["rank"],E=v=>{let D=YA("output",a[0].dataType,i.length),B=rA("x",a[0].dataType,g.length),x=B.type.value,S=Cp(D,g.length,n),F=[{name:"output_size",type:"u32"},{name:"pads",type:"i32",length:n.pads.length}];return n.mode===0&&F.push({name:"constant_value",type:C?x:"f32"}),` + ${v.registerUniforms(F).declareVariables(B,D)} + ${v.mainStart()} + ${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + + let indices = ${D.offsetToIndices("global_idx")}; + + var value = ${x}(0); + ${S} + output[global_idx] = value; + }`};return{name:"Pad",shaderCache:{hint:`${n.mode}${C}`,inputDependencies:w},getRunData:()=>({outputs:[{dims:i,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(Ze.size(i)/64)},programUniforms:h}),getShaderSource:E}},Ip=(a,n)=>{if(a.length>1){let i=a[1].getBigInt64Array(),g=a.length>=3&&a[2].data?a[2].dataType===10?a[2].getUint16Array()[0]:a[2].getFloat32Array()[0]:0,p=a[0].dims.length,h=new Int32Array(2*p).fill(0);if(a.length>=4){let w=a[3].getBigInt64Array();for(let E=0;Eh[Number(E)]=Number(w));let C=[];return h.forEach(w=>C.push(w)),{mode:n.mode,value:g,pads:C}}else return n},kC=(a,n)=>{fp(a.inputs);let i=Ip(a.inputs,n);a.compute(bp(a.inputs,i),{inputs:[0]})}}),Lo,v2,x2,y2,D2,wp,kp,T2,G2,EC,MC,P2,BC,vC,Q2,xC,yC,DC,TC,mI=bA(()=>{Na(),ot(),mt(),bt(),Lo=a=>{if(Ir.webgpu.validateInputContent&&(!a||a.length!==1))throw new Error("Pool ops requires 1 input.")},v2=(a,n,i)=>{let g=n.format==="NHWC",p=a.dims.slice();g&&p.splice(1,0,p.pop());let h=Object.hasOwnProperty.call(n,"dilations"),C=n.kernelShape.slice(),w=n.strides.slice(),E=h?n.dilations.slice():[],v=n.pads.slice();Z0.adjustPoolAttributes(i,p,C,w,E,v);let D=Z0.computePoolOutputShape(i,p,w,E,C,v,n.autoPad),B=Object.assign({},n);h?Object.assign(B,{kernelShape:C,strides:w,pads:v,dilations:E,cacheKey:n.cacheKey}):Object.assign(B,{kernelShape:C,strides:w,pads:v,cacheKey:n.cacheKey});let x=D.slice();return x.push(x.splice(1,1)[0]),[B,g?x:D]},x2=(a,n)=>{let i=n.format==="NHWC",g=Ze.size(a),p=Ze.size(n.kernelShape),h=[{type:12,data:g},{type:12,data:p}],C=[{name:"outputSize",type:"u32"},{name:"kernelSize",type:"u32"}];if(n.kernelShape.length<=2){let w=n.kernelShape[n.kernelShape.length-1],E=n.strides[n.strides.length-1],v=n.pads[n.pads.length/2-1],D=n.pads[n.pads.length-1],B=!!(v+D);h.push({type:12,data:w},{type:12,data:E},{type:12,data:v},{type:12,data:D}),C.push({name:"kw",type:"u32"},{name:"sw",type:"u32"},{name:"pwStart",type:"u32"},{name:"pwEnd",type:"u32"});let x=!1;if(n.kernelShape.length===2){let S=n.kernelShape[n.kernelShape.length-2],F=n.strides[n.strides.length-2],R=n.pads[n.pads.length/2-2],K=n.pads[n.pads.length-2];x=!!(R+K),h.push({type:12,data:S},{type:12,data:F},{type:12,data:R},{type:12,data:K}),C.push({name:"kh",type:"u32"},{name:"sh",type:"u32"},{name:"phStart",type:"u32"},{name:"phEnd",type:"u32"})}return[h,C,!0,B,x]}else{if(i)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let w=Ze.computeStrides(n.kernelShape);h.push({type:12,data:w},{type:12,data:n.pads},{type:12,data:n.strides}),C.push({name:"kernelStrides",type:"u32",length:w.length},{name:"pads",type:"u32",length:n.pads.length},{name:"strides",type:"u32",length:n.strides.length});let E=n.pads.reduce((v,D)=>v+D);return[h,C,!!E,!1,!1]}},y2=(a,n,i,g,p,h,C,w,E,v,D,B)=>{let x=p.format==="NHWC",S=n.type.value,F=YA("output",n.type.tensor,g);if(p.kernelShape.length<=2){let R="",K="",L="",N=i-(x?2:1);if(D?R=` + for (var i: u32 = 0u; i < uniforms.kw; i++) { + xIndices[${N}] = indices[${N}] * uniforms.sw - uniforms.pwStart + i; + if (xIndices[${N}] < 0 || xIndices[${N}] + >= uniforms.x_shape[${N}]) { + pad++; + continue; + } + let x_val = x[${n.indicesToOffset("xIndices")}]; + ${h} + }`:R=` + for (var i: u32 = 0u; i < uniforms.kw; i++) { + xIndices[${N}] = indices[${N}] * uniforms.sw - uniforms.pwStart + i; + let x_val = x[${n.indicesToOffset("xIndices")}]; + ${h} + }`,p.kernelShape.length===2){let V=i-(x?3:2);B?K=` + for (var j: u32 = 0u; j < uniforms.kh; j++) { + xIndices[${V}] = indices[${V}] * uniforms.sh - uniforms.phStart + j; + if (xIndices[${V}] < 0 || xIndices[${V}] >= uniforms.x_shape[${V}]) { + pad += i32(uniforms.kw); + continue; + } + `:K=` + for (var j: u32 = 0u; j < uniforms.kh; j++) { + xIndices[${V}] = indices[${V}] * uniforms.sh - uniforms.phStart + j; + `,L=` + } + `}return` + ${a.registerUniforms(E).declareVariables(n,F)} + + ${a.mainStart()} + ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + + let indices = ${F.offsetToIndices("global_idx")}; + var xIndices = ${F.offsetToIndices("global_idx")}; + + var value = ${S}(${w}); + var pad = 0; + ${K} + ${R} + ${L} + ${C} + + output[global_idx] = value; + }`}else{if(x)throw new Error("Pooling with kernelShape.length > 2 is not supported for NHWC format.");let R=p.kernelShape.length,K=p.pads.length,L="";return v?L=` + if (xIndices[j] >= uniforms.x_shape[j]) { + pad++; + isPad = true; + break; + } + } + if (!isPad) { + let x_val = x[${n.indicesToOffset("xIndices")}]; + ${h} + }`:L=` + } + let x_val = x[${n.indicesToOffset("xIndices")}]; + ${h} + `,` + ${a.registerUniforms(E).declareVariables(n,F)} + + ${a.mainStart()} + ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + let indices = ${F.offsetToIndices("global_idx")}; + var xIndices = ${F.offsetToIndices("global_idx")}; + + var offsets: array; + + var value = ${S}(${w}); + var pad = 0; + var isPad = false; + + for (var i: u32 = 0u; i < uniforms.kernelSize; i++) { + var offset = i; + for (var j = 0u; j < ${R-1}u; j++) { + offsets[j] = offset / ${JA("uniforms.kernelStrides","j",R)}; + offset -= offsets[j] * ${JA("uniforms.kernelStrides","j",R)}; + } + offsets[${R-1}] = offset; + + isPad = false; + for (var j = ${i-R}u; j < ${i}u; j++) { + xIndices[j] = indices[j] * ${JA("uniforms.strides",`j - ${i-R}u`,R)} + + offsets[j - ${i-R}u] - ${JA("uniforms.pads","j - 2u",K)}; + ${L} + } + ${C} + + output[global_idx] = value; + }`}},D2=a=>`${a.format};${a.ceilMode};${a.autoPad};${a.kernelShape.length}`,wp=a=>`${D2(a)};${a.countIncludePad}`,kp=a=>`${D2(a)};${a.storageOrder};${a.dilations}`,T2=a=>({format:a.format,autoPad:["NOTSET","VALID","SAME_UPPER","SAME_LOWER"][a.auto_pad],ceilMode:a.ceil_mode,kernelShape:a.kernel_shape,strides:a.strides,pads:a.pads}),G2=(a,n,i,g)=>{let[p,h]=v2(n,g,i),C=rA("x",n.dataType,n.dims.length),w=C.type.value,E="value += x_val;",v="";p.countIncludePad?v+=`value /= ${w}(uniforms.kernelSize);`:v+=`value /= ${w}(i32(uniforms.kernelSize) - pad);`;let[D,B,x,S,F]=x2(h,p);D.push(...et(n.dims,h));let R=["rank"];return{name:a,shaderCache:{hint:`${g.cacheKey};${x};${S};${F}`,inputDependencies:R},getRunData:()=>({outputs:[{dims:h,dataType:n.dataType}],dispatchGroup:{x:Math.ceil(Ze.size(h)/64)},programUniforms:D}),getShaderSource:K=>y2(K,C,n.dims.length,h.length,p,E,v,0,B,x,S,F)}},EC=a=>{let n=a.count_include_pad!==0,i=T2(a);if(i.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for AveragePool");let g={countIncludePad:n,...i,cacheKey:""};return{...g,cacheKey:wp(g)}},MC=(a,n)=>{Lo(a.inputs),a.compute(G2("AveragePool",a.inputs[0],!1,n))},P2={autoPad:"",ceilMode:0,countIncludePad:!1,kernelShape:[],strides:[],pads:[],storageOrder:0,dilations:[]},BC=a=>{let n=a.format;return{format:n,...P2,cacheKey:n}},vC=(a,n)=>{Lo(a.inputs),a.compute(G2("GlobalAveragePool",a.inputs[0],!0,n))},Q2=(a,n,i,g)=>{let[p,h]=v2(n,g,i),C=` + value = max(x_val, value); + `,w="",E=rA("x",n.dataType,n.dims.length),v=["rank"],[D,B,x,S,F]=x2(h,p);return D.push(...et(n.dims,h)),{name:a,shaderCache:{hint:`${g.cacheKey};${x};${S};${F}`,inputDependencies:v},getRunData:()=>({outputs:[{dims:h,dataType:n.dataType}],dispatchGroup:{x:Math.ceil(Ze.size(h)/64)},programUniforms:D}),getShaderSource:R=>y2(R,E,n.dims.length,h.length,p,C,w,n.dataType===10?-65504:-1e5,B,x,S,F)}},xC=(a,n)=>{Lo(a.inputs),a.compute(Q2("MaxPool",a.inputs[0],!1,n))},yC=a=>{let n=a.storage_order,i=a.dilations,g=T2(a);if(n!==0)throw new Error("column major storage order is not yet supported for MaxPool");if(g.ceilMode!==0)throw new Error("using ceil() in shape computation is not yet supported for MaxPool");let p={storageOrder:n,dilations:i,...g,cacheKey:""};return{...p,cacheKey:kp(p)}},DC=a=>{let n=a.format;return{format:n,...P2,cacheKey:n}},TC=(a,n)=>{Lo(a.inputs),a.compute(Q2("GlobalMaxPool",a.inputs[0],!0,n))}}),Ep,Mp,GC,PC,hI=bA(()=>{ot(),mt(),Wr(),bt(),Ep=(a,n)=>{if(a.length<2||a.length>3)throw new Error("DequantizeLinear requires 2 or 3 inputs.");if(a.length===3&&a[1].dims===a[2].dims)throw new Error("x-scale and x-zero-point must have the same shape.");if(a.length===3&&a[0].dataType!==a[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(a[0].dataType===6&&a.length>2)throw new Error("In the case of dequantizing int32 there is no zero point.");if(a[1].dims.length!==0&&a[1].dims.length!==1&&a[1].dims.length!==a[0].dims.length)throw new Error("scale input must be a scalar, a 1D tensor, or have the same rank as the input tensor.");if(a.length>2){if(a[0].dataType!==a[2].dataType)throw new Error("x and x-zero-point must have the same data type.");if(a[1].dims.length!==a[2].dims.length)throw new Error("scale and zero-point inputs must have the same rank.");if(!a[1].dims.map((i,g)=>i===a[2].dims[g]).reduce((i,g)=>i&&g,!0))throw new Error("scale and zero-point inputs must have the same shape.")}if(n.blockSize>0){if(a[1].dims.length===0||a[1].dims.length===1&&a[1].dims[0]===1)throw new Error("blockSize must be set only for block quantization.");if(!a[1].dims.map((p,h)=>h===n.axis||p===a[0].dims[h]).reduce((p,h)=>p&&h,!0))throw new Error("For block qunatization, scale input shape to match the input shape except for the axis");if(a[1].dims.length!==a[0].dims.length)throw new Error("For block qunatization the scale input rank must be the same as the x rank.");let i=a[0].dims[n.axis],g=a[1].dims[n.axis];if(n.blockSizeMath.ceil(i/(g-1)-1))throw new Error("blockSize must be with in the range [ceil(dI / Si), ceil(dI / (Si - 1) - 1)].")}},Mp=(a,n)=>{let i=Ze.normalizeAxis(n.axis,a[0].dims.length),g=a[0].dataType,p=g===3,h=a[0].dims,C=a[1].dataType,w=Ze.size(h),E=g===3||g===2,v=E?[Math.ceil(Ze.size(a[0].dims)/4)]:a[0].dims,D=a[1].dims,B=a.length>2?a[2]:void 0,x=B?E?[Math.ceil(Ze.size(B.dims)/4)]:B.dims:void 0,S=D.length===0||D.length===1&&D[0]===1,F=S===!1&&D.length===1,R=Nr(w),K=S&&(!E||R===4),L=K?R:1,N=K&&!E?R:1,V=rA("input",E?12:g,v.length,N),d=rA("scale",C,D.length),k=B?rA("zero_point",E?12:g,x.length):void 0,e=YA("output",C,h.length,L),u=[V,d];k&&u.push(k);let y=[v,D];B&&y.push(x);let $=[{type:12,data:w/L},{type:12,data:i},{type:12,data:n.blockSize},...et(...y,h)],T=O=>{let Ce=[{name:"output_size",type:"u32"},{name:"axis",type:"u32"},{name:"block_size",type:"u32"}];return` + ${O.registerUniforms(Ce).declareVariables(...u,e)} + ${O.mainStart()} + ${O.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let output_indices = ${e.offsetToIndices("global_idx")}; + + // Set input x + ${E?` + let input = ${V.getByOffset("global_idx / 4")}; + let x_vec = ${p?"unpack4xI8(input)":"unpack4xU8(input)"}; + let x_value = ${L===1?"x_vec[global_idx % 4]":"x_vec"};`:`let x_value = ${V.getByOffset("global_idx")};`}; + + // Set scale input + ${S?`let scale_value= ${d.getByOffset("0")}`:F?` + let scale_index = ${e.indicesGet("output_indices","uniforms.axis")}; + let scale_value= ${d.getByOffset("scale_index")};`:` + var scale_indices: ${d.type.indices} = output_indices; + let index = ${d.indicesGet("scale_indices","uniforms.axis")} / uniforms.block_size; + ${d.indicesSet("scale_indices","uniforms.axis","index")}; + let scale_value= ${d.getByIndices("scale_indices")};`}; + + // Set zero-point input + ${k?S?E?` + let zero_point_input = ${k.getByOffset("0")}; + let zero_point_vec = ${p?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value= zero_point_vec[0]`:`let zero_point_value = ${k.getByOffset("0")}`:F?E?` + let zero_point_index = ${e.indicesGet("output_indices","uniforms.axis")}; + let zero_point_input = ${k.getByOffset("zero_point_index / 4")}; + let zero_point_vec = ${p?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value = zero_point_vec[zero_point_index % 4]`:` + let zero_point_index = ${e.indicesGet("output_indices","uniforms.axis")}; + let zero_point_value = ${k.getByOffset("zero_point_index")};`:E?` + let zero_point_offset = ${d.indicesToOffset("scale_indices")}; + let zero_point_input = ${k.getByOffset("zero_point_offset / 4")}; + let zero_point_vec = ${p?"unpack4xI8(zero_point_input)":"unpack4xU8(zero_point_input)"}; + let zero_point_value = zero_point_vec[zero_point_offset % 4];`:`let zero_point_value = ${k.getByIndices("scale_indices")};`:`let zero_point_value = ${E?p?"i32":"u32":V.type.value}(0);`}; + // Compute and write output + ${e.setByOffset("global_idx",`${e.type.value}(x_value - zero_point_value) * scale_value`)}; + }`};return{name:"DequantizeLinear",shaderCache:{hint:n.cacheKey,inputDependencies:k?["rank","rank","rank"]:["rank","rank"]},getShaderSource:T,getRunData:()=>({outputs:[{dims:h,dataType:C}],dispatchGroup:{x:Math.ceil(w/L/64),y:1,z:1},programUniforms:$})}},GC=(a,n)=>{Ep(a.inputs,n),a.compute(Mp(a.inputs,n))},PC=a=>Xt({axis:a.axis,blockSize:a.blockSize})}),Bp,vp,QC,CI=bA(()=>{Na(),ot(),bt(),Bp=(a,n,i)=>{let g=a===n,p=an&&i>0;if(g||p||h)throw new Error("Range these inputs' contents are invalid.")},vp=(a,n,i,g)=>{let p=Math.abs(Math.ceil((n-a)/i)),h=[p],C=p,w=[{type:12,data:C},{type:g,data:a},{type:g,data:i},...et(h)],E=v=>{let D=YA("output",g,h.length),B=D.type.value,x=[{name:"outputSize",type:"u32"},{name:"start",type:B},{name:"delta",type:B}];return` + ${v.registerUniforms(x).declareVariables(D)} + ${v.mainStart()} + ${v.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + output[global_idx] = uniforms.start + ${B}(global_idx) * uniforms.delta; + }`};return{name:"Range",shaderCache:{hint:`${g}`},getShaderSource:E,getRunData:()=>({outputs:[{dims:h,dataType:g}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:w})}},QC=a=>{let n=0,i=0,g=0;a.inputs[0].dataType===6?(n=a.inputs[0].getInt32Array()[0],i=a.inputs[1].getInt32Array()[0],g=a.inputs[2].getInt32Array()[0]):a.inputs[0].dataType===1&&(n=a.inputs[0].getFloat32Array()[0],i=a.inputs[1].getFloat32Array()[0],g=a.inputs[2].getFloat32Array()[0]),Ir.webgpu.validateInputContent&&Bp(n,i,g),a.compute(vp(n,i,g,a.inputs[0].dataType),{inputs:[]})}}),xp,F2,S2,yp,FC,SC,bI=bA(()=>{ot(),mt(),Wr(),bt(),xp=(a,n,i,g)=>{if(a!=="none"&&g!=="i32"&&g!=="u32"&&g!=="f32")throw new Error(`Input ${g} is not supported with reduction ${a}.`);let p=`{ + var oldValue = 0; + loop { + let newValueF32 =`,h=`; + let newValue = bitcast(newValueF32); + let res = atomicCompareExchangeWeak(&${n}, oldValue, newValue); + if res.exchanged { + break; + } + oldValue = res.old_value; + } + }`;switch(a){case"none":return`${n}=${i};`;case"add":return g==="i32"||g==="u32"?`atomicAdd(&${n}, bitcast<${g}>(${i}));`:` + ${p}bitcast<${g}>(oldValue) + (${i})${h}`;case"max":return g==="i32"||g==="u32"?`atomicMax(&${n}, bitcast<${g}>(${i}));`:` + ${p}max(bitcast(oldValue), (${i}))${h}`;case"min":return g==="i32"||g==="u32"?`atomicMin(&${n}, bitcast<${g}>(${i}));`:`${p}min(bitcast<${g}>(oldValue), (${i}))${h}`;case"mul":return`${p}(bitcast<${g}>(oldValue) * (${i}))${h}`;default:throw new Error(`Reduction ${a} is not supported.`)}},F2=(a,n)=>`${a===1?` + let element_count_dim = uniforms.output_strides; + let dim_value = uniforms.output_shape;`:` + let element_count_dim = uniforms.output_strides[${n?"i - indices_start":"i"}]; + let dim_value = uniforms.output_shape[${n?"i - indices_start":"i"} + uniforms.last_index_dimension];`} + + if (index >= 0) { + if (index >= i32(dim_value)) { + index = i32(dim_value - 1); + } + } else { + if (index < -i32(dim_value)) { + index = 0; + } else { + index += i32(dim_value); + } + } + data_offset += u32((u32(index) * element_count_dim));`,S2=(a,n,i)=>`for (var i = 0u; i < uniforms.num_updates_elements; i++) { + let value = updates[uniforms.num_updates_elements * ${i?"global_idx":"idx"} + i]; + ${xp(a.reduction,"output[data_offset + i]","value",n)} + }`,yp=(a,n)=>{let i=a[0].dims,g=a[1].dims,p=i,h=1,C=Math.ceil(Ze.size(g)/h),w=g[g.length-1],E=Ze.sizeFromDimension(i,w),v=Ze.sizeFromDimension(g,0)/w,D=[{type:12,data:C},{type:12,data:w},{type:12,data:E},...et(a[1].dims,a[2].dims,p)],B=x=>{let S=rA("indices",a[1].dataType,a[1].dims.length),F=rA("updates",a[2].dataType,a[2].dims.length,h),R=n.reduction!=="none"&&n.reduction!==""?lh("output",a[0].dataType,p.length):YA("output",a[0].dataType,p.length,h);return` + ${x.registerUniform("output_size","u32").registerUniform("last_index_dimension","u32").registerUniform("num_updates_elements","u32").declareVariables(S,F,R)} + ${x.mainStart()} + ${x.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + var hasDuplicates = false; + if (${n.reduction==="none"}) { + for (var i = 0; i < ${v}; i = i + 1) { + for (var j = i + 1; j < ${v}; j = j + 1) { + var index_i = i32(indices[i].x); + var index_j = i32(indices[j].x); + if (index_i == index_j) { + hasDuplicates = true; + break; + } + } + if (hasDuplicates) { + break; + } + } + } + + if (${n.reduction==="none"} && hasDuplicates) { + if (global_idx != 0u) { + return; + } + // Process each index-update pair individually when duplicates exist + for (var idx = 0u; idx < ${v}u; idx++) { + var data_offset = 0u; + for (var i = 0u; i < uniforms.last_index_dimension; i++) { + var index = i32(indices[idx * uniforms.last_index_dimension + i].x); + ${F2(i.length,!1)} + } + ${S2(n,R.type.value,!1)} + } + return; + } + + var data_offset = 0u; + var indices_start = uniforms.last_index_dimension * global_idx; + var indices_end = indices_start + uniforms.last_index_dimension; + for (var i = indices_start; i < indices_end; i++) { + var index = i32(indices[i].x); + ${F2(i.length,!0)} + } + ${S2(n,R.type.value,!0)} + }`};return{name:"ScatterND",shaderCache:{hint:`${n.cacheKey}_${n.reduction}`,inputDependencies:["rank","rank"]},getRunData:()=>({outputs:[{dims:p,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(C/64)},programUniforms:D}),getShaderSource:B}},FC=a=>Xt({reduction:a.reduction}),SC=(a,n)=>{a.compute(yp(a.inputs,n),{inputs:[a.inputs[1],a.inputs[2]],outputs:[]})}}),Dp,Tp,Gp,O2,Pp,Qp,Fp,Sp,Op,zp,Np,Lp,z2,_p,Rp,jp,Wp,Yp,OC,zC,II=bA(()=>{ot(),mt(),Wr(),bt(),Dp=(a,n)=>{if(a.every(i=>i>0||(()=>{throw new Error("Resize requires scales input values to be positive")})),a.length>0){if(n.mode==="linear"){if(!(a.length===2||a.length===3||a.length===4&&a[0]===1&&a[1]===1||a.length===4&&a[0]===1&&a[3]===1||a.length===5&&a[0]===1&&a[1]===1))throw new Error(`For linear mode, Resize requires scales to be 2D, 3D, 4D with either two outermost or one innermost and + one outermost scale values equal to 1, or 5D with two outermost scale values equal to 1`)}else if(n.mode==="cubic"&&!(a.length===2||a.length===4&&a[0]===1&&a[1]===1||a.length===4&&a[0]===1&&a[3]===1))throw new Error("Resize requires scales input size to be 2 or 4 for cubic mode")}},Tp=(a,n,i)=>{n.every(p=>p>=0&&p{throw new Error("Resize requires axes input values to be positive and less than rank")}));let g=new Array(i).fill(1);return n.forEach((p,h)=>g[p]=a[h]),g},Gp=(a,n,i,g,p,h)=>{let[C,w,E]=i>10?[1,2,3]:[-1,a.length>1?1:-1,-1],v=a[0].dims.length;if(C>0&&a.length>C&&a[C].dims.length>0)a[C].getFloat32Array().forEach(D=>h.push(D));else if(n.coordinateTransformMode==="tf_crop_and_resize")throw new Error("Resize requires RoI input to be specified when coordinateTransformMode is tfCropAndResize");if(w>0&&a.length>w&&a[w].dims.length===1&&a[w].dims[0]>0){if(a[w].getFloat32Array().forEach(D=>g.push(D)),g.length!==0&&g.length!==v&&i>=18&&g.length!==n.axes.length)throw new Error("Resize requires scales input size to be same as input rank or axes size for opset 18 and up");Dp(g,n),n.axes.length>0&&Tp(g,n.axes,v).forEach((D,B)=>g[B]=D)}if(E>0&&a.length>E&&a[E].dims.length===1&&a[E].dims[0]>0&&(a[E].getBigInt64Array().forEach(D=>p.push(Number(D))),p.length!==0&&p.length!==v&&i>=18&&p.length!==n.axes.length))throw new Error("Resize requires sizes input size to be same as input rank or axes size for opset 18 and up");if(n.axes.length>0){if(g.length!==0&&g.length!==n.axes.length)throw new Error('Resize requires "scales" input size to be of axes rank when axes attributes is specified');if(p.length!==0&&p.length!==n.axes.length)throw new Error('Resize requires "sizes" input size to be of rank axes rank when axes attributes is specified')}if(typeof g<"u"&&typeof p<"u"&&g.length>0&&p.length>v)throw new Error("Resize requires only of scales or sizes to be specified")},O2=(a,n,i,g)=>` + // The whole part and the fractional part are calculated separately due to inaccuracy of floating + // point division. As an example, f32(21) / f32(7) may evaluate to 2.99... instead of 3, causing an + // offset-by-one error later in floor(). + let big = (${a}) * (${n}); + let whole = ${g}(big / (${i})); + let fract = ${g}(big % (${i})) / ${g}(${i}); + return whole + fract; +`,Pp=(a,n)=>`fn getOriginalCoordinateFromResizedCoordinate(xResized: u32, xScale: f32, lengthResized: u32, + lengthOriginal: u32, roiStart: f32, roiEnd: f32) -> ${n} { `+(()=>{switch(a){case"asymmetric":return` + if (xScale < 1.0 || floor(xScale) != xScale) { + return ${n}(xResized) / ${n}(xScale); + } else { + ${O2("xResized","lengthOriginal","lengthResized",n)} + } + `;case"pytorch_half_pixel":return`if (lengthResized > 1) { + return (${n}(xResized) + 0.5) / ${n}(xScale) - 0.5; + } else { + return 0.0; + }`;case"tf_half_pixel_for_nn":return`return (${n}(xResized) + 0.5) / ${n}(xScale);`;case"align_corners":return`if (lengthResized == 1) { + return 0.0; + } else { + ${O2("xResized","lengthOriginal - 1","lengthResized - 1",n)} + }`;case"tf_crop_and_resize":return`if (lengthResized > 1) { + return ${n}(roiStart) * ${n}(lengthOriginal - 1) + + (${n}(xResized) * ${n}(roiEnd - roiStart) * ${n}(lengthOriginal - 1)) / + ${n}(lengthResized - 1); + } else { + return 0.5 * ${n}(roiStart + roiEnd) * ${n}(lengthOriginal - 1); + }`;case"half_pixel_symmetric":return`const outputWidth = ${n}xScale * ${n}(lengthResized); + const adjustment = ${n}(lengthResized) / outputWidth; + const center = ${n}(lengthOriginal) / 2; + const offset = center * (1 - adjustment); + return offset + ((${n}(xResized) + 0.5) / ${n}(xScale)) - 0.5;`;case"half_pixel":return`return ((${n}(xResized) + 0.5) / ${n}(xScale)) - 0.5;`;default:throw new Error(`Coordinate transform mode ${a} is not supported`)}})()+"}",Qp=(a,n,i)=>`fn getNearestPixelFromOriginal(xOriginal: ${i}, isDownSample: bool) -> ${i} {`+(()=>{switch(a){case"round_prefer_ceil":return"if (fract(xOriginal) == 0.5) { return ceil(xOriginal); } else { return round(xOriginal); }";case"floor":return"return floor(xOriginal);";case"ceil":return"return ceil(xOriginal);";case"round_prefer_floor":return"if (fract(xOriginal) == 0.5) { return floor(xOriginal); } else { return round(xOriginal); }";case"simple":default:if(n<11)return"if (isDownSample) { return ceil(xOriginal); } else { return xOriginal; }";throw new Error(`Nearest mode ${a} is not supported`)}})()+"}",Fp=(a,n,i)=>{let g=new Array(i).fill(0).concat(new Array(i).fill(1)),p=a.length===0?g:a.slice();return n.length>0?(n.forEach((h,C)=>{g[h]=p[C],g[C+i]=p[n.length+C]}),g):p},Sp=(a,n,i,g)=>{let p=[];if(i.length>0)if(g.length>0){if(a.forEach(h=>p.push(h)),Math.max(...g)>a.length)throw new Error("axes is out of bound");g.forEach((h,C)=>p[h]=i[C])}else i.forEach(h=>p.push(h));else{if(n.length===0)throw new Error("Resize requires either scales or sizes.");p=a.map((h,C)=>Math.round(h*n[C]))}return p},Op=(a,n,i)=>{let g=(()=>{switch(i.keepAspectRatioPolicy){case"not_larger":return i.axes.length>0?Math.min(...i.axes.map(h=>n[h]),Number.MAX_VALUE):Math.min(...n,Number.MAX_VALUE);case"not_smaller":return i.axes.length>0?Math.max(...i.axes.map(h=>n[h]),Number.MIN_VALUE):Math.max(...n,Number.MIN_VALUE);default:throw new Error(`Keep aspect ratio policy ${i.keepAspectRatioPolicy} is not supported`)}})();n.fill(1,0,n.length);let p=a.slice();return i.axes.length>0?(i.axes.forEach(h=>n[h]=g),i.axes.forEach(h=>p[h]=Math.round(a[h]*n[h]))):(n.fill(g,0,n.length),p.forEach((h,C)=>p[C]=Math.round(h*n[C]))),p},zp=(a,n,i,g,p)=>` + fn calculateOriginalIndicesFromOutputIndices(output_indices: ${a.type.indices}) -> array<${a.type.value}, ${i.length}> { + var original_indices: array<${a.type.value}, ${i.length}>; + for (var i:u32 = 0; i < ${i.length}; i++) { + var output_index = ${a.indicesGet("output_indices","i")}; + var scale = ${JA("uniforms.scales","i",g)}; + var roi_low = ${JA("uniforms.roi","i",p)}; + var roi_hi = ${JA("uniforms.roi",`i + ${n.length}`,p)}; + if (scale == 1.0) { + original_indices[i] = ${a.type.value}(output_index); + } else { + var input_shape_i = ${JA("uniforms.input_shape","i",n.length)}; + var output_shape_i = ${JA("uniforms.output_shape","i",i.length)}; + original_indices[i] = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, + input_shape_i, roi_low, roi_hi); + } + } + return original_indices; + }`,Np=(a,n,i,g,p,h,C)=>` + fn calculateInputIndicesFromOutputIndices(output_indices: ${n.type.indices}) -> ${a.type.indices} { + var input_indices: ${a.type.indices}; + for (var i:u32 = 0; i < ${g.length}; i++) { + var output_index = ${n.indicesGet("output_indices","i")}; + var input_index: u32; + var scale = ${JA("uniforms.scales","i",p)}; + if (scale == 1.0) { + input_index = output_index; + } else { + var roi_low = ${JA("uniforms.roi","i",h)}; + var roi_hi = ${JA("uniforms.roi",`i + ${i.length}`,h)}; + var input_shape_i = ${JA("uniforms.input_shape","i",i.length)}; + var output_shape_i = ${JA("uniforms.output_shape","i",g.length)}; + var original_idx = getOriginalCoordinateFromResizedCoordinate(output_index, scale, output_shape_i, + input_shape_i, roi_low, roi_hi); + if (!${C} || (original_idx >= 0 && original_idx < ${n.type.value}(input_shape_i))) { + if (original_idx < 0) { + input_index = 0; + } else if (original_idx > ${n.type.value}(input_shape_i - 1)) { + input_index = input_shape_i - 1; + } else { + input_index = u32(getNearestPixelFromOriginal(original_idx, scale < 1)); + } + } else { + input_index = u32(original_idx); + } + } + ${a.indicesSet("input_indices","i","input_index")} + } + return input_indices; + }`,Lp=(a,n)=>` + fn checkInputIndices(input_indices: ${a.type.indices}) -> bool { + for (var i:u32 = 0; i < ${n.length}; i++) { + var input_index = ${a.indicesGet("input_indices","i")}; + if (input_index < 0 || input_index >= ${JA("uniforms.input_shape","i",n.length)}) { + return false; + } + } + return true; + }`,z2=(a,n,i,g)=>a.rank>g?` + ${a.indicesSet("input_indices",n,"channel")}; + ${a.indicesSet("input_indices",i,"batch")}; +`:"",_p=(a,n,i,g,p)=>{let[h,C,w,E]=i.length===2?[-1,0,1,-1]:[0,2,3,1],v=a.type.value;return` + fn getInputValue(batch: u32, channel: u32, row: u32, col: u32) -> ${v} { + var input_indices: ${a.type.indices}; + ${a.indicesSet("input_indices",C,`max(0, min(row, ${i[C]} - 1))`)}; + ${a.indicesSet("input_indices",w,`max(0, min(col, ${i[w]} - 1))`)}; + ${z2(a,E,h,2)} + return ${a.getByIndices("input_indices")}; + } + + fn bilinearInterpolation(output_indices: ${n.type.indices}) -> ${v} { + var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); + var row:${v} = originalIndices[${C}]; + var col:${v} = originalIndices[${w}]; + ${g?`if (row < 0 || row > (${i[C]} - 1) || col < 0 || col > (${i[w]} - 1)) { + return ${p}; + }`:""}; + row = max(0, min(row, ${i[C]} - 1)); + col = max(0, min(col, ${i[w]} - 1)); + var row1: u32 = u32(row); + var col1: u32 = u32(col); + var row2: u32 = u32(row + 1); + var col2: u32 = u32(col + 1); + var channel: u32 = ${i.length>2?`u32(originalIndices[${E}])`:"0"}; + var batch: u32 = ${i.length>2?`u32(originalIndices[${h}])`:"0"}; + var x11: ${v} = getInputValue(batch, channel, row1, col1); + var x12: ${v} = getInputValue(batch, channel, row1, col2); + var x21: ${v} = getInputValue(batch, channel, row2, col1); + var x22: ${v} = getInputValue(batch, channel, row2, col2); + var dx1: ${v} = abs(row - ${v}(row1)); + var dx2: ${v} = abs(${v}(row2) - row); + var dy1: ${v} = abs(col - ${v}(col1)); + var dy2: ${v} = abs(${v}(col2) - col); + if (row1 == row2) { + dx1 = 0.5; + dx2 = 0.5; + } + if (col1 == col2) { + dy1 = 0.5; + dy2 = 0.5; + } + return (x11 * dx2 * dy2 + x12 * dx2 * dy1 + x21 * dx1 * dy2 + x22 * dx1 * dy1); + }`},Rp=(a,n,i,g,p,h,C,w,E,v)=>{let D=i.length===2,[B,x]=D?[0,1]:[2,3],S=a.type.value,F=R=>{let K=R===B?"row":"col";return` + fn ${K}CubicInterpolation(input_indices: ${a.type.indices}, output_indices: ${n.type.indices}) -> ${S} { + var output_index = ${n.indicesGet("output_indices",R)}; + var originalIdx: ${S} = getOriginalCoordinateFromResizedCoordinate(output_index, ${p[R]}, + ${g[R]}, ${i[R]}, ${h[R]}, ${h[R]} + ${i.length}); + var fractOriginalIdx: ${S} = originalIdx - floor(originalIdx); + var coefs = getCubicInterpolationCoefs(fractOriginalIdx); + + if (${w} && (originalIdx < 0 || originalIdx > (${i[R]} - 1))) { + return ${E}; + } + var data: array<${S}, 4> = array<${S}, 4>(0.0, 0.0, 0.0, 0.0); + for (var i: i32 = -1; i < 3; i++) { + var ${K}: ${S} = originalIdx + ${S}(i); + if (${K} < 0 || ${K} >= ${i[R]}) { + ${v?`coefs[i + 1] = 0.0; + continue;`:w?`return ${E};`:`${K} = max(0, min(${K}, ${i[R]} - 1));`}; + } + var input_indices_copy: ${a.type.indices} = input_indices; + ${a.indicesSet("input_indices_copy",R,`u32(${K})`)}; + data[i + 1] = ${R===B?a.getByIndices("input_indices_copy"):"rowCubicInterpolation(input_indices_copy, output_indices)"}; + } + return cubicInterpolation1D(data, coefs); + }`};return` + ${F(B)}; + ${F(x)}; + fn getCubicInterpolationCoefs(s: ${S}) -> array<${S}, 4> { + var absS = abs(s); + var coeffs: array<${S}, 4> = array<${S}, 4>(0.0, 0.0, 0.0, 0.0); + var oneMinusAbsS: ${S} = 1.0 - absS; + var twoMinusAbsS: ${S} = 2.0 - absS; + var onePlusAbsS: ${S} = 1.0 + absS; + coeffs[0] = ((${C} * onePlusAbsS - 5 * ${C}) * onePlusAbsS + 8 * ${C}) * onePlusAbsS - 4 * ${C}; + coeffs[1] = ((${C} + 2) * absS - (${C} + 3)) * absS * absS + 1; + coeffs[2] = ((${C} + 2) * oneMinusAbsS - (${C} + 3)) * oneMinusAbsS * oneMinusAbsS + 1; + coeffs[3] = ((${C} * twoMinusAbsS - 5 * ${C}) * twoMinusAbsS + 8 * ${C}) * twoMinusAbsS - 4 * ${C}; + return coeffs; + } + + fn cubicInterpolation1D(x: array<${S}, 4>, coefs: array<${S}, 4>) -> ${S} { + var coefsSum: ${S} = coefs[0] + coefs[1] + coefs[2] + coefs[3]; + return (x[0] * coefs[0] + x[1] * coefs[1]+ x[2] * coefs[2]+ x[3] * coefs[3]) / coefsSum; + } + + fn bicubicInterpolation(output_indices: ${n.type.indices}) -> ${S} { + var input_indices: ${a.type.indices} = output_indices; + return colCubicInterpolation(input_indices, output_indices); + } + `},jp=(a,n,i,g,p)=>{let[h,C,w,E,v]=i.length===3?[-1,0,1,2,-1]:[0,2,3,4,1],D=a.type.value;return` + fn getInputValue(batch: u32, channel: u32, depth:u32, height: u32, width: u32) -> ${D} { + var input_indices: ${a.type.indices}; + ${a.indicesSet("input_indices",C,`max(0, min(depth, ${i[C]} - 1))`)}; + ${a.indicesSet("input_indices",w,`max(0, min(height, ${i[w]} - 1))`)}; + ${a.indicesSet("input_indices",E,`max(0, min(width, ${i[E]} - 1))`)}; + ${z2(a,v,h,3)} + return ${a.getByIndices("input_indices")}; + } + + fn trilinearInterpolation(output_indices: ${n.type.indices}) -> ${D} { + var originalIndices = calculateOriginalIndicesFromOutputIndices(output_indices); + var depth:${D} = originalIndices[${C}]; + var height:${D} = originalIndices[${w}]; + var width:${D} = originalIndices[${E}]; + ${g?`if (depth < 0 || depth > (${i[C]} - 1) || height < 0 || height > (${i[w]} - 1) || width < 0 || (width > ${i[E]} - 1)) { + return ${p}; + }`:""}; + + depth = max(0, min(depth, ${i[C]} - 1)); + height = max(0, min(height, ${i[w]} - 1)); + width = max(0, min(width, ${i[E]} - 1)); + var depth1: u32 = u32(depth); + var height1: u32 = u32(height); + var width1: u32 = u32(width); + var depth2: u32 = u32(depth + 1); + var height2: u32 = u32(height + 1); + var width2: u32 = u32(width + 1); + var channel: u32 = ${i.length>3?`u32(originalIndices[${v}])`:"0"}; + var batch: u32 = ${i.length>3?`u32(originalIndices[${h}])`:"0"}; + + var x111: ${D} = getInputValue(batch, channel, depth1, height1, width1); + var x112: ${D} = getInputValue(batch, channel, depth1, height1, width2); + var x121: ${D} = getInputValue(batch, channel, depth1, height2, width1); + var x122: ${D} = getInputValue(batch, channel, depth1, height2, width2); + var x211: ${D} = getInputValue(batch, channel, depth2, height1, width1); + var x212: ${D} = getInputValue(batch, channel, depth2, height1, width2); + var x221: ${D} = getInputValue(batch, channel, depth2, height2, width1); + var x222: ${D} = getInputValue(batch, channel, depth2, height2, width2); + var dx1: ${D} = abs(depth - ${D}(depth1)); + var dx2: ${D} = abs(${D}(depth2) - depth); + var dy1: ${D} = abs(height - ${D}(height1)); + var dy2: ${D} = abs(${D}(height2) - height); + var dz1: ${D} = abs(width - ${D}(width1)); + var dz2: ${D} = abs(${D}(width2) - width); + if (depth1 == depth2) { + dx1 = 0.5; + dx2 = 0.5; + } + if (height1 == height2) { + dy1 = 0.5; + dy2 = 0.5; + } + if (width1 == width2) { + dz1 = 0.5; + dz2 = 0.5; + } + return (x111 * dx2 * dy2 * dz2 + x112 * dx2 * dy2 * dz1 + x121 * dx2 * dy1 *dz2 + x122 * dx2 * dy1 * dz1 + + x211 * dx1 * dy2 * dz2 + x212 * dx1 * dy2 * dz1 + x221 * dx1 * dy1 *dz2 + x222 * dx1 * dy1 * dz1); + }`},Wp=(a,n,i,g,p,h)=>{let C=a.dims,w=Fp(h,n.axes,C.length),E=Sp(C,g,p,n.axes),v=g.slice();g.length===0&&(v=C.map((N,V)=>N===0?1:E[V]/N),n.keepAspectRatioPolicy!=="stretch"&&(E=Op(C,v,n)));let D=YA("output",a.dataType,E.length),B=rA("input",a.dataType,C.length),x=Ze.size(E),S=C.length===E.length&&C.every((N,V)=>N===E[V]),F=n.coordinateTransformMode==="tf_crop_and_resize",R=n.extrapolationValue,K=B.type.value,L=N=>` + ${S?"":` + ${Pp(n.coordinateTransformMode,K)}; + ${(()=>{switch(n.mode){case"nearest":return` + ${Lp(B,C)}; + ${Qp(n.nearestMode,i,K)}; + ${Np(B,D,C,E,v.length,w.length,F)}; + `;case"linear":return` + ${zp(D,C,E,v.length,w.length)}; + ${(()=>{if(C.length===2||C.length===4)return`${_p(B,D,C,F,R)}`;if(C.length===3||C.length===5)return`${jp(B,D,C,F,R)}`;throw Error("Linear mode only supports input dims 2, 3, 4 and 5 are supported in linear mode.")})()}; + `;case"cubic":return` + ${(()=>{if(C.length===2||C.length===4)return`${Rp(B,D,C,E,v,w,n.cubicCoeffA,F,n.extrapolationValue,n.excludeOutside)}`;throw Error("Cubic mode only supports input dims 2 and 4 are supported in linear mode.")})()}; + `;default:throw Error("Invalid resize mode")}})()}; + `} + ${N.registerUniform("output_size","u32").registerUniform("scales","f32",v.length).registerUniform("roi","f32",w.length).declareVariables(B,D)} + ${N.mainStart()} + ${N.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + ${S?"output[global_idx] = input[global_idx];":` + let output_indices = ${D.offsetToIndices("global_idx")}; + var input_indices: ${B.type.indices}; + ${(()=>{switch(n.mode){case"nearest":return`input_indices = calculateInputIndicesFromOutputIndices(output_indices); + if (checkInputIndices(input_indices)) { + output[global_idx] = ${B.getByIndices("input_indices")}; + } else { + output[global_idx] = ${n.extrapolationValue}; + }`;case"linear":return`output[global_idx] = ${C.length===2||C.length===4?"bilinearInterpolation":"trilinearInterpolation"}(output_indices);`;case"cubic":return"output[global_idx] = bicubicInterpolation(output_indices);";default:throw Error(`Unsupported resize mode: ${n.mode}`)}})()}; +`} + }`;return{name:"Resize",shaderCache:{hint:`${n.cacheKey}|${i}|${v.length>0?n.mode==="cubic"?v:v.length:""}|${p.length>0?p:""}|${w.length>0?w:""}|${S}|${n.mode==="nearest"?C.length:C}`,inputDependencies:["rank"]},getShaderSource:L,getRunData:()=>({outputs:[{dims:E,dataType:a.dataType}],dispatchGroup:{x:Math.ceil(x/64)},programUniforms:[{type:12,data:x},{type:1,data:v},{type:1,data:w},...et(C,E)]})}},Yp=a=>{let n=a.customDataBuffer;return new Uint32Array(n,n.byteOffset,1)[0]},OC=(a,n)=>{let i=[],g=[],p=[],h=Yp(a);if(n.antialias!==0)throw Error("Only default value (0) for Antialias attribute is supported");Gp(a.inputs,n,h,i,g,p),a.compute(Wp(a.inputs[0],n,h,i,g,p),{inputs:[0]})},zC=a=>{let n=a.antialias,i=a.axes,g=a.coordinateTransformMode,p=a.cubicCoeffA,h=a.excludeOutside!==0,C=a.extrapolationValue,w=a.keepAspectRatioPolicy,E=a.mode,v=a.nearestMode===""?"simple":a.nearestMode;return Xt({antialias:n,axes:i,coordinateTransformMode:g,cubicCoeffA:p,excludeOutside:h,extrapolationValue:C,keepAspectRatioPolicy:w,mode:E,nearestMode:v})}}),Hp,Vp,NC,wI=bA(()=>{ot(),mt(),bt(),Hp=a=>{if(!a||a.length<3)throw new Error("layerNorm requires at least 3 inputs.");let n=a[0],i=a[1],g=a[2];if(n.dataType!==i.dataType||n.dataType!==g.dataType)throw new Error("All inputs must have the same data type");if(n.dims.length!==3&&n.dims.length!==2)throw new Error("Input must be 2D or 3D");if(i.dims.length!==3&&i.dims.length!==2)throw new Error("Skip must be 2D or 3D");let p=n.dims[n.dims.length-1],h=n.dims[n.dims.length-2];if(i.dims[i.dims.length-1]!==p)throw new Error("Skip must have the same hidden size as input");if(i.dims[i.dims.length-2]!==h)throw new Error("Skip must have the same sequence length as input");if(g.dims.length!==1)throw new Error("Gamma must be 1D");if(g.dims[g.dims.length-1]!==p)throw new Error("Gamma must have the same hidden size as input");if(a.length>3){let C=a[3];if(C.dims.length!==1)throw new Error("Beta must be 1D");if(C.dims[C.dims.length-1]!==p)throw new Error("Beta must have the same hidden size as input")}if(a.length>4){let C=a[4];if(C.dims.length!==1)throw new Error("Bias must be 1D");if(C.dims[C.dims.length-1]!==p)throw new Error("Bias must have the same hidden size as input")}},Vp=(a,n,i,g)=>{let p=n.simplified,h=a[0].dims,C=Ze.size(h),w=h,E=C,v=h.slice(-1)[0],D=g?h.slice(0,-1).concat(1):[],B=!p&&a.length>3,x=a.length>4,S=g&&i>1,F=g&&i>2,R=i>3,K=64,L=Nr(v),N=[{type:12,data:E},{type:12,data:L},{type:12,data:v},{type:1,data:n.epsilon}],V=k=>{let e=[{name:"output_size",type:"u32"},{name:"components",type:"u32"},{name:"hidden_size",type:"u32"},{name:"epsilon",type:"f32"}],u=[rA("x",a[0].dataType,a[0].dims,L),rA("skip",a[1].dataType,a[1].dims,L),rA("gamma",a[2].dataType,a[2].dims,L)];B&&u.push(rA("beta",a[3].dataType,a[3].dims,L)),x&&u.push(rA("bias",a[4].dataType,a[4].dims,L)),u.push(YA("output",a[0].dataType,w,L)),S&&u.push(YA("mean_output",1,D)),F&&u.push(YA("inv_std_output",1,D)),R&&u.push(YA("input_skip_bias_sum",a[0].dataType,w,L));let y=us(a[0].dataType),$=us(1,L);return` + + ${k.registerUniforms(e).declareVariables(...u)} + var sum_shared : array<${$}, ${K}>; + var sum_squared_shared : array<${$}, ${K}>; + + ${k.mainStart([K,1,1])} + let ix = local_id.x; + let iy = global_id.x / ${K}; + + let hidden_size_vectorized: u32 = uniforms.hidden_size / uniforms.components; + var stride = hidden_size_vectorized / ${K}; + let offset = ix * stride + iy * hidden_size_vectorized; + let offset1d = stride * ix; + if (ix == ${K-1}) { + stride = hidden_size_vectorized - stride * ix; + } + for (var i: u32 = 0; i < stride; i++) { + let skip_value = skip[offset + i]; + let bias_value = ${x?"bias[offset1d + i]":y+"(0.0)"}; + let input_value = x[offset + i]; + let value = input_value + skip_value + bias_value; + ${R?"input_skip_bias_sum[offset + i] = value;":""} + output[offset + i] = value; + let f32_value = ${ao(y,L,"value")}; + sum_shared[ix] += f32_value; + sum_squared_shared[ix] += f32_value * f32_value; + } + workgroupBarrier(); + + var reduce_size : u32 = ${K}; + for (var curr_size = reduce_size >> 1; curr_size > 0; curr_size = reduce_size >> 1) { + reduce_size = curr_size + (reduce_size & 1); + if (ix < curr_size) { + sum_shared[ix] += sum_shared[ix + reduce_size]; + sum_squared_shared[ix] += sum_squared_shared[ix + reduce_size]; + } + workgroupBarrier(); + } + + let sum = sum_shared[0]; + let square_sum = sum_squared_shared[0]; + let mean = ${ti("sum",L)} / f32(uniforms.hidden_size); + let inv_std_dev = inverseSqrt(${ti("square_sum",L)} / f32(uniforms.hidden_size) ${p?"":"- mean * mean"} + uniforms.epsilon); + ${S?"mean_output[global_idx] = mean;":""} + ${F?"inv_std_output[global_idx] = inv_std_dev;":""} + + for (var i: u32 = 0; i < stride; i++) { + output[offset + i] = (output[offset + i] ${p?"":`- ${y}(mean)`}) * + ${y}(inv_std_dev) * gamma[offset1d + i] + ${B?"+ beta[offset1d + i]":""}; + } + }`},d=[{dims:w,dataType:a[0].dataType}];return i>1&&d.push({dims:D,dataType:1}),i>2&&d.push({dims:D,dataType:1}),i>3&&d.push({dims:h,dataType:a[0].dataType}),{name:"SkipLayerNormalization",shaderCache:{hint:`${L};${S};${F};${R}`,inputDependencies:a.map((k,e)=>"type")},getShaderSource:V,getRunData:()=>({outputs:d,dispatchGroup:{x:Math.ceil(E/v)},programUniforms:N})}},NC=(a,n)=>{Hp(a.inputs);let i=[0];a.outputCount>1&&i.push(-3),a.outputCount>2&&i.push(-3),a.outputCount>3&&i.push(3),a.compute(Vp(a.inputs,n,a.outputCount,!1),{outputs:i})}}),Up,_o,Kp,N2,Xp,Zp,LC,_C,kI=bA(()=>{ot(),mt(),Wr(),bt(),Up=(a,n)=>{if(!a||a.length<1)throw new Error("too few inputs");if(n.axes.length!==0){if(n.axes.length!==n.starts.length||n.axes.length!==n.ends.length)throw new Error("axes, starts and ends must have the same length")}else if(n.starts.length!==n.ends.length)throw new Error("starts and ends must have the same length");a.slice(1).forEach((i,g)=>{if(a[g+1].dataType!==6&&a[g+1].dataType!==7)throw new Error(`Input ${g} must be an array of int32 or int64`)})},_o=(a,n)=>{let i=[];if(a.length>n)if(a[n].dataType===7)a[n].getBigInt64Array().forEach(g=>i.push(Number(g)));else if(a[n].dataType===6)a[n].getInt32Array().forEach(g=>i.push(Number(g)));else throw new Error(`Input ${n} must be an array of int32 or int64`);return i},Kp=(a,n)=>{if(a.length>1){let i=_o(a,1),g=_o(a,2),p=_o(a,3);return p.length===0&&(p=[...Array(a[0].dims.length).keys()]),Xt({starts:i,ends:g,axes:p})}else return n},N2=(a,n,i,g,p)=>{let h=a;return a<0&&(h+=i[g[n]]),p[n]<0?Math.max(0,Math.min(h,i[g[n]]-1)):Math.max(0,Math.min(h,i[g[n]]))},Xp=(a,n,i)=>`fn calculateInputIndices(output_indices: ${n.type.indices}) -> ${a.type.indices} { + var input_indices: ${a.type.indices}; + var carry = 0u; + for (var i = ${i.length}; i >= 0; i--) { + let input_shape_i = ${JA("uniforms.input_shape","i",i.length)}; + let steps_i = ${JA("uniforms.steps","i",i.length)}; + let signs_i = ${JA("uniforms.signs","i",i.length)}; + let starts_i = ${JA("uniforms.starts","i",i.length)}; + var output_index = ${n.indicesGet("output_indices","i")}; + var input_index = output_index * steps_i + starts_i + carry; + carry = input_index / input_shape_i; + input_index = input_index % input_shape_i; + if (signs_i < 0) { + input_index = input_shape_i - input_index - 1u + starts_i; + } + ${a.indicesSet("input_indices","i","input_index")}; + } + return input_indices; + }`,Zp=(a,n)=>{let i=a[0].dims,g=Ze.size(i),p=n.axes.length>0?Ze.normalizeAxes(n.axes,i.length):[...Array(i.length).keys()],h=_o(a,4);h.forEach(L=>L!==0||(()=>{throw new Error("step cannot be 0")})),h.length===0&&(h=Array(p.length).fill(1));let C=n.starts.map((L,N)=>N2(L,N,i,p,h)),w=n.ends.map((L,N)=>N2(L,N,i,p,h));if(p.length!==C.length||p.length!==w.length)throw new Error("start, ends and axes should have the same number of elements");if(p.length!==i.length)for(let L=0;LMath.sign(L));h.forEach((L,N,V)=>{if(L<0){let d=(w[N]-C[N])/L,k=C[N],e=k+d*h[N];C[N]=e,w[N]=k,V[N]=-L}});let v=i.slice(0);p.forEach((L,N)=>{v[L]=Math.ceil((w[L]-C[L])/h[L])});let D={dims:v,dataType:a[0].dataType},B=YA("output",a[0].dataType,v.length),x=rA("input",a[0].dataType,a[0].dims.length),S=Ze.size(v),F=[{name:"outputSize",type:"u32"},{name:"starts",type:"u32",length:C.length},{name:"signs",type:"i32",length:E.length},{name:"steps",type:"u32",length:h.length}],R=[{type:12,data:S},{type:12,data:C},{type:6,data:E},{type:12,data:h},...et(a[0].dims,v)],K=L=>` + ${L.registerUniforms(F).declareVariables(x,B)} + ${Xp(x,B,i)} + ${L.mainStart()} + ${L.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.outputSize")} + let output_indices = ${B.offsetToIndices("global_idx")}; + let input_indices = calculateInputIndices(output_indices); + ${B.setByOffset("global_idx",x.getByIndices("input_indices"))} + }`;return{name:"Slice",shaderCache:{hint:`${E.length}_${C.length}_${h.length}`,inputDependencies:["rank"]},getShaderSource:K,getRunData:()=>({outputs:[D],dispatchGroup:{x:Math.ceil(g/64)},programUniforms:R})}},LC=(a,n)=>{Up(a.inputs,n);let i=Kp(a.inputs,n);a.compute(Zp(a.inputs,i),{inputs:[0]})},_C=a=>{let n=a.starts,i=a.ends,g=a.axes;return Xt({starts:n,ends:i,axes:g})}}),Jp,qp,RC,jC,EI=bA(()=>{ot(),mt(),Wr(),ri(),bt(),Jp=a=>{if(!a||a.length!==1)throw new Error("Softmax op requires 1 input.")},qp=(a,n)=>{let i=a.inputs[0],g=i.dims,p=Ze.size(g),h=g.length,C=Ze.normalizeAxis(n.axis,h),w=Cy),v[C]=h-1,v[h-1]=C,E=a.compute(la(i,v),{inputs:[i],outputs:[-1]})[0]):E=i;let D=E.dims,B=D[h-1],x=p/B,S=Nr(B),F=B/S,R=64;x===1&&(R=256);let K=(u,y)=>y===4?`max(max(${u}.x, ${u}.y), max(${u}.z, ${u}.w))`:y===2?`max(${u}.x, ${u}.y)`:y===3?`max(max(${u}.x, ${u}.y), ${u}.z)`:u,L=rA("x",E.dataType,E.dims,S),N=YA("result",E.dataType,E.dims,S),V=L.type.value,d=us(E.dataType)==="f32"?`var threadMax = ${V}(-3.402823e+38f);`:`var threadMax = ${V}(-65504.0h);`,k=u=>` + var rowMaxShared : ${V}; + var rowSumShared : ${V}; + var threadShared : array<${V}, ${R}>; + + fn getValue(row: i32, col: i32, row_stride: i32) -> ${V} { + let index = row * row_stride + col; + return x[index]; + } + + fn setValue(row: i32, col: i32, row_stride: i32, value: ${V}) { + let index = row * row_stride + col; + result[index] = value; + } + ${u.registerUniform("packedCols","i32").declareVariables(L,N)} + ${u.mainStart(R)} + let gindex = i32(global_idx); + let lindex = i32(local_idx); + const wg = ${R}; + let row = gindex / wg; + let cols = uniforms.packedCols; + let row_stride : i32 = uniforms.packedCols; + + // find the rows max + ${d} + for (var col = lindex; col < cols; col += wg) { + let value = getValue(row, col, row_stride); + threadMax = max(threadMax, value); + } + if (lindex < cols) { + threadShared[lindex] = threadMax; + } + workgroupBarrier(); + + var reduceSize = min(cols, wg); + for (var currSize = reduceSize >> 1; currSize > 0; currSize = reduceSize >> 1) { + reduceSize = currSize + (reduceSize & 1); + if (lindex < currSize) { + threadShared[lindex] = max(threadShared[lindex], threadShared[lindex + reduceSize]); + } + workgroupBarrier(); + } + if (lindex == 0) { + rowMaxShared = ${V}(${K("threadShared[0]",S)}); + } + workgroupBarrier(); + + // find the rows sum + var threadSum = ${V}(0.0); + for (var col = lindex; col < cols; col += wg) { + let subExp = exp(getValue(row, col, row_stride) - rowMaxShared); + threadSum += subExp; + } + threadShared[lindex] = threadSum; + workgroupBarrier(); + + for (var currSize = wg >> 1; currSize > 0; currSize = currSize >> 1) { + if (lindex < currSize) { + threadShared[lindex] = threadShared[lindex] + threadShared[lindex + currSize]; + } + workgroupBarrier(); + } + if (lindex == 0) { + rowSumShared = ${V}(${ti("threadShared[0]",S)}); + } + workgroupBarrier(); + + // calculate final value for each element in the row + for (var col = lindex; col < cols; col += wg) { + let value = exp(getValue(row, col, row_stride) - rowMaxShared) / rowSumShared; + setValue(row, col, row_stride, value); + } + }`,e=a.compute({name:"Softmax",shaderCache:{hint:`${S};${R}`,inputDependencies:["type"]},getRunData:()=>({outputs:[{dims:D,dataType:E.dataType}],dispatchGroup:{x},programUniforms:[{type:6,data:F}]}),getShaderSource:k},{inputs:[E],outputs:[w?-1:0]})[0];w&&a.compute(la(e,v),{inputs:[e]})},RC=(a,n)=>{Jp(a.inputs),qp(a,n)},jC=a=>Xt({axis:a.axis})}),L2,$p,em,Am,WC,MI=bA(()=>{ot(),mt(),bt(),L2=a=>Array.from(a.getBigInt64Array(),Number),$p=a=>{if(!a||a.length!==2)throw new Error("Tile requires 2 inputs.");if(a[0].dataType!==1&&a[0].dataType!==10&&a[0].dataType!==6&&a[0].dataType!==12)throw new Error("Tile only support float, float16, int32, and uint32 data types");if(a[1].dataType!==7)throw new Error("Tile `repeats` input should be of int64 data type");if(a[1].dims.length!==1)throw new Error("Tile `repeats` input should be 1-D");if(L2(a[1]).length!==a[0].dims.length)throw new Error("Tile `repeats` input should have same number of elements as rank of input data tensor")},em=(a,n)=>{let i=[];for(let g=0;g{let i=a[0].dims,g=n??L2(a[1]),p=em(i,g),h=Ze.size(p),C=a[0].dataType,w=rA("input",C,i.length),E=YA("output",C,p.length),v=D=>` + const inputShape = ${w.indices(...i)}; + ${D.registerUniform("output_size","u32").declareVariables(w,E)} + ${D.mainStart()} + ${D.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.output_size")} + let output_indices = ${E.offsetToIndices("global_idx")}; + var input_indices: ${w.type.indices}; + for (var i = 0; i < ${i.length}; i++) { + let input_dim_i = ${w.indicesGet("uniforms.input_shape","i")}; + let input_dim_value = ${E.indicesGet("output_indices","i")} % input_dim_i; + + ${w.indicesSet("input_indices","i","input_dim_value")} + } + ${E.setByOffset("global_idx",w.getByIndices("input_indices"))} + }`;return{name:"Tile",shaderCache:{hint:`${g}`,inputDependencies:["rank"]},getRunData:()=>({outputs:[{dims:p,dataType:a[0].dataType}],dispatchGroup:{x:Math.ceil(h/64)},programUniforms:[{type:12,data:h},...et(a[0].dims,p)]}),getShaderSource:v}},WC=a=>{$p(a.inputs),a.compute(Am(a.inputs),{inputs:[0]})}}),tm,rm,YC,BI=bA(()=>{ot(),mt(),bt(),tm=(a,n,i,g,p)=>{let h=YA("output_data",p,i.length,4),C=rA("a_data",n[1].dataType,n[1].dims.length,4),w=rA("b_data",n[2].dataType,n[2].dims.length,4),E=rA("c_data",n[0].dataType,n[0].dims.length,4),v,D=(B,x,S)=>`select(${x}, ${B}, ${S})`;if(!g)v=h.setByOffset("global_idx",D(C.getByOffset("global_idx"),w.getByOffset("global_idx"),E.getByOffset("global_idx")));else{let B=(x,S,F="")=>{let R=`a_data[index_a${S}][component_a${S}]`,K=`b_data[index_b${S}][component_b${S}]`,L=`bool(c_data[index_c${S}] & (0xffu << (component_c${S} * 8)))`;return` + let output_indices${S} = ${h.offsetToIndices(`global_idx * 4u + ${S}u`)}; + let offset_a${S} = ${C.broadcastedIndicesToOffset(`output_indices${S}`,h)}; + let offset_b${S} = ${w.broadcastedIndicesToOffset(`output_indices${S}`,h)}; + let offset_c${S} = ${E.broadcastedIndicesToOffset(`output_indices${S}`,h)}; + let index_a${S} = offset_a${S} / 4u; + let index_b${S} = offset_b${S} / 4u; + let index_c${S} = offset_c${S} / 4u; + let component_a${S} = offset_a${S} % 4u; + let component_b${S} = offset_b${S} % 4u; + let component_c${S} = offset_c${S} % 4u; + ${x}[${S}] = ${F}(${D(R,K,L)}); + `};p===9?v=` + var data = vec4(0); + ${B("data",0,"u32")} + ${B("data",1,"u32")} + ${B("data",2,"u32")} + ${B("data",3,"u32")} + output_data[global_idx] = dot(vec4(0x1, 0x100, 0x10000, 0x1000000), vec4(data));`:v=` + ${B("output_data[global_idx]",0)} + ${B("output_data[global_idx]",1)} + ${B("output_data[global_idx]",2)} + ${B("output_data[global_idx]",3)} + `}return` + ${a.registerUniform("vec_size","u32").declareVariables(E,C,w,h)} + ${a.mainStart()} + ${a.guardAgainstOutOfBoundsWorkgroupSizes("uniforms.vec_size")} + ${v} + }`},rm=a=>{let n=a[1].dims,i=a[2].dims,g=a[0].dims,p=a[1].dataType,h=!(Ze.areEqual(n,i)&&Ze.areEqual(i,g)),C=n,w=Ze.size(n);if(h){let v=uo.calcShape(uo.calcShape(n,i,!1),g,!1);if(!v)throw new Error("Can't perform where op on the given tensors");C=v,w=Ze.size(C)}let E=Math.ceil(w/4);return{name:"Where",shaderCache:{inputDependencies:["rank","rank","rank"]},getShaderSource:v=>tm(v,a,C,h,p),getRunData:()=>({outputs:[{dims:C,dataType:p}],dispatchGroup:{x:Math.ceil(w/64/4)},programUniforms:[{type:12,data:E},...et(g,n,i,C)]})}},YC=a=>{a.compute(rm(a.inputs))}}),HC,vI=bA(()=>{_6(),Fc(),R6(),j6(),W6(),Y6(),H6(),Z6(),q6(),$6(),eI(),AI(),tI(),rI(),sI(),aI(),nI(),iI(),oI(),lI(),cI(),uI(),dI(),fI(),gI(),cC(),pI(),mI(),hI(),CI(),bI(),Qc(),II(),pC(),wI(),kI(),EI(),fC(),MI(),ri(),Sc(),BI(),HC=new Map([["Abs",[Nh]],["Acos",[Lh]],["Acosh",[_h]],["Add",[I3]],["ArgMax",[Fh,ac]],["ArgMin",[Qh,ac]],["Asin",[Rh]],["Asinh",[jh]],["Atan",[Wh]],["Atanh",[Yh]],["Attention",[Sh]],["AveragePool",[MC,EC]],["BatchNormalization",[Oh]],["BiasAdd",[zh]],["BiasSplitGelu",[b3]],["Cast",[Vh,Hh]],["Ceil",[Kh]],["Clip",[Uh]],["Concat",[T3,G3]],["Conv",[uc,cc]],["ConvTranspose",[R3,_3]],["Cos",[Xh]],["Cosh",[Zh]],["CumSum",[j3,W3]],["DepthToSpace",[Y3,H3]],["DequantizeLinear",[GC,PC]],["Div",[w3]],["Einsum",[V3,U3]],["Elu",[Jh,Vo]],["Equal",[k3]],["Erf",[qh]],["Exp",[$h]],["Expand",[K3]],["FastGelu",[X3]],["Floor",[e3]],["FusedConv",[uc,cc]],["Gather",[J3,Z3]],["GatherElements",[rC,tC]],["GatherBlockQuantized",[eC,AC]],["GatherND",[q3,$3]],["Gelu",[A3]],["Gemm",[aC,sC]],["GlobalAveragePool",[vC,BC]],["GlobalMaxPool",[TC,DC]],["Greater",[v3]],["GreaterOrEqual",[y3]],["GridSample",[nC,iC]],["GroupQueryAttention",[mC]],["HardSigmoid",[l3,o3]],["InstanceNormalization",[hC]],["LayerNormalization",[CC]],["LeakyRelu",[t3,Vo]],["Less",[x3]],["LessOrEqual",[D3]],["Log",[h3]],["MatMul",[bC]],["MatMulNBits",[IC,wC]],["MaxPool",[xC,yC]],["Mul",[E3]],["MultiHeadAttention",[lC,oC]],["Neg",[s3]],["Not",[r3]],["Pad",[kC]],["Pow",[M3]],["QuickGelu",[C3,Vo]],["Range",[QC]],["Reciprocal",[a3]],["ReduceMin",[yh]],["ReduceMean",[Eh]],["ReduceMax",[xh]],["ReduceSum",[Th]],["ReduceProd",[Dh]],["ReduceL1",[Mh]],["ReduceL2",[Bh]],["ReduceLogSum",[Ph]],["ReduceLogSumExp",[vh]],["ReduceSumSquare",[Gh]],["Relu",[n3]],["Resize",[OC,zC]],["RotaryEmbedding",[gC]],["ScatterND",[SC,FC]],["Sigmoid",[i3]],["Sin",[c3]],["Sinh",[u3]],["Slice",[LC,_C]],["SkipLayerNormalization",[NC]],["Split",[uC,dC]],["Sqrt",[d3]],["Softmax",[RC,jC]],["Sub",[B3]],["Tan",[f3]],["Tanh",[g3]],["ThresholdedRelu",[m3,Vo]],["Tile",[WC]],["Transpose",[uh,dh]],["Where",[YC]]])}),VC,xI=bA(()=>{Na(),xn(),bt(),VC=class{constructor(a){this.backend=a,this.repo=new Map,this.attributesBound=!1}getArtifact(a){return this.repo.get(a)}setArtifact(a,n){this.repo.set(a,n)}run(a,n,i,g,p){za(a.programInfo.name);let h=this.backend.device,C=this.backend.getComputePassEncoder();this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2);let w=[];for(let v of n)w.push({binding:w.length,resource:{buffer:v.buffer}});for(let v of i)w.push({binding:w.length,resource:{buffer:v.buffer}});p&&w.push({binding:w.length,resource:p});let E=h.createBindGroup({layout:a.computePipeline.getBindGroupLayout(0),entries:w,label:a.programInfo.name});if(this.backend.sessionStatus==="capturing"){let v={kernelId:this.backend.currentKernelId,computePipeline:a.computePipeline,bindGroup:E,dispatchGroup:g};this.backend.capturedCommandList.get(this.backend.currentSessionId).push(v)}C.setPipeline(a.computePipeline),C.setBindGroup(0,E),C.dispatchWorkgroups(...g),this.backend.writeTimestamp(this.backend.pendingDispatchNumber*2+1),this.backend.pendingDispatchNumber++,(this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber||this.backend.queryType==="at-passes")&&this.backend.endComputePass(),this.backend.pendingDispatchNumber>=this.backend.maxDispatchNumber&&this.backend.flush(),Ca(a.programInfo.name)}dispose(){}build(a,n){za(a.name);let i=this.backend.device,g=[];[{feature:"shader-f16",extension:"f16"},{feature:"subgroups",extension:"subgroups"}].forEach(v=>{i.features.has(v.feature)&&g.push(`enable ${v.extension};`)});let p=ch(n,this.backend.device.limits),h=a.getShaderSource(p),C=`${g.join(` +`)} +${p.additionalImplementations} +${h}`,w=i.createShaderModule({code:C,label:a.name});Ft("verbose",()=>`[WebGPU] ${a.name} shader code: ${C}`);let E=i.createComputePipeline({compute:{module:w,entryPoint:"main"},layout:"auto",label:a.name});return Ca(a.name),{programInfo:a,computePipeline:E,uniformVariablesInfo:p.variablesInfo}}normalizeDispatchGroupSize(a){let n=typeof a=="number"?a:a.x,i=typeof a=="number"?1:a.y||1,g=typeof a=="number"?1:a.z||1,p=this.backend.device.limits.maxComputeWorkgroupsPerDimension;if(n<=p&&i<=p&&g<=p)return[n,i,g];let h=n*i*g,C=Math.ceil(Math.sqrt(h));if(C>p){if(C=Math.ceil(Math.cbrt(h)),C>p)throw new Error("Total dispatch size exceeds WebGPU maximum.");return[C,C,C]}else return[C,C,1]}}}),UC={};mo(UC,{WebGpuBackend:()=>KC});var sm,am,nm,KC,yI=bA(()=>{Na(),ot(),xn(),ah(),N6(),vI(),xI(),sm=(a,n)=>{if(n.length!==a.length)throw new Error(`inputDependencies length ${n.length} is not equal to inputTensors length ${a.length}.`);let i=[];for(let g=0;g{var p,h;let g=a.name;return(p=a.shaderCache)!=null&&p.hint&&(g+="["+a.shaderCache.hint+"]"),g+=":"+i+`:${sm(n,((h=a.shaderCache)==null?void 0:h.inputDependencies)??new Array(n.length).fill("dims"))}`,g},nm=class{constructor(a){a&&(this.architecture=a.architecture,this.vendor=a.vendor)}isArchitecture(a){return this.architecture===a}isVendor(a){return this.vendor===a}},KC=class{constructor(){this.currentSessionId=null,this.currentKernelId=null,this.commandEncoder=null,this.computePassEncoder=null,this.maxDispatchNumber=16,this.pendingDispatchNumber=0,this.pendingKernels=[],this.pendingQueries=new Map,this.sessionStatus="default",this.capturedCommandList=new Map,this.capturedPendingKernels=new Map,this.sessionExternalDataMapping=new Map}get currentKernelCustomData(){if(this.currentKernelId===null)throw new Error("currentKernelCustomData(): currentKernelId is null. (should not happen)");let a=this.kernelCustomData.get(this.currentKernelId);return a||(a={},this.kernelCustomData.set(this.currentKernelId,a)),a}async initialize(a,n){this.env=a;let i=[],g={requiredLimits:{maxComputeWorkgroupStorageSize:n.limits.maxComputeWorkgroupStorageSize,maxComputeWorkgroupsPerDimension:n.limits.maxComputeWorkgroupsPerDimension,maxStorageBufferBindingSize:n.limits.maxStorageBufferBindingSize,maxBufferSize:n.limits.maxBufferSize,maxComputeInvocationsPerWorkgroup:n.limits.maxComputeInvocationsPerWorkgroup,maxComputeWorkgroupSizeX:n.limits.maxComputeWorkgroupSizeX,maxComputeWorkgroupSizeY:n.limits.maxComputeWorkgroupSizeY,maxComputeWorkgroupSizeZ:n.limits.maxComputeWorkgroupSizeZ},requiredFeatures:i},p=h=>n.features.has(h)&&i.push(h)&&!0;p("chromium-experimental-timestamp-query-inside-passes")||p("timestamp-query"),p("shader-f16"),p("subgroups"),this.device=await n.requestDevice(g),this.adapterInfo=new nm(n.info||await n.requestAdapterInfo()),this.gpuDataManager=oh(this),this.programManager=new VC(this),this.kernels=new Map,this.kernelPersistentData=new Map,this.kernelCustomData=new Map,Dc(a.logLevel,!!a.debug),this.device.onuncapturederror=h=>{h.error instanceof GPUValidationError&&console.error(`An uncaught WebGPU validation error was raised: ${h.error.message}`)},Object.defineProperty(this.env.webgpu,"device",{value:this.device,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(this.env.webgpu,"adapter",{value:n,writable:!1,enumerable:!0,configurable:!1}),this.setQueryType()}dispose(){typeof this.querySet<"u"&&this.querySet.destroy(),this.gpuDataManager.dispose()}getCommandEncoder(){return this.commandEncoder||(this.commandEncoder=this.device.createCommandEncoder()),this.commandEncoder}getComputePassEncoder(){if(!this.computePassEncoder){let a=this.getCommandEncoder(),n={};this.queryType==="at-passes"&&(n.timestampWrites={querySet:this.querySet,beginningOfPassWriteIndex:this.pendingDispatchNumber*2,endOfPassWriteIndex:this.pendingDispatchNumber*2+1}),this.computePassEncoder=a.beginComputePass(n)}return this.computePassEncoder}endComputePass(){this.computePassEncoder&&(this.computePassEncoder.end(),this.computePassEncoder=null)}flush(){if(!this.commandEncoder)return;za(),this.endComputePass();let a;this.queryType!=="none"&&(this.commandEncoder.resolveQuerySet(this.querySet,0,this.pendingDispatchNumber*2,this.queryResolveBuffer,0),a=this.device.createBuffer({size:this.pendingDispatchNumber*2*8,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.pendingQueries.set(a,this.pendingKernels),this.pendingKernels=[],this.commandEncoder.copyBufferToBuffer(this.queryResolveBuffer,0,a,0,this.pendingDispatchNumber*2*8)),this.device.queue.submit([this.commandEncoder.finish()]),this.gpuDataManager.refreshPendingBuffers(),this.commandEncoder=null,this.pendingDispatchNumber=0,this.queryType!=="none"&&a.mapAsync(GPUMapMode.READ).then(()=>{var g;let n=new BigUint64Array(a.getMappedRange()),i=this.pendingQueries.get(a);for(let p=0;p"u"&&(this.queryTimeBase=S);let R=Number(S-this.queryTimeBase),K=Number(F-this.queryTimeBase);if(!Number.isSafeInteger(R)||!Number.isSafeInteger(K))throw new RangeError("incorrect timestamp range");if((g=this.env.webgpu.profiling)!=null&&g.ondata)this.env.webgpu.profiling.ondata({version:1,inputsMetadata:B.map(L=>({dims:L.dims,dataType:Bn(L.dataType)})),outputsMetadata:x.map(L=>({dims:L.dims,dataType:Bn(L.dataType)})),kernelId:C,kernelType:E,kernelName:v,programName:D,startTime:R,endTime:K});else{let L="";B.forEach((V,d)=>{L+=`input[${d}]: [${V.dims}] | ${Bn(V.dataType)}, `});let N="";x.forEach((V,d)=>{N+=`output[${d}]: [${V.dims}] | ${Bn(V.dataType)}, `}),console.log(`[profiling] kernel "${C}|${E}|${v}|${D}" ${L}${N}execution time: ${K-R} ns`)}r0("GPU",`${D}::${S}::${F}`)}a.unmap(),this.pendingQueries.delete(a)}),Ca()}run(a,n,i,g,p,h){za(a.name);let C=[];for(let N=0;NV):i;if(D.length!==w.length)throw new Error(`Output size ${D.length} must be equal to ${w.length}.`);let B=[],x=[];for(let N=0;N=h)throw new Error(`Invalid output index: ${D[N]}`);if(D[N]===-3)continue;let V=D[N]===-1,d=D[N]===-2,k=V||d?p(w[N].dataType,w[N].dims):g(D[N],w[N].dataType,w[N].dims);if(B.push(k),k.data===0)continue;let e=this.gpuDataManager.get(k.data);if(!e)throw new Error(`no GPU data for output: ${k.data}`);if(V&&this.temporaryData.push(e),d){let u=this.kernelPersistentData.get(this.currentKernelId);u||(u=[],this.kernelPersistentData.set(this.currentKernelId,u)),u.push(e)}x.push(e)}if(C.length!==n.length||x.length!==B.length){if(x.length===0)return Ca(a.name),B;throw new Error(`Program ${a.name} has zero-sized tensor(s) in inputs or outputs. This is not supported now.`)}let S;if(v){let N=0,V=[];v.forEach(u=>{let y=typeof u.data=="number"?[u.data]:u.data;if(y.length===0)return;let $=u.type===10?2:4,T,O;u.type===10?(O=y.length>4?16:y.length>2?8:y.length*$,T=y.length>4?16:$*y.length):(O=y.length<=2?y.length*$:16,T=16),N=Math.ceil(N/O)*O,V.push(N);let Ce=u.type===10?8:4;N+=y.length>4?Math.ceil(y.length/Ce)*T:y.length*$});let d=16;N=Math.ceil(N/d)*d;let k=new ArrayBuffer(N);v.forEach((u,y)=>{let $=V[y],T=typeof u.data=="number"?[u.data]:u.data;if(u.type===6)new Int32Array(k,$,T.length).set(T);else if(u.type===12)new Uint32Array(k,$,T.length).set(T);else if(u.type===10)new Uint16Array(k,$,T.length).set(T);else if(u.type===1)new Float32Array(k,$,T.length).set(T);else throw new Error(`Unsupported uniform type: ${Bn(u.type)}`)});let e=this.gpuDataManager.create(N,GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM);this.device.queue.writeBuffer(e.buffer,0,k,0,N),this.gpuDataManager.release(e.id),S={offset:0,size:N,buffer:e.buffer}}let F=this.programManager.normalizeDispatchGroupSize(E),R=F[1]===1&&F[2]===1,K=am(a,n,R),L=this.programManager.getArtifact(K);if(L||(L=this.programManager.build(a,F),this.programManager.setArtifact(K,L),Ft("info",()=>`[artifact] key: ${K}, programName: ${a.name}`)),v&&L.uniformVariablesInfo){if(v.length!==L.uniformVariablesInfo.length)throw new Error(`Uniform variables count mismatch: expect ${L.uniformVariablesInfo.length}, got ${v.length} in program "${L.programInfo.name}".`);for(let N=0;N`[ProgramManager] run "${a.name}" (key=${K}) with ${F[0]}x${F[1]}x${F[2]}`),this.queryType!=="none"||this.sessionStatus==="capturing"){let N={kernelId:this.currentKernelId,programName:L.programInfo.name,inputTensorViews:n,outputTensorViews:B};this.pendingKernels.push(N),this.sessionStatus==="capturing"&&this.capturedPendingKernels.get(this.currentSessionId).push(N)}return this.programManager.run(L,C,x,F,S),Ca(a.name),B}upload(a,n){this.gpuDataManager.upload(a,n)}memcpy(a,n){this.gpuDataManager.memcpy(a,n)}async download(a,n){await this.gpuDataManager.download(a,n)}alloc(a){return this.gpuDataManager.create(a).id}free(a){return this.gpuDataManager.release(a)}createKernel(a,n,i,g){let p=HC.get(a);if(!p)throw new Error(`kernel not implemented: ${a}`);let h={kernelType:a,kernelName:g,kernelEntry:p[0],attributes:[p[1],i]};this.kernels.set(n,h)}releaseKernel(a){let n=this.kernelPersistentData.get(a);if(n){for(let i of n)this.gpuDataManager.release(i.id);this.kernelPersistentData.delete(a)}this.kernelCustomData.delete(a),this.kernels.delete(a)}computeKernel(a,n,i){let g=this.kernels.get(a);if(!g)throw new Error(`kernel not created: ${a}`);let p=g.kernelType,h=g.kernelName,C=g.kernelEntry,w=g.attributes;if(this.currentKernelId!==null)throw new Error(`kernel "[${p}] ${h}" is not allowed to be called recursively`);this.currentKernelId=a,w[0]&&(w[1]=w[0](w[1]),w[0]=void 0),Ft("info",()=>`[WebGPU] Start to run kernel "[${p}] ${h}"...`);let E=this.env.debug;this.temporaryData=[];try{return E&&this.device.pushErrorScope("validation"),C(n,w[1]),0}catch(v){return i.push(Promise.resolve(`[WebGPU] Kernel "[${p}] ${h}" failed. ${v}`)),1}finally{E&&i.push(this.device.popErrorScope().then(v=>v?`GPU validation error for kernel "[${p}] ${h}": ${v.message}`:null));for(let v of this.temporaryData)this.gpuDataManager.release(v.id);this.temporaryData=[],this.currentKernelId=null}}registerBuffer(a,n,i,g){let p=this.sessionExternalDataMapping.get(a);p||(p=new Map,this.sessionExternalDataMapping.set(a,p));let h=p.get(n),C=this.gpuDataManager.registerExternalBuffer(i,g,h);return p.set(n,[C,i]),C}unregisterBuffers(a){let n=this.sessionExternalDataMapping.get(a);n&&(n.forEach(i=>this.gpuDataManager.unregisterExternalBuffer(i[0])),this.sessionExternalDataMapping.delete(a))}getBuffer(a){let n=this.gpuDataManager.get(a);if(!n)throw new Error(`no GPU data for buffer: ${a}`);return n.buffer}createDownloader(a,n,i){return async()=>{let g=await tc(this,a,n);return Tc(g.buffer,i)}}writeTimestamp(a){this.queryType==="inside-passes"&&this.computePassEncoder.writeTimestamp(this.querySet,a)}setQueryType(){var a;this.queryType="none",(((a=this.env.webgpu.profiling)==null?void 0:a.mode)==="default"||(typeof this.env.trace>"u"?this.env.wasm.trace:this.env.trace))&&(this.device.features.has("chromium-experimental-timestamp-query-inside-passes")?this.queryType="inside-passes":this.device.features.has("timestamp-query")&&(this.queryType="at-passes"),this.queryType!=="none"&&typeof this.querySet>"u"&&(this.querySet=this.device.createQuerySet({type:"timestamp",count:this.maxDispatchNumber*2}),this.queryResolveBuffer=this.device.createBuffer({size:this.maxDispatchNumber*2*8,usage:GPUBufferUsage.COPY_SRC|GPUBufferUsage.QUERY_RESOLVE})))}captureBegin(){Ft("info","captureBegin"),this.capturedCommandList.get(this.currentSessionId)||this.capturedCommandList.set(this.currentSessionId,[]),this.capturedPendingKernels.get(this.currentSessionId)||this.capturedPendingKernels.set(this.currentSessionId,[]),this.flush(),this.sessionStatus="capturing"}captureEnd(){Ft("info","captureEnd"),this.flush(),this.sessionStatus="default"}replay(){Ft("info","replay"),this.sessionStatus="replaying";let a=this.capturedCommandList.get(this.currentSessionId),n=this.capturedPendingKernels.get(this.currentSessionId),i=a.length;this.pendingKernels=[];for(let g=0;g=this.maxDispatchNumber||this.queryType==="at-passes")&&this.endComputePass(),this.pendingDispatchNumber>=this.maxDispatchNumber&&this.flush()}this.flush(),this.sessionStatus="default"}onCreateSession(){this.gpuDataManager.onCreateSession()}onReleaseSession(a){this.unregisterBuffers(a),this.capturedCommandList.has(a)&&this.capturedCommandList.delete(a),this.capturedPendingKernels.has(a)&&this.capturedPendingKernels.delete(a),this.gpuDataManager.onReleaseSession(a)}onRunStart(a){this.currentSessionId=a,this.setQueryType()}}}),XC={};mo(XC,{init:()=>ZC});var N0,im,ZC,DI=bA(()=>{ot(),xn(),mt(),z6(),N0=class JC{constructor(n,i,g,p){this.module=n,this.dataType=i,this.data=g,this.dims=p}getFloat32Array(){if(this.dataType!==1)throw new Error("Invalid data type");let n=Ze.size(this.dims);return n===0?new Float32Array:new Float32Array(this.module.HEAP8.buffer,this.data,n)}getBigInt64Array(){if(this.dataType!==7)throw new Error("Invalid data type");let n=Ze.size(this.dims);return n===0?new BigInt64Array:new BigInt64Array(this.module.HEAP8.buffer,this.data,n)}getInt32Array(){if(this.dataType!==6)throw new Error("Invalid data type");let n=Ze.size(this.dims);return n===0?new Int32Array:new Int32Array(this.module.HEAP8.buffer,this.data,n)}getUint16Array(){if(this.dataType!==10&&this.dataType!==4)throw new Error("Invalid data type");let n=Ze.size(this.dims);return n===0?new Uint16Array:new Uint16Array(this.module.HEAP8.buffer,this.data,n)}reshape(n){if(Ze.size(n)!==Ze.size(this.dims))throw new Error("Invalid new shape");return new JC(this.module,this.dataType,this.data,n)}},im=class{constructor(a,n,i){this.module=a,this.backend=n,this.customDataOffset=0,this.customDataSize=0,this.adapterInfo=n.adapterInfo;let g=a.PTR_SIZE,p=i/a.PTR_SIZE,h=g===4?"i32":"i64";this.opKernelContext=Number(a.getValue(g*p++,h));let C=Number(a.getValue(g*p++,h));this.outputCount=Number(a.getValue(g*p++,h)),this.customDataOffset=Number(a.getValue(g*p++,"*")),this.customDataSize=Number(a.getValue(g*p++,h));let w=[];for(let E=0;Etypeof w=="number"?this.inputs[w]:w))??this.inputs,g=(n==null?void 0:n.outputs)??[],p=(w,E,v)=>new N0(this.module,E,this.output(w,v),v),h=(w,E)=>{let v=Ti(w,E);if(!v)throw new Error(`Unsupported data type: ${w}`);let D=v>0?this.backend.gpuDataManager.create(v).id:0;return new N0(this.module,w,D,E)};return this.backend.run(a,i,g,p,h,this.outputCount)}output(a,n){let i=this.module.stackSave();try{let g=this.module.PTR_SIZE,p=g===4?"i32":"i64",h=this.module.stackAlloc((1+n.length)*g);this.module.setValue(h,n.length,p);for(let C=0;C{let p=n.jsepInit;if(!p)throw new Error("Failed to initialize JSEP. The WebAssembly module is not built with JSEP support.");if(a==="webgpu"){let h=(yI(),t0(UC)).WebGpuBackend,C=new h;await C.initialize(i,g),p("webgpu",[C,w=>C.alloc(Number(w)),w=>C.free(w),(w,E,v,D=!1)=>{if(D)Ft("verbose",()=>`[WebGPU] jsepCopyGpuToGpu: src=${Number(w)}, dst=${Number(E)}, size=${Number(v)}`),C.memcpy(Number(w),Number(E));else{Ft("verbose",()=>`[WebGPU] jsepCopyCpuToGpu: dataOffset=${Number(w)}, gpuDataId=${Number(E)}, size=${Number(v)}`);let B=n.HEAPU8.subarray(Number(w>>>0),Number(w>>>0)+Number(v));C.upload(Number(E),B)}},async(w,E,v)=>{Ft("verbose",()=>`[WebGPU] jsepCopyGpuToCpu: gpuDataId=${w}, dataOffset=${E}, size=${v}`),await C.download(Number(w),()=>n.HEAPU8.subarray(Number(E)>>>0,Number(E+v)>>>0))},(w,E,v)=>C.createKernel(w,Number(E),v,n.UTF8ToString(n._JsepGetNodeName(Number(E)))),w=>C.releaseKernel(w),(w,E,v,D)=>{Ft("verbose",()=>`[WebGPU] jsepRun: sessionHandle=${v}, kernel=${w}, contextDataOffset=${E}`);let B=new im(n,C,Number(E));return C.computeKernel(Number(w),B,D)},()=>C.captureBegin(),()=>C.captureEnd(),()=>C.replay()])}else{let h=new ih(i);p("webnn",[h,()=>h.reserveTensorId(),C=>h.releaseTensorId(C),async(C,w,E,v,D)=>h.ensureTensor(C,w,E,v,D),(C,w)=>{h.uploadTensor(C,w)},async(C,w)=>h.downloadTensor(C,w)])}}}),om,Rc,jc,qn,lm,_2,el,Wc,Yc,R2,Hc,Vc,Uc,qC=bA(()=>{F6(),S6(),ot(),zi(),Mc(),Ah(),om=(a,n)=>{pr()._OrtInit(a,n)!==0&&sr("Can't initialize onnxruntime.")},Rc=async a=>{om(a.wasm.numThreads,X0(a.logLevel))},jc=async(a,n)=>{var i,g;(g=(i=pr()).asyncInit)==null||g.call(i);{let p=(DI(),t0(XC)).init;if(n==="webgpu"){if(typeof navigator>"u"||!navigator.gpu)throw new Error("WebGPU is not supported in current environment");let h=a.webgpu.adapter;if(h){if(typeof h.limits!="object"||typeof h.features!="object"||typeof h.requestDevice!="function")throw new Error("Invalid GPU adapter set in `env.webgpu.adapter`. It must be a GPUAdapter object.")}else{let C=a.webgpu.powerPreference;if(C!==void 0&&C!=="low-power"&&C!=="high-performance")throw new Error(`Invalid powerPreference setting: "${C}"`);let w=a.webgpu.forceFallbackAdapter;if(w!==void 0&&typeof w!="boolean")throw new Error(`Invalid forceFallbackAdapter setting: "${w}"`);if(h=await navigator.gpu.requestAdapter({powerPreference:C,forceFallbackAdapter:w}),!h)throw new Error('Failed to get GPU adapter. You may need to enable flag "--enable-unsafe-webgpu" if you are using Chrome.')}await p("webgpu",pr(),a,h)}if(n==="webnn"){if(typeof navigator>"u"||!navigator.ml)throw new Error("WebNN is not supported in current environment");await p("webnn",pr(),a)}}},qn=new Map,lm=a=>{let n=pr(),i=n.stackSave();try{let g=n.PTR_SIZE,p=n.stackAlloc(2*g);n._OrtGetInputOutputCount(a,p,p+g)!==0&&sr("Can't get session input/output count.");let h=g===4?"i32":"i64";return[Number(n.getValue(p,h)),Number(n.getValue(p+g,h))]}finally{n.stackRestore(i)}},_2=(a,n)=>{let i=pr(),g=i.stackSave(),p=0;try{let h=i.PTR_SIZE,C=i.stackAlloc(2*h);i._OrtGetInputOutputMetadata(a,n,C,C+h)!==0&&sr("Can't get session input/output metadata.");let w=Number(i.getValue(C,"*"));p=Number(i.getValue(C+h,"*"));let E=i.HEAP32[p/4];if(E===0)return[w,0];let v=i.HEAPU32[p/4+1],D=[];for(let B=0;B{let n=pr(),i=n._malloc(a.byteLength);if(i===0)throw new Error(`Can't create a session. failed to allocate a buffer of size ${a.byteLength}.`);return n.HEAPU8.set(a,i),[i,a.byteLength]},Wc=async(a,n)=>{var B,x,S,F;let i,g,p=pr();Array.isArray(a)?[i,g]=a:a.buffer===p.HEAPU8.buffer?[i,g]=[a.byteOffset,a.byteLength]:[i,g]=el(a);let h=0,C=0,w=0,E=[],v=[],D=[];try{if([C,E]=await eh(n),(n==null?void 0:n.externalData)&&p.mountExternalData){let y=[];for(let $ of n.externalData){let T=typeof $=="string"?$:$.path;y.push(yc(typeof $=="string"?$:$.data).then(O=>{p.mountExternalData(T,O)}))}await Promise.all(y)}for(let y of(n==null?void 0:n.executionProviders)??[])if((typeof y=="string"?y:y.name)==="webnn"){if(p.shouldTransferToMLTensor=!1,typeof y!="string"){let $=y,T=$==null?void 0:$.context,O=$==null?void 0:$.gpuDevice,Ce=$==null?void 0:$.deviceType,Ae=$==null?void 0:$.powerPreference;T?p.currentContext=T:O?p.currentContext=await p.webnnCreateMLContext(O):p.currentContext=await p.webnnCreateMLContext({deviceType:Ce,powerPreference:Ae})}else p.currentContext=await p.webnnCreateMLContext();break}h=await p._OrtCreateSession(i,g,C),(B=p.webgpuOnCreateSession)==null||B.call(p,h),h===0&&sr("Can't create a session."),(x=p.jsepOnCreateSession)==null||x.call(p),p.currentContext&&(p.webnnRegisterMLContext(h,p.currentContext),p.currentContext=void 0,p.shouldTransferToMLTensor=!0);let[R,K]=lm(h),L=!!(n!=null&&n.enableGraphCapture),N=[],V=[],d=[],k=[],e=[];for(let y=0;yy==="gpu-buffer"||y==="ml-tensor")&&(w=p._OrtCreateBinding(h),w===0&&sr("Can't create IO binding."),u={handle:w,outputPreferredLocations:e,outputPreferredLocationsEncoded:e.map(y=>ec(y))}),qn.set(h,[h,v,D,u,L,!1]),[h,N,V,d,k]}catch(R){throw v.forEach(K=>p._OrtFree(K)),D.forEach(K=>p._OrtFree(K)),w!==0&&p._OrtReleaseBinding(w)!==0&&sr("Can't release IO binding."),h!==0&&p._OrtReleaseSession(h)!==0&&sr("Can't release session."),R}finally{p._free(i),C!==0&&p._OrtReleaseSessionOptions(C)!==0&&sr("Can't release session options."),E.forEach(R=>p._free(R)),(F=p.unmountExternalData)==null||F.call(p)}},Yc=a=>{var E,v,D;let n=pr(),i=qn.get(a);if(!i)throw new Error(`cannot release session. invalid session id: ${a}`);let[g,p,h,C,w]=i;C&&(w&&n._OrtClearBoundOutputs(C.handle)!==0&&sr("Can't clear bound outputs."),n._OrtReleaseBinding(C.handle)!==0&&sr("Can't release IO binding.")),(E=n.jsepOnReleaseSession)==null||E.call(n,a),(v=n.webnnOnReleaseSession)==null||v.call(n,a),(D=n.webgpuOnReleaseSession)==null||D.call(n,a),p.forEach(B=>n._OrtFree(B)),h.forEach(B=>n._OrtFree(B)),n._OrtReleaseSession(g)!==0&&sr("Can't release session."),qn.delete(a)},R2=async(a,n,i,g,p,h,C=!1)=>{if(!a){n.push(0);return}let w=pr(),E=w.PTR_SIZE,v=a[0],D=a[1],B=a[3],x=B,S,F;if(v==="string"&&(B==="gpu-buffer"||B==="ml-tensor"))throw new Error("String tensor is not supported on GPU.");if(C&&B!=="gpu-buffer")throw new Error(`External buffer must be provided for input/output index ${h} when enableGraphCapture is true.`);if(B==="gpu-buffer"){let L=a[2].gpuBuffer;F=Ti(ro(v),D);{let N=w.jsepRegisterBuffer;if(!N)throw new Error('Tensor location "gpu-buffer" is not supported without using WebGPU.');S=N(g,h,L,F)}}else if(B==="ml-tensor"){let L=a[2].mlTensor;F=Ti(ro(v),D);let N=w.webnnRegisterMLTensor;if(!N)throw new Error('Tensor location "ml-tensor" is not supported without using WebNN.');S=N(g,L,ro(v),D)}else{let L=a[2];if(Array.isArray(L)){F=E*L.length,S=w._malloc(F),i.push(S);for(let N=0;Nw.setValue(K+V*E,N,E===4?"i32":"i64"));let L=w._OrtCreateTensor(ro(v),S,F,K,D.length,ec(x));L===0&&sr(`Can't create tensor for input/output. session=${g}, index=${h}.`),n.push(L)}finally{w.stackRestore(R)}},Hc=async(a,n,i,g,p,h)=>{var O,Ce,Ae,be;let C=pr(),w=C.PTR_SIZE,E=qn.get(a);if(!E)throw new Error(`cannot run inference. invalid session id: ${a}`);let v=E[0],D=E[1],B=E[2],x=E[3],S=E[4],F=E[5],R=n.length,K=g.length,L=0,N=[],V=[],d=[],k=[],e=C.stackSave(),u=C.stackAlloc(R*w),y=C.stackAlloc(R*w),$=C.stackAlloc(K*w),T=C.stackAlloc(K*w);try{[L,N]=$m(h);for(let ke=0;kefe*ye,1);ee=Bn(Ye);let Le=x==null?void 0:x.outputPreferredLocations[g[ke]];if(ee==="string"){if(Le==="gpu-buffer"||Le==="ml-tensor")throw new Error("String tensor is not supported on GPU.");let fe=[];for(let ye=0;ye0){let fe=C.jsepGetBuffer;if(!fe)throw new Error('preferredLocation "gpu-buffer" is not supported without using WebGPU.');let ye=fe(de),ge=Ti(Ye,MA);if(ge===void 0||!vc(ee))throw new Error(`Unsupported data type: ${ee}`);ue=!0,Ee.push([ee,pA,{gpuBuffer:ye,download:C.jsepCreateDownloader(ye,ge,ee),dispose:()=>{C._OrtReleaseTensor(De)!==0&&sr("Can't release tensor.")}},"gpu-buffer"])}else if(Le==="ml-tensor"&&MA>0){let fe=C.webnnEnsureTensor,ye=C.webnnIsInt64Supported;if(!fe||!ye)throw new Error('preferredLocation "ml-tensor" is not supported without using WebNN.');if(Ti(Ye,MA)===void 0||!xc(ee))throw new Error(`Unsupported data type: ${ee}`);if(ee==="int64"&&!ye(a))throw new Error('preferredLocation "ml-tensor" for int64 output is not supported by current WebNN Context.');let ge=await fe(a,de,Ye,pA,!1);ue=!0,Ee.push([ee,pA,{mlTensor:ge,download:C.webnnCreateMLTensorDownloader(de,ee),dispose:()=>{C.webnnReleaseTensorId(de),C._OrtReleaseTensor(De)}},"ml-tensor"])}else{let fe=Bc(ee),ye=new fe(MA);new Uint8Array(ye.buffer,ye.byteOffset,ye.byteLength).set(C.HEAPU8.subarray(de,de+ye.byteLength)),Ee.push([ee,pA,ye,"cpu"])}}finally{C.stackRestore(Re),ee==="string"&&de&&C._free(de),ue||C._OrtReleaseTensor(De),(be=C.webnnOnRunEnd)==null||be.call(C,v)}}return x&&!S&&(C._OrtClearBoundOutputs(x.handle)!==0&&sr("Can't clear bound outputs."),qn.set(a,[v,D,B,x,S,!1])),Ee}finally{C.stackRestore(e),V.forEach(he=>C._OrtReleaseTensor(he)),d.forEach(he=>C._OrtReleaseTensor(he)),k.forEach(he=>C._free(he)),L!==0&&C._OrtReleaseRunOptions(L),N.forEach(he=>C._free(he))}},Vc=a=>{let n=pr(),i=qn.get(a);if(!i)throw new Error("invalid session id");let g=i[0],p=n._OrtEndProfiling(g);p===0&&sr("Can't get an profile file name."),n._OrtFree(p)},Uc=a=>{let n=[];for(let i of a){let g=i[2];!Array.isArray(g)&&"buffer"in g&&n.push(g.buffer)}return n}}),$n,Zs,Ao,Ro,jo,L0,j2,_0,Bi,vi,cm,$C,eb,Ab,tb,rb,sb,ab,nb=bA(()=>{Na(),qC(),zi(),kc(),$n=()=>!!Ir.wasm.proxy&&typeof document<"u",Ao=!1,Ro=!1,jo=!1,_0=new Map,Bi=(a,n)=>{let i=_0.get(a);i?i.push(n):_0.set(a,[n])},vi=()=>{if(Ao||!Ro||jo||!Zs)throw new Error("worker not ready")},cm=a=>{switch(a.data.type){case"init-wasm":Ao=!1,a.data.err?(jo=!0,j2[1](a.data.err)):(Ro=!0,j2[0]()),L0&&(URL.revokeObjectURL(L0),L0=void 0);break;case"init-ep":case"copy-from":case"create":case"release":case"run":case"end-profiling":{let n=_0.get(a.data.type);a.data.err?n.shift()[1](a.data.err):n.shift()[0](a.data.out);break}}},$C=async()=>{if(!Ro){if(Ao)throw new Error("multiple calls to 'initWasm()' detected.");if(jo)throw new Error("previous call to 'initWasm()' failed.");if(Ao=!0,$n())return new Promise((a,n)=>{Zs==null||Zs.terminate(),Jm().then(([i,g])=>{try{Zs=g,Zs.onerror=h=>n(h),Zs.onmessage=cm,j2=[a,n];let p={type:"init-wasm",in:Ir};!p.in.wasm.wasmPaths&&(i||$2)&&(p.in.wasm.wasmPaths={wasm:new URL("/assets/ort-wasm-simd-threaded.jsep-B0T3yYHD.wasm",import.meta.url).href}),Zs.postMessage(p),L0=i}catch(p){n(p)}},n)});try{await Ec(Ir.wasm),await Rc(Ir),Ro=!0}catch(a){throw jo=!0,a}finally{Ao=!1}}},eb=async a=>{if($n())return vi(),new Promise((n,i)=>{Bi("init-ep",[n,i]);let g={type:"init-ep",in:{epName:a,env:Ir}};Zs.postMessage(g)});await jc(Ir,a)},Ab=async a=>$n()?(vi(),new Promise((n,i)=>{Bi("copy-from",[n,i]);let g={type:"copy-from",in:{buffer:a}};Zs.postMessage(g,[a.buffer])})):el(a),tb=async(a,n)=>{if($n()){if(n!=null&&n.preferredOutputLocation)throw new Error('session option "preferredOutputLocation" is not supported for proxy.');return vi(),new Promise((i,g)=>{Bi("create",[i,g]);let p={type:"create",in:{model:a,options:{...n}}},h=[];a instanceof Uint8Array&&h.push(a.buffer),Zs.postMessage(p,h)})}else return Wc(a,n)},rb=async a=>{if($n())return vi(),new Promise((n,i)=>{Bi("release",[n,i]);let g={type:"release",in:a};Zs.postMessage(g)});Yc(a)},sb=async(a,n,i,g,p,h)=>{if($n()){if(i.some(C=>C[3]!=="cpu"))throw new Error("input tensor on GPU is not supported for proxy.");if(p.some(C=>C))throw new Error("pre-allocated output tensor is not supported for proxy.");return vi(),new Promise((C,w)=>{Bi("run",[C,w]);let E=i,v={type:"run",in:{sessionId:a,inputIndices:n,inputs:E,outputIndices:g,options:h}};Zs.postMessage(v,Uc(E))})}else return Hc(a,n,i,g,p,h)},ab=async a=>{if($n())return vi(),new Promise((n,i)=>{Bi("end-profiling",[n,i]);let g={type:"end-profiling",in:a};Zs.postMessage(g)});Vc(a)}}),W2,um,ib,TI=bA(()=>{Na(),nb(),ot(),wc(),Ah(),W2=(a,n)=>{switch(a.location){case"cpu":return[a.type,a.dims,a.data,"cpu"];case"gpu-buffer":return[a.type,a.dims,{gpuBuffer:a.gpuBuffer},"gpu-buffer"];case"ml-tensor":return[a.type,a.dims,{mlTensor:a.mlTensor},"ml-tensor"];default:throw new Error(`invalid data location: ${a.location} for ${n()}`)}},um=a=>{switch(a[3]){case"cpu":return new Sa(a[0],a[2],a[1]);case"gpu-buffer":{let n=a[0];if(!vc(n))throw new Error(`not supported data type: ${n} for deserializing GPU tensor`);let{gpuBuffer:i,download:g,dispose:p}=a[2];return Sa.fromGpuBuffer(i,{dataType:n,dims:a[1],download:g,dispose:p})}case"ml-tensor":{let n=a[0];if(!xc(n))throw new Error(`not supported data type: ${n} for deserializing MLTensor tensor`);let{mlTensor:i,download:g,dispose:p}=a[2];return Sa.fromMLTensor(i,{dataType:n,dims:a[1],download:g,dispose:p})}default:throw new Error(`invalid data location: ${a[3]}`)}},ib=class{async fetchModelAndCopyToWasmMemory(a){return Ab(await yc(a))}async loadModel(a,n){za();let i;typeof a=="string"?i=await this.fetchModelAndCopyToWasmMemory(a):i=a,[this.sessionId,this.inputNames,this.outputNames,this.inputMetadata,this.outputMetadata]=await tb(i,n),Ca()}async dispose(){return rb(this.sessionId)}async run(a,n,i){za();let g=[],p=[];Object.entries(a).forEach(B=>{let x=B[0],S=B[1],F=this.inputNames.indexOf(x);if(F===-1)throw new Error(`invalid input '${x}'`);g.push(S),p.push(F)});let h=[],C=[];Object.entries(n).forEach(B=>{let x=B[0],S=B[1],F=this.outputNames.indexOf(x);if(F===-1)throw new Error(`invalid output '${x}'`);h.push(S),C.push(F)});let w=g.map((B,x)=>W2(B,()=>`input "${this.inputNames[p[x]]}"`)),E=h.map((B,x)=>B?W2(B,()=>`output "${this.outputNames[C[x]]}"`):null),v=await sb(this.sessionId,p,w,C,E,i),D={};for(let B=0;Bgc,initializeFlags:()=>fc,wasmBackend:()=>lb});var fc,gc,lb,GI=bA(()=>{Na(),nb(),TI(),fc=()=>{(typeof Ir.wasm.initTimeout!="number"||Ir.wasm.initTimeout<0)&&(Ir.wasm.initTimeout=0);let a=Ir.wasm.simd;if(typeof a!="boolean"&&a!==void 0&&a!=="fixed"&&a!=="relaxed"&&(console.warn(`Property "env.wasm.simd" is set to unknown value "${a}". Reset it to \`false\` and ignore SIMD feature checking.`),Ir.wasm.simd=!1),typeof Ir.wasm.proxy!="boolean"&&(Ir.wasm.proxy=!1),typeof Ir.wasm.trace!="boolean"&&(Ir.wasm.trace=!1),typeof Ir.wasm.numThreads!="number"||!Number.isInteger(Ir.wasm.numThreads)||Ir.wasm.numThreads<=0)if(typeof self<"u"&&!self.crossOriginIsolated)Ir.wasm.numThreads=1;else{let n=typeof navigator>"u"?h6("node:os").cpus().length:navigator.hardwareConcurrency;Ir.wasm.numThreads=Math.min(4,Math.ceil((n||1)/2))}},gc=class{async init(a){fc(),await $C(),await eb(a)}async createInferenceSessionHandler(a,n){let i=new ib;return await i.loadModel(a,n),i}},lb=new gc});Na();Na();Na();var PI="1.22.0-dev.20250409-89f8206ba4",QI=Hm;{let a=(GI(),t0(ob)).wasmBackend;Gi("webgpu",a,5),Gi("webnn",a,5),Gi("cpu",a,10),Gi("wasm",a,10)}Object.defineProperty(Ir.versions,"web",{value:PI,enumerable:!0});/** +* @license +* Copyright 2021 Google LLC. All Rights Reserved. +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* ============================================================================= +*//** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + *//** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */var FI=Object.freeze({__proto__:null,get InferenceSession(){return Ic},get TRACE(){return r0},get TRACE_FUNC_BEGIN(){return za},get TRACE_FUNC_END(){return Ca},get Tensor(){return Sa},default:QI,get env(){return Ir},get registerBackend(){return Gi}}),kn={},SI={"onnxruntime-common":a=>{a.exports=f6},"onnxruntime-web":a=>{a.exports=FI},"?2ce3":()=>{},"?7a2c":()=>{},"?a42a":()=>{},"?2b25":()=>{},"?569f":()=>{},"?3f59":()=>{},"?154a":()=>{},"./node_modules/@huggingface/jinja/dist/index.js":(a,n,i)=>{i.r(n),i.d(n,{Environment:()=>fA,Interpreter:()=>me,Template:()=>Ts,parse:()=>de,tokenize:()=>B});var g=Object.freeze({Text:"Text",NumericLiteral:"NumericLiteral",BooleanLiteral:"BooleanLiteral",NullLiteral:"NullLiteral",StringLiteral:"StringLiteral",Identifier:"Identifier",Equals:"Equals",OpenParen:"OpenParen",CloseParen:"CloseParen",OpenStatement:"OpenStatement",CloseStatement:"CloseStatement",OpenExpression:"OpenExpression",CloseExpression:"CloseExpression",OpenSquareBracket:"OpenSquareBracket",CloseSquareBracket:"CloseSquareBracket",OpenCurlyBracket:"OpenCurlyBracket",CloseCurlyBracket:"CloseCurlyBracket",Comma:"Comma",Dot:"Dot",Colon:"Colon",Pipe:"Pipe",CallOperator:"CallOperator",AdditiveBinaryOperator:"AdditiveBinaryOperator",MultiplicativeBinaryOperator:"MultiplicativeBinaryOperator",ComparisonBinaryOperator:"ComparisonBinaryOperator",UnaryOperator:"UnaryOperator",Set:"Set",If:"If",For:"For",In:"In",Is:"Is",NotIn:"NotIn",Else:"Else",EndSet:"EndSet",EndIf:"EndIf",ElseIf:"ElseIf",EndFor:"EndFor",And:"And",Or:"Or",Not:"UnaryOperator",Macro:"Macro",EndMacro:"EndMacro",Break:"Break",Continue:"Continue"}),p=Object.freeze({set:g.Set,for:g.For,in:g.In,is:g.Is,if:g.If,else:g.Else,endset:g.EndSet,endif:g.EndIf,elif:g.ElseIf,endfor:g.EndFor,and:g.And,or:g.Or,not:g.Not,"not in":g.NotIn,macro:g.Macro,endmacro:g.EndMacro,break:g.Break,continue:g.Continue,true:g.BooleanLiteral,false:g.BooleanLiteral,none:g.NullLiteral,True:g.BooleanLiteral,False:g.BooleanLiteral,None:g.NullLiteral}),h=class{constructor(se,Te){this.value=se,this.type=Te}};function C(se){return/\w/.test(se)}function w(se){return/[0-9]/.test(se)}var E=[["{%",g.OpenStatement],["%}",g.CloseStatement],["{{",g.OpenExpression],["}}",g.CloseExpression],["(",g.OpenParen],[")",g.CloseParen],["{",g.OpenCurlyBracket],["}",g.CloseCurlyBracket],["[",g.OpenSquareBracket],["]",g.CloseSquareBracket],[",",g.Comma],[".",g.Dot],[":",g.Colon],["|",g.Pipe],["<=",g.ComparisonBinaryOperator],[">=",g.ComparisonBinaryOperator],["==",g.ComparisonBinaryOperator],["!=",g.ComparisonBinaryOperator],["<",g.ComparisonBinaryOperator],[">",g.ComparisonBinaryOperator],["+",g.AdditiveBinaryOperator],["-",g.AdditiveBinaryOperator],["*",g.MultiplicativeBinaryOperator],["/",g.MultiplicativeBinaryOperator],["%",g.MultiplicativeBinaryOperator],["=",g.Equals]],v=new Map([["n",` +`],["t"," "],["r","\r"],["b","\b"],["f","\f"],["v","\v"],["'","'"],['"','"'],["\\","\\"]]);function D(se,Te={}){return se.endsWith(` +`)&&(se=se.slice(0,-1)),se=se.replace(/{#.*?#}/gs,"{##}"),Te.lstrip_blocks&&(se=se.replace(/^[ \t]*({[#%])/gm,"$1")),Te.trim_blocks&&(se=se.replace(/([#%]})\n/g,"$1")),se.replace(/{##}/g,"").replace(/-%}\s*/g,"%}").replace(/\s*{%-/g,"{%").replace(/-}}\s*/g,"}}").replace(/\s*{{-/g,"{{")}function B(se,Te={}){var je,At,Tt;const ne=[],ve=D(se,Te);let _e=0;const lA=XA=>{let WA="";for(;XA(ve[_e]);){if(ve[_e]==="\\"){if(++_e,_e>=ve.length)throw new SyntaxError("Unexpected end of input");const LA=ve[_e++],St=v.get(LA);if(St===void 0)throw new SyntaxError(`Unexpected escaped character: ${LA}`);WA+=St;continue}if(WA+=ve[_e++],_e>=ve.length)throw new SyntaxError("Unexpected end of input")}return WA};e:for(;_e0){ne.push(new h(LA,g.Text));continue}}lA(LA=>/\s/.test(LA));const WA=ve[_e];if(WA==="-"||WA==="+"){const LA=(At=ne.at(-1))==null?void 0:At.type;if(LA===g.Text||LA===void 0)throw new SyntaxError(`Unexpected character: ${WA}`);switch(LA){case g.Identifier:case g.NumericLiteral:case g.BooleanLiteral:case g.NullLiteral:case g.StringLiteral:case g.CloseParen:case g.CloseSquareBracket:break;default:{++_e;const St=lA(w);ne.push(new h(`${WA}${St}`,St.length>0?g.NumericLiteral:g.UnaryOperator));continue}}}for(const[LA,St]of E)if(ve.slice(_e,_e+LA.length)===LA){ne.push(new h(LA,St)),_e+=LA.length;continue e}if(WA==="'"||WA==='"'){++_e;const LA=lA(St=>St!==WA);ne.push(new h(LA,g.StringLiteral)),++_e;continue}if(w(WA)){const LA=lA(w);ne.push(new h(LA,g.NumericLiteral));continue}if(C(WA)){const LA=lA(C),St=Object.hasOwn(p,LA)?p[LA]:g.Identifier;St===g.In&&((Tt=ne.at(-1))==null?void 0:Tt.type)===g.Not?(ne.pop(),ne.push(new h("not in",g.NotIn))):ne.push(new h(LA,St));continue}throw new SyntaxError(`Unexpected character: ${WA}`)}return ne}var x=class{constructor(){Be(this,"type","Statement")}},S=class extends x{constructor(Te){super();Be(this,"type","Program");this.body=Te}},F=class extends x{constructor(Te,ne,ve){super();Be(this,"type","If");this.test=Te,this.body=ne,this.alternate=ve}},R=class extends x{constructor(Te,ne,ve,_e){super();Be(this,"type","For");this.loopvar=Te,this.iterable=ne,this.body=ve,this.defaultBlock=_e}},K=class extends x{constructor(){super(...arguments);Be(this,"type","Break")}},L=class extends x{constructor(){super(...arguments);Be(this,"type","Continue")}},N=class extends x{constructor(Te,ne,ve){super();Be(this,"type","Set");this.assignee=Te,this.value=ne,this.body=ve}},V=class extends x{constructor(Te,ne,ve){super();Be(this,"type","Macro");this.name=Te,this.args=ne,this.body=ve}},d=class extends x{constructor(){super(...arguments);Be(this,"type","Expression")}},k=class extends d{constructor(Te,ne,ve){super();Be(this,"type","MemberExpression");this.object=Te,this.property=ne,this.computed=ve}},e=class extends d{constructor(Te,ne){super();Be(this,"type","CallExpression");this.callee=Te,this.args=ne}},u=class extends d{constructor(Te){super();Be(this,"type","Identifier");this.value=Te}},y=class extends d{constructor(Te){super();Be(this,"type","Literal");this.value=Te}},$=class extends y{constructor(){super(...arguments);Be(this,"type","NumericLiteral")}},T=class extends y{constructor(){super(...arguments);Be(this,"type","StringLiteral")}},O=class extends y{constructor(){super(...arguments);Be(this,"type","BooleanLiteral")}},Ce=class extends y{constructor(){super(...arguments);Be(this,"type","NullLiteral")}},Ae=class extends y{constructor(){super(...arguments);Be(this,"type","ArrayLiteral")}},be=class extends y{constructor(){super(...arguments);Be(this,"type","TupleLiteral")}},he=class extends y{constructor(){super(...arguments);Be(this,"type","ObjectLiteral")}},Ee=class extends d{constructor(Te,ne,ve){super();Be(this,"type","BinaryExpression");this.operator=Te,this.left=ne,this.right=ve}},ke=class extends d{constructor(Te,ne){super();Be(this,"type","FilterExpression");this.operand=Te,this.filter=ne}},De=class extends d{constructor(Te,ne){super();Be(this,"type","SelectExpression");this.iterable=Te,this.test=ne}},Re=class extends d{constructor(Te,ne,ve){super();Be(this,"type","TestExpression");this.operand=Te,this.negate=ne,this.test=ve}},Qe=class extends d{constructor(Te,ne){super();Be(this,"type","UnaryExpression");this.operator=Te,this.argument=ne}},ue=class extends d{constructor(Te=void 0,ne=void 0,ve=void 0){super();Be(this,"type","SliceExpression");this.start=Te,this.stop=ne,this.step=ve}},ee=class extends d{constructor(Te,ne){super();Be(this,"type","KeywordArgumentExpression");this.key=Te,this.value=ne}};function de(se){const Te=new S([]);let ne=0;function ve(iA,IA){const jA=se[ne++];if(!jA||jA.type!==iA)throw new Error(`Parser Error: ${IA}. ${jA.type} !== ${iA}.`);return jA}function _e(){switch(se[ne].type){case g.Text:return At();case g.OpenStatement:return Tt();case g.OpenExpression:return XA();default:throw new SyntaxError(`Unexpected token type: ${se[ne].type}`)}}function lA(...iA){return ne+iA.length<=se.length&&iA.some((IA,jA)=>IA!==se[ne+jA].type)}function je(...iA){return ne+iA.length<=se.length&&iA.every((IA,jA)=>IA===se[ne+jA].type)}function At(){return new T(ve(g.Text,"Expected text token").value)}function Tt(){ve(g.OpenStatement,"Expected opening statement token");let iA;switch(se[ne].type){case g.Set:++ne,iA=WA(),ve(g.CloseStatement,"Expected closing statement token");break;case g.If:++ne,iA=LA(),ve(g.OpenStatement,"Expected {% token"),ve(g.EndIf,"Expected endif token"),ve(g.CloseStatement,"Expected %} token");break;case g.Macro:++ne,iA=St(),ve(g.OpenStatement,"Expected {% token"),ve(g.EndMacro,"Expected endmacro token"),ve(g.CloseStatement,"Expected %} token");break;case g.For:++ne,iA=Ot(),ve(g.OpenStatement,"Expected {% token"),ve(g.EndFor,"Expected endfor token"),ve(g.CloseStatement,"Expected %} token");break;case g.Break:++ne,ve(g.CloseStatement,"Expected closing statement token"),iA=new K;break;case g.Continue:++ne,ve(g.CloseStatement,"Expected closing statement token"),iA=new L;break;default:throw new SyntaxError(`Unknown statement type: ${se[ne].type}`)}return iA}function XA(){ve(g.OpenExpression,"Expected opening expression token");const iA=FA();return ve(g.CloseExpression,"Expected closing expression token"),iA}function WA(){var IA,jA;const iA=FA();if(je(g.Equals)){++ne;const Gt=FA();return new N(iA,Gt,[])}else{const Gt=[];for(ve(g.CloseStatement,"Expected %} token");!(((IA=se[ne])==null?void 0:IA.type)===g.OpenStatement&&((jA=se[ne+1])==null?void 0:jA.type)===g.EndSet);){const Qs=_e();Gt.push(Qs)}return ve(g.OpenStatement,"Expected {% token"),ve(g.EndSet,"Expected endset token"),new N(iA,null,Gt)}}function LA(){var Gt,Qs,Is,vr,ws,mr,SA,Gr;const iA=FA();ve(g.CloseStatement,"Expected closing statement token");const IA=[],jA=[];for(;!(((Gt=se[ne])==null?void 0:Gt.type)===g.OpenStatement&&(((Qs=se[ne+1])==null?void 0:Qs.type)===g.ElseIf||((Is=se[ne+1])==null?void 0:Is.type)===g.Else||((vr=se[ne+1])==null?void 0:vr.type)===g.EndIf));)IA.push(_e());if(((ws=se[ne])==null?void 0:ws.type)===g.OpenStatement&&((mr=se[ne+1])==null?void 0:mr.type)!==g.EndIf)if(++ne,je(g.ElseIf))ve(g.ElseIf,"Expected elseif token"),jA.push(LA());else for(ve(g.Else,"Expected else token"),ve(g.CloseStatement,"Expected closing statement token");!(((SA=se[ne])==null?void 0:SA.type)===g.OpenStatement&&((Gr=se[ne+1])==null?void 0:Gr.type)===g.EndIf);)jA.push(_e());return new F(iA,IA,jA)}function St(){const iA=Lr();if(iA.type!=="Identifier")throw new SyntaxError("Expected identifier following macro statement");const IA=Ps();ve(g.CloseStatement,"Expected closing statement token");const jA=[];for(;lA(g.OpenStatement,g.EndMacro);)jA.push(_e());return new V(iA,IA,jA)}function Vt(iA=!1){const IA=iA?Lr:FA,jA=[IA()],Gt=je(g.Comma);for(;Gt&&(++ne,jA.push(IA()),!!je(g.Comma)););return Gt?new be(jA):jA[0]}function Ot(){const iA=Vt(!0);if(!(iA instanceof u||iA instanceof be))throw new SyntaxError(`Expected identifier/tuple for the loop variable, got ${iA.type} instead`);ve(g.In,"Expected `in` keyword following loop variable");const IA=FA();ve(g.CloseStatement,"Expected closing statement token");const jA=[];for(;lA(g.OpenStatement,g.EndFor)&&lA(g.OpenStatement,g.Else);)jA.push(_e());const Gt=[];if(je(g.OpenStatement,g.Else))for(++ne,++ne,ve(g.CloseStatement,"Expected closing statement token");lA(g.OpenStatement,g.EndFor);)Gt.push(_e());return new R(iA,IA,jA,Gt)}function FA(){return cr()}function cr(){const iA=Gs();if(je(g.If)){++ne;const IA=Gs();if(je(g.Else)){++ne;const jA=Gs();return new F(IA,[iA],[jA])}else return new De(iA,IA)}return iA}function Gs(){let iA=js();for(;je(g.Or);){const IA=se[ne];++ne;const jA=js();iA=new Ee(IA,iA,jA)}return iA}function js(){let iA=Cs();for(;je(g.And);){const IA=se[ne];++ne;const jA=Cs();iA=new Ee(IA,iA,jA)}return iA}function Cs(){let iA;for(;je(g.Not);){const IA=se[ne];++ne;const jA=Cs();iA=new Qe(IA,jA)}return iA??qs()}function qs(){let iA=ds();for(;je(g.ComparisonBinaryOperator)||je(g.In)||je(g.NotIn);){const IA=se[ne];++ne;const jA=ds();iA=new Ee(IA,iA,jA)}return iA}function ds(){let iA=ea();for(;je(g.AdditiveBinaryOperator);){const IA=se[ne];++ne;const jA=ea();iA=new Ee(IA,iA,jA)}return iA}function bs(){const iA=Ut(Lr());return je(g.OpenParen)?Ms(iA):iA}function Ms(iA){let IA=new e(iA,Ps());return IA=Ut(IA),je(g.OpenParen)&&(IA=Ms(IA)),IA}function Ps(){ve(g.OpenParen,"Expected opening parenthesis for arguments list");const iA=Ws();return ve(g.CloseParen,"Expected closing parenthesis for arguments list"),iA}function Ws(){const iA=[];for(;!je(g.CloseParen);){let IA=FA();if(je(g.Equals)){if(++ne,!(IA instanceof u))throw new SyntaxError("Expected identifier for keyword argument");const jA=FA();IA=new ee(IA,jA)}iA.push(IA),je(g.Comma)&&++ne}return iA}function $s(){const iA=[];let IA=!1;for(;!je(g.CloseSquareBracket);)je(g.Colon)?(iA.push(void 0),++ne,IA=!0):(iA.push(FA()),je(g.Colon)&&(++ne,IA=!0));if(iA.length===0)throw new SyntaxError("Expected at least one argument for member/slice expression");if(IA){if(iA.length>3)throw new SyntaxError("Expected 0-3 arguments for slice expression");return new ue(...iA)}return iA[0]}function Ut(iA){for(;je(g.Dot)||je(g.OpenSquareBracket);){const IA=se[ne];++ne;let jA;const Gt=IA.type!==g.Dot;if(Gt)jA=$s(),ve(g.CloseSquareBracket,"Expected closing square bracket");else if(jA=Lr(),jA.type!=="Identifier")throw new SyntaxError("Expected identifier following dot operator");iA=new k(iA,jA,Gt)}return iA}function ea(){let iA=Yr();for(;je(g.MultiplicativeBinaryOperator);){const IA=se[ne];++ne;const jA=Yr();iA=new Ee(IA,iA,jA)}return iA}function Yr(){let iA=Ys();for(;je(g.Is);){++ne;const IA=je(g.Not);IA&&++ne;let jA=Lr();if(jA instanceof O?jA=new u(jA.value.toString()):jA instanceof Ce&&(jA=new u("none")),!(jA instanceof u))throw new SyntaxError("Expected identifier for the test");iA=new Re(iA,IA,jA)}return iA}function Ys(){let iA=bs();for(;je(g.Pipe);){++ne;let IA=Lr();if(!(IA instanceof u))throw new SyntaxError("Expected identifier for the filter");je(g.OpenParen)&&(IA=Ms(IA)),iA=new ke(iA,IA)}return iA}function Lr(){const iA=se[ne];switch(iA.type){case g.NumericLiteral:return++ne,new $(Number(iA.value));case g.StringLiteral:return++ne,new T(iA.value);case g.BooleanLiteral:return++ne,new O(iA.value.toLowerCase()==="true");case g.NullLiteral:return++ne,new Ce(null);case g.Identifier:return++ne,new u(iA.value);case g.OpenParen:{++ne;const IA=Vt();if(se[ne].type!==g.CloseParen)throw new SyntaxError(`Expected closing parenthesis, got ${se[ne].type} instead`);return++ne,IA}case g.OpenSquareBracket:{++ne;const IA=[];for(;!je(g.CloseSquareBracket);)IA.push(FA()),je(g.Comma)&&++ne;return++ne,new Ae(IA)}case g.OpenCurlyBracket:{++ne;const IA=new Map;for(;!je(g.CloseCurlyBracket);){const jA=FA();ve(g.Colon,"Expected colon between key and value in object literal");const Gt=FA();IA.set(jA,Gt),je(g.Comma)&&++ne}return++ne,new he(IA)}default:throw new SyntaxError(`Unexpected token: ${iA.type}`)}}for(;ne=0?(Te=(Te??(Te=0))<0?Math.max(se.length+Te,0):Math.min(Te,se.length),ne=(ne??(ne=se.length))<0?Math.max(se.length+ne,0):Math.min(ne,se.length)):(Te=(Te??(Te=se.length-1))<0?Math.max(se.length+Te,-1):Math.min(Te,se.length-1),ne=(ne??(ne=-1))<-1?Math.max(se.length+ne,-1):Math.min(ne,se.length-1));const lA=[];for(let je=Te;_e*je<_e*ne;je+=ve)lA.push(se[je]);return lA}function Fe(se){return se.replace(/\b\w/g,Te=>Te.toUpperCase())}var qe=class extends Error{},pA=class extends Error{},MA=class{constructor(se=void 0){Be(this,"type","RuntimeValue");Be(this,"value");Be(this,"builtins",new Map);this.value=se}__bool__(){return new ye(!!this.value)}},Le=class extends MA{constructor(){super(...arguments);Be(this,"type","NumericValue")}},fe=class extends MA{constructor(){super(...arguments);Be(this,"type","StringValue");Be(this,"builtins",new Map([["upper",new AA(()=>new fe(this.value.toUpperCase()))],["lower",new AA(()=>new fe(this.value.toLowerCase()))],["strip",new AA(()=>new fe(this.value.trim()))],["title",new AA(()=>new fe(Fe(this.value)))],["length",new Le(this.value.length)],["rstrip",new AA(()=>new fe(this.value.trimEnd()))],["lstrip",new AA(()=>new fe(this.value.trimStart()))],["startswith",new AA(Te=>{if(Te.length===0)throw new Error("startswith() requires at least one argument");const ne=Te[0];if(!(ne instanceof fe))throw new Error("startswith() argument must be a string");return new ye(this.value.startsWith(ne.value))})],["endswith",new AA(Te=>{if(Te.length===0)throw new Error("endswith() requires at least one argument");const ne=Te[0];if(!(ne instanceof fe))throw new Error("endswith() argument must be a string");return new ye(this.value.endsWith(ne.value))})],["split",new AA(Te=>{const ne=Te[0]??new H;if(!(ne instanceof fe||ne instanceof H))throw new Error("sep argument must be a string or null");const ve=Te[1]??new Le(-1);if(!(ve instanceof Le))throw new Error("maxsplit argument must be a number");let _e=[];if(ne instanceof H){const lA=this.value.trimStart();for(const{0:je,index:At}of lA.matchAll(/\S+/g)){if(ve.value!==-1&&_e.length>=ve.value&&At!==void 0){_e.push(je+lA.slice(At+je.length));break}_e.push(je)}}else{if(ne.value==="")throw new Error("empty separator");_e=this.value.split(ne.value),ve.value!==-1&&_e.length>ve.value&&_e.push(_e.splice(ve.value).join(ne.value))}return new Ue(_e.map(lA=>new fe(lA)))})]]))}},ye=class extends MA{constructor(){super(...arguments);Be(this,"type","BooleanValue")}},ge=class extends MA{constructor(){super(...arguments);Be(this,"type","ObjectValue");Be(this,"builtins",new Map([["get",new AA(([Te,ne])=>{if(!(Te instanceof fe))throw new Error(`Object key must be a string: got ${Te.type}`);return this.value.get(Te.value)??ne??new H})],["items",new AA(()=>new Ue(Array.from(this.value.entries()).map(([Te,ne])=>new Ue([new fe(Te),ne]))))]]))}__bool__(){return new ye(this.value.size>0)}},Ke=class extends ge{constructor(){super(...arguments);Be(this,"type","KeywordArgumentsValue")}},Ue=class extends MA{constructor(){super(...arguments);Be(this,"type","ArrayValue");Be(this,"builtins",new Map([["length",new Le(this.value.length)]]))}__bool__(){return new ye(this.value.length>0)}},sA=class extends Ue{constructor(){super(...arguments);Be(this,"type","TupleValue")}},AA=class extends MA{constructor(){super(...arguments);Be(this,"type","FunctionValue")}},H=class extends MA{constructor(){super(...arguments);Be(this,"type","NullValue")}},oA=class extends MA{constructor(){super(...arguments);Be(this,"type","UndefinedValue")}},fA=class{constructor(se){Be(this,"variables",new Map([["namespace",new AA(se=>{if(se.length===0)return new ge(new Map);if(se.length!==1||!(se[0]instanceof ge))throw new Error("`namespace` expects either zero arguments or a single object argument");return se[0]})]]));Be(this,"tests",new Map([["boolean",se=>se.type==="BooleanValue"],["callable",se=>se instanceof AA],["odd",se=>{if(se.type!=="NumericValue")throw new Error(`Cannot apply test "odd" to type: ${se.type}`);return se.value%2!==0}],["even",se=>{if(se.type!=="NumericValue")throw new Error(`Cannot apply test "even" to type: ${se.type}`);return se.value%2===0}],["false",se=>se.type==="BooleanValue"&&!se.value],["true",se=>se.type==="BooleanValue"&&se.value],["none",se=>se.type==="NullValue"],["string",se=>se.type==="StringValue"],["number",se=>se.type==="NumericValue"],["integer",se=>se.type==="NumericValue"&&Number.isInteger(se.value)],["iterable",se=>se.type==="ArrayValue"||se.type==="StringValue"],["mapping",se=>se.type==="ObjectValue"],["lower",se=>{const Te=se.value;return se.type==="StringValue"&&Te===Te.toLowerCase()}],["upper",se=>{const Te=se.value;return se.type==="StringValue"&&Te===Te.toUpperCase()}],["none",se=>se.type==="NullValue"],["defined",se=>se.type!=="UndefinedValue"],["undefined",se=>se.type==="UndefinedValue"],["equalto",(se,Te)=>se.value===Te.value],["eq",(se,Te)=>se.value===Te.value]]));this.parent=se}set(se,Te){return this.declareVariable(se,vA(Te))}declareVariable(se,Te){if(this.variables.has(se))throw new SyntaxError(`Variable already declared: ${se}`);return this.variables.set(se,Te),Te}setVariable(se,Te){return this.variables.set(se,Te),Te}resolve(se){if(this.variables.has(se))return this;if(this.parent)return this.parent.resolve(se);throw new Error(`Unknown variable: ${se}`)}lookupVariable(se){try{return this.resolve(se).variables.get(se)??new oA}catch{return new oA}}},me=class{constructor(se){Be(this,"global");this.global=se??new fA}run(se){return this.evaluate(se,this.global)}evaluateBinaryExpression(se,Te){const ne=this.evaluate(se.left,Te);switch(se.operator.value){case"and":return ne.__bool__().value?this.evaluate(se.right,Te):ne;case"or":return ne.__bool__().value?ne:this.evaluate(se.right,Te)}const ve=this.evaluate(se.right,Te);switch(se.operator.value){case"==":return new ye(ne.value==ve.value);case"!=":return new ye(ne.value!=ve.value)}if(ne instanceof oA||ve instanceof oA)throw new Error("Cannot perform operation on undefined values");if(ne instanceof H||ve instanceof H)throw new Error("Cannot perform operation on null values");if(ne instanceof Le&&ve instanceof Le)switch(se.operator.value){case"+":return new Le(ne.value+ve.value);case"-":return new Le(ne.value-ve.value);case"*":return new Le(ne.value*ve.value);case"/":return new Le(ne.value/ve.value);case"%":return new Le(ne.value%ve.value);case"<":return new ye(ne.value":return new ye(ne.value>ve.value);case">=":return new ye(ne.value>=ve.value);case"<=":return new ye(ne.value<=ve.value)}else if(ne instanceof Ue&&ve instanceof Ue)switch(se.operator.value){case"+":return new Ue(ne.value.concat(ve.value))}else if(ve instanceof Ue){const _e=ve.value.find(lA=>lA.value===ne.value)!==void 0;switch(se.operator.value){case"in":return new ye(_e);case"not in":return new ye(!_e)}}if(ne instanceof fe||ve instanceof fe)switch(se.operator.value){case"+":return new fe(ne.value.toString()+ve.value.toString())}if(ne instanceof fe&&ve instanceof fe)switch(se.operator.value){case"in":return new ye(ve.value.includes(ne.value));case"not in":return new ye(!ve.value.includes(ne.value))}if(ne instanceof fe&&ve instanceof ge)switch(se.operator.value){case"in":return new ye(ve.value.has(ne.value));case"not in":return new ye(!ve.value.has(ne.value))}throw new SyntaxError(`Unknown operator "${se.operator.value}" between ${ne.type} and ${ve.type}`)}evaluateArguments(se,Te){const ne=[],ve=new Map;for(const _e of se)if(_e.type==="KeywordArgumentExpression"){const lA=_e;ve.set(lA.key.value,this.evaluate(lA.value,Te))}else{if(ve.size>0)throw new Error("Positional arguments must come before keyword arguments");ne.push(this.evaluate(_e,Te))}return[ne,ve]}evaluateFilterExpression(se,Te){const ne=this.evaluate(se.operand,Te);if(se.filter.type==="Identifier"){const ve=se.filter;if(ve.value==="tojson")return new fe(aA(ne));if(ne instanceof Ue)switch(ve.value){case"list":return ne;case"first":return ne.value[0];case"last":return ne.value[ne.value.length-1];case"length":return new Le(ne.value.length);case"reverse":return new Ue(ne.value.reverse());case"sort":return new Ue(ne.value.sort((_e,lA)=>{if(_e.type!==lA.type)throw new Error(`Cannot compare different types: ${_e.type} and ${lA.type}`);switch(_e.type){case"NumericValue":return _e.value-lA.value;case"StringValue":return _e.value.localeCompare(lA.value);default:throw new Error(`Cannot compare type: ${_e.type}`)}}));case"join":return new fe(ne.value.map(_e=>_e.value).join(""));case"string":return new fe(aA(ne));default:throw new Error(`Unknown ArrayValue filter: ${ve.value}`)}else if(ne instanceof fe)switch(ve.value){case"length":return new Le(ne.value.length);case"upper":return new fe(ne.value.toUpperCase());case"lower":return new fe(ne.value.toLowerCase());case"title":return new fe(Fe(ne.value));case"capitalize":return new fe(ne.value.charAt(0).toUpperCase()+ne.value.slice(1));case"trim":return new fe(ne.value.trim());case"indent":return new fe(ne.value.split(` +`).map((_e,lA)=>lA===0||_e.length===0?_e:" "+_e).join(` +`));case"join":case"string":return ne;default:throw new Error(`Unknown StringValue filter: ${ve.value}`)}else if(ne instanceof Le)switch(ve.value){case"abs":return new Le(Math.abs(ne.value));default:throw new Error(`Unknown NumericValue filter: ${ve.value}`)}else if(ne instanceof ge)switch(ve.value){case"items":return new Ue(Array.from(ne.value.entries()).map(([_e,lA])=>new Ue([new fe(_e),lA])));case"length":return new Le(ne.value.size);default:throw new Error(`Unknown ObjectValue filter: ${ve.value}`)}throw new Error(`Cannot apply filter "${ve.value}" to type: ${ne.type}`)}else if(se.filter.type==="CallExpression"){const ve=se.filter;if(ve.callee.type!=="Identifier")throw new Error(`Unknown filter: ${ve.callee.type}`);const _e=ve.callee.value;if(_e==="tojson"){const[,lA]=this.evaluateArguments(ve.args,Te),je=lA.get("indent")??new H;if(!(je instanceof Le||je instanceof H))throw new Error("If set, indent must be a number");return new fe(aA(ne,je.value))}else if(_e==="join"){let lA;if(ne instanceof fe)lA=Array.from(ne.value);else if(ne instanceof Ue)lA=ne.value.map(XA=>XA.value);else throw new Error(`Cannot apply filter "${_e}" to type: ${ne.type}`);const[je,At]=this.evaluateArguments(ve.args,Te),Tt=je.at(0)??At.get("separator")??new fe("");if(!(Tt instanceof fe))throw new Error("separator must be a string");return new fe(lA.join(Tt.value))}if(ne instanceof Ue){switch(_e){case"selectattr":case"rejectattr":{const lA=_e==="selectattr";if(ne.value.some(LA=>!(LA instanceof ge)))throw new Error(`\`${_e}\` can only be applied to array of objects`);if(ve.args.some(LA=>LA.type!=="StringLiteral"))throw new Error(`arguments of \`${_e}\` must be strings`);const[je,At,Tt]=ve.args.map(LA=>this.evaluate(LA,Te));let XA;if(At){const LA=Te.tests.get(At.value);if(!LA)throw new Error(`Unknown test: ${At.value}`);XA=LA}else XA=(...LA)=>LA[0].__bool__().value;const WA=ne.value.filter(LA=>{const St=LA.value.get(je.value),Vt=St?XA(St,Tt):!1;return lA?Vt:!Vt});return new Ue(WA)}case"map":{const[,lA]=this.evaluateArguments(ve.args,Te);if(lA.has("attribute")){const je=lA.get("attribute");if(!(je instanceof fe))throw new Error("attribute must be a string");const At=lA.get("default"),Tt=ne.value.map(XA=>{if(!(XA instanceof ge))throw new Error("items in map must be an object");return XA.value.get(je.value)??At??new oA});return new Ue(Tt)}else throw new Error("`map` expressions without `attribute` set are not currently supported.")}}throw new Error(`Unknown ArrayValue filter: ${_e}`)}else if(ne instanceof fe){switch(_e){case"indent":{const[lA,je]=this.evaluateArguments(ve.args,Te),At=lA.at(0)??je.get("width")??new Le(4);if(!(At instanceof Le))throw new Error("width must be a number");const Tt=lA.at(1)??je.get("first")??new ye(!1),XA=lA.at(2)??je.get("blank")??new ye(!1),WA=ne.value.split(` +`),LA=" ".repeat(At.value),St=WA.map((Vt,Ot)=>!Tt.value&&Ot===0||!XA.value&&Vt.length===0?Vt:LA+Vt);return new fe(St.join(` +`))}}throw new Error(`Unknown StringValue filter: ${_e}`)}else throw new Error(`Cannot apply filter "${_e}" to type: ${ne.type}`)}throw new Error(`Unknown filter: ${se.filter.type}`)}evaluateTestExpression(se,Te){const ne=this.evaluate(se.operand,Te),ve=Te.tests.get(se.test.value);if(!ve)throw new Error(`Unknown test: ${se.test.value}`);const _e=ve(ne);return new ye(se.negate?!_e:_e)}evaluateUnaryExpression(se,Te){const ne=this.evaluate(se.argument,Te);switch(se.operator.value){case"not":return new ye(!ne.value);default:throw new SyntaxError(`Unknown operator: ${se.operator.value}`)}}evalProgram(se,Te){return this.evaluateBlock(se.body,Te)}evaluateBlock(se,Te){let ne="";for(const ve of se){const _e=this.evaluate(ve,Te);_e.type!=="NullValue"&&_e.type!=="UndefinedValue"&&(ne+=_e.value)}return new fe(ne)}evaluateIdentifier(se,Te){return Te.lookupVariable(se.value)}evaluateCallExpression(se,Te){const[ne,ve]=this.evaluateArguments(se.args,Te);ve.size>0&&ne.push(new Ke(ve));const _e=this.evaluate(se.callee,Te);if(_e.type!=="FunctionValue")throw new Error(`Cannot call something that is not a function: got ${_e.type}`);return _e.value(ne,Te)}evaluateSliceExpression(se,Te,ne){if(!(se instanceof Ue||se instanceof fe))throw new Error("Slice object must be an array or string");const ve=this.evaluate(Te.start,ne),_e=this.evaluate(Te.stop,ne),lA=this.evaluate(Te.step,ne);if(!(ve instanceof Le||ve instanceof oA))throw new Error("Slice start must be numeric or undefined");if(!(_e instanceof Le||_e instanceof oA))throw new Error("Slice stop must be numeric or undefined");if(!(lA instanceof Le||lA instanceof oA))throw new Error("Slice step must be numeric or undefined");return se instanceof Ue?new Ue(Ye(se.value,ve.value,_e.value,lA.value)):new fe(Ye(Array.from(se.value),ve.value,_e.value,lA.value).join(""))}evaluateMemberExpression(se,Te){const ne=this.evaluate(se.object,Te);let ve;if(se.computed){if(se.property.type==="SliceExpression")return this.evaluateSliceExpression(ne,se.property,Te);ve=this.evaluate(se.property,Te)}else ve=new fe(se.property.value);let _e;if(ne instanceof ge){if(!(ve instanceof fe))throw new Error(`Cannot access property with non-string: got ${ve.type}`);_e=ne.value.get(ve.value)??ne.builtins.get(ve.value)}else if(ne instanceof Ue||ne instanceof fe)if(ve instanceof Le)_e=ne.value.at(ve.value),ne instanceof fe&&(_e=new fe(ne.value.at(ve.value)));else if(ve instanceof fe)_e=ne.builtins.get(ve.value);else throw new Error(`Cannot access property with non-string/non-number: got ${ve.type}`);else{if(!(ve instanceof fe))throw new Error(`Cannot access property with non-string: got ${ve.type}`);_e=ne.builtins.get(ve.value)}return _e instanceof MA?_e:new oA}evaluateSet(se,Te){const ne=se.value?this.evaluate(se.value,Te):this.evaluateBlock(se.body,Te);if(se.assignee.type==="Identifier"){const ve=se.assignee.value;Te.setVariable(ve,ne)}else if(se.assignee.type==="MemberExpression"){const ve=se.assignee,_e=this.evaluate(ve.object,Te);if(!(_e instanceof ge))throw new Error("Cannot assign to member of non-object");if(ve.property.type!=="Identifier")throw new Error("Cannot assign to member with non-identifier property");_e.value.set(ve.property.value,ne)}else throw new Error(`Invalid LHS inside assignment expression: ${JSON.stringify(se.assignee)}`);return new H}evaluateIf(se,Te){const ne=this.evaluate(se.test,Te);return this.evaluateBlock(ne.__bool__().value?se.body:se.alternate,Te)}evaluateFor(se,Te){const ne=new fA(Te);let ve,_e;if(se.iterable.type==="SelectExpression"){const XA=se.iterable;_e=this.evaluate(XA.iterable,ne),ve=XA.test}else _e=this.evaluate(se.iterable,ne);if(!(_e instanceof Ue))throw new Error(`Expected iterable type in for loop: got ${_e.type}`);const lA=[],je=[];for(let XA=0;XA<_e.value.length;++XA){const WA=new fA(ne),LA=_e.value[XA];let St;if(se.loopvar.type==="Identifier")St=Vt=>Vt.setVariable(se.loopvar.value,LA);else if(se.loopvar.type==="TupleLiteral"){const Vt=se.loopvar;if(LA.type!=="ArrayValue")throw new Error(`Cannot unpack non-iterable type: ${LA.type}`);const Ot=LA;if(Vt.value.length!==Ot.value.length)throw new Error(`Too ${Vt.value.length>Ot.value.length?"few":"many"} items to unpack`);St=FA=>{for(let cr=0;cr0?lA[XA-1]:new oA],["nextitem",XA{var je;const _e=new fA(ve);ne=ne.slice();let lA;((je=ne.at(-1))==null?void 0:je.type)==="KeywordArgumentsValue"&&(lA=ne.pop());for(let At=0;Atthis.evaluate(ne,Te)));case"TupleLiteral":return new sA(se.value.map(ne=>this.evaluate(ne,Te)));case"ObjectLiteral":{const ne=new Map;for(const[ve,_e]of se.value){const lA=this.evaluate(ve,Te);if(!(lA instanceof fe))throw new Error(`Object keys must be strings: got ${lA.type}`);ne.set(lA.value,this.evaluate(_e,Te))}return new ge(ne)}case"Identifier":return this.evaluateIdentifier(se,Te);case"CallExpression":return this.evaluateCallExpression(se,Te);case"MemberExpression":return this.evaluateMemberExpression(se,Te);case"UnaryExpression":return this.evaluateUnaryExpression(se,Te);case"BinaryExpression":return this.evaluateBinaryExpression(se,Te);case"FilterExpression":return this.evaluateFilterExpression(se,Te);case"TestExpression":return this.evaluateTestExpression(se,Te);default:throw new SyntaxError(`Unknown node type: ${se.type}`)}}};function vA(se){switch(typeof se){case"number":return new Le(se);case"string":return new fe(se);case"boolean":return new ye(se);case"undefined":return new oA;case"object":return se===null?new H:Array.isArray(se)?new Ue(se.map(vA)):new ge(new Map(Object.entries(se).map(([Te,ne])=>[Te,vA(ne)])));case"function":return new AA((Te,ne)=>{const ve=se(...Te.map(_e=>_e.value))??null;return vA(ve)});default:throw new Error(`Cannot convert to runtime value: ${se}`)}}function aA(se,Te,ne){const ve=ne??0;switch(se.type){case"NullValue":case"UndefinedValue":return"null";case"NumericValue":case"StringValue":case"BooleanValue":return JSON.stringify(se.value);case"ArrayValue":case"ObjectValue":{const _e=Te?" ".repeat(Te):"",lA=` +`+_e.repeat(ve),je=lA+_e;if(se.type==="ArrayValue"){const At=se.value.map(Tt=>aA(Tt,Te,ve+1));return Te?`[${je}${At.join(`,${je}`)}${lA}]`:`[${At.join(", ")}]`}else{const At=Array.from(se.value.entries()).map(([Tt,XA])=>{const WA=`"${Tt}": ${aA(XA,Te,ve+1)}`;return Te?`${je}${WA}`:WA});return Te?`{${At.join(",")}${lA}}`:`{${At.join(", ")}}`}}default:throw new Error(`Cannot convert to JSON: ${se.type}`)}}var kA=` +`,QA="{%- ",RA=" -%}",HA={MultiplicativeBinaryOperator:2,AdditiveBinaryOperator:1,ComparisonBinaryOperator:0};function mA(se,Te=" "){const ne=typeof Te=="number"?" ".repeat(Te):Te;return VA(se.body,0,ne).replace(/\n$/,"")}function nA(...se){return QA+se.join(" ")+RA}function VA(se,Te,ne){return se.map(ve=>dt(ve,Te,ne)).join(kA)}function dt(se,Te,ne){const ve=ne.repeat(Te);switch(se.type){case"Program":return VA(se.body,Te,ne);case"If":return UA(se,Te,ne);case"For":return it(se,Te,ne);case"Set":return Zt(se,Te,ne);case"Macro":return wr(se,Te,ne);case"Break":return ve+nA("break");case"Continue":return ve+nA("continue");default:return ve+"{{- "+KA(se)+" -}}"}}function UA(se,Te,ne){const ve=ne.repeat(Te),_e=[];let lA=se;for(;lA&&(_e.push({test:lA.test,body:lA.body}),lA.alternate.length===1&&lA.alternate[0].type==="If");)lA=lA.alternate[0];let je=ve+nA("if",KA(_e[0].test))+kA+VA(_e[0].body,Te+1,ne);for(let At=1;At<_e.length;At++)je+=kA+ve+nA("elif",KA(_e[At].test))+kA+VA(_e[At].body,Te+1,ne);return lA&&lA.alternate.length>0&&(je+=kA+ve+nA("else")+kA+VA(lA.alternate,Te+1,ne)),je+=kA+ve+nA("endif"),je}function it(se,Te,ne){const ve=ne.repeat(Te);let _e="";if(se.iterable.type==="SelectExpression"){const je=se.iterable;_e=`${KA(je.iterable)} if ${KA(je.test)}`}else _e=KA(se.iterable);let lA=ve+nA("for",KA(se.loopvar),"in",_e)+kA+VA(se.body,Te+1,ne);return se.defaultBlock.length>0&&(lA+=kA+ve+nA("else")+kA+VA(se.defaultBlock,Te+1,ne)),lA+=kA+ve+nA("endfor"),lA}function Zt(se,Te,ne){const ve=ne.repeat(Te),_e=KA(se.assignee),lA=se.value?KA(se.value):"",je=ve+nA("set",`${_e}${se.value?" = "+lA:""}`);return se.body.length===0?je:je+kA+VA(se.body,Te+1,ne)+kA+ve+nA("endset")}function wr(se,Te,ne){const ve=ne.repeat(Te),_e=se.args.map(KA).join(", ");return ve+nA("macro",`${se.name.value}(${_e})`)+kA+VA(se.body,Te+1,ne)+kA+ve+nA("endmacro")}function KA(se,Te=-1){switch(se.type){case"Identifier":return se.value;case"NullLiteral":return"none";case"NumericLiteral":case"BooleanLiteral":return`${se.value}`;case"StringLiteral":return JSON.stringify(se.value);case"BinaryExpression":{const ne=se,ve=HA[ne.operator.type]??0,_e=KA(ne.left,ve),lA=KA(ne.right,ve+1),je=`${_e} ${ne.operator.value} ${lA}`;return veKA(_e,-1)).join(", ");return`${KA(ne.callee,-1)}(${ve})`}case"MemberExpression":{const ne=se;let ve=KA(ne.object,-1);ne.object.type!=="Identifier"&&(ve=`(${ve})`);let _e=KA(ne.property,-1);return!ne.computed&&ne.property.type!=="Identifier"&&(_e=`(${_e})`),ne.computed?`${ve}[${_e}]`:`${ve}.${_e}`}case"FilterExpression":{const ne=se,ve=KA(ne.operand,1/0);return ne.filter.type==="CallExpression"?`${ve} | ${KA(ne.filter,-1)}`:`${ve} | ${ne.filter.value}`}case"SelectExpression":{const ne=se;return`${KA(ne.iterable,-1)} | select(${KA(ne.test,-1)})`}case"TestExpression":{const ne=se;return`${KA(ne.operand,-1)} is${ne.negate?" not":""} ${ne.test.value}`}case"ArrayLiteral":case"TupleLiteral":{const ne=se.value.map(_e=>KA(_e,-1)),ve=se.type==="ArrayLiteral"?"[]":"()";return`${ve[0]}${ne.join(", ")}${ve[1]}`}case"ObjectLiteral":return`{ ${Array.from(se.value.entries()).map(([ve,_e])=>`${KA(ve,-1)}: ${KA(_e,-1)}`).join(", ")} }`;case"SliceExpression":{const ne=se,ve=ne.start?KA(ne.start,-1):"",_e=ne.stop?KA(ne.stop,-1):"",lA=ne.step?`:${KA(ne.step,-1)}`:"";return`${ve}:${_e}${lA}`}case"KeywordArgumentExpression":{const ne=se;return`${ne.key.value}=${KA(ne.value,-1)}`}case"If":{const ne=se,ve=KA(ne.test,-1),_e=KA(ne.body[0],0),lA=KA(ne.alternate[0],-1);return`${_e} if ${ve} else ${lA}`}default:throw new Error(`Unknown expression type: ${se.type}`)}}var Ts=class{constructor(se){Be(this,"parsed");const Te=B(se,{lstrip_blocks:!0,trim_blocks:!0});this.parsed=de(Te)}render(se){const Te=new fA;if(Te.set("false",!1),Te.set("true",!0),Te.set("raise_exception",_e=>{throw new Error(_e)}),Te.set("range",xe),se)for(const[_e,lA]of Object.entries(se))Te.set(_e,lA);return new me(Te).run(this.parsed).value}format(se){return mA(this.parsed,(se==null?void 0:se.indent)||" ")}}},"./src/backends/onnx.js":(a,n,i)=>{var g;i.r(n),i.d(n,{Tensor:()=>w.Tensor,createInferenceSession:()=>K,deviceToExecutionProviders:()=>F,isONNXProxy:()=>V,isONNXTensor:()=>L});var p=i("./src/env.js"),h=i("?2ce3"),C=i("onnxruntime-web"),w=i("onnxruntime-common");const E=Object.freeze({auto:null,gpu:null,cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:{name:"webnn",deviceType:"cpu"},"webnn-npu":{name:"webnn",deviceType:"npu"},"webnn-gpu":{name:"webnn",deviceType:"gpu"},"webnn-cpu":{name:"webnn",deviceType:"cpu"}}),v=[];let D,B;const x=Symbol.for("onnxruntime");if(x in globalThis)B=globalThis[x];else if(p.apis.IS_NODE_ENV){switch(B=h??(g||(g=i.t(h,2))),process.platform){case"win32":v.push("dml");break;case"linux":process.arch==="x64"&&v.push("cuda");break}v.push("cpu"),D=["cpu"]}else B=C,p.apis.IS_WEBNN_AVAILABLE&&v.push("webnn-npu","webnn-gpu","webnn-cpu","webnn"),p.apis.IS_WEBGPU_AVAILABLE&&v.push("webgpu"),v.push("wasm"),D=["wasm"];const S=B.InferenceSession;function F(d=null){if(!d)return D;switch(d){case"auto":return v;case"gpu":return v.filter(k=>["webgpu","cuda","dml","webnn-gpu"].includes(k))}if(v.includes(d))return[E[d]??d];throw new Error(`Unsupported device: "${d}". Should be one of: ${v.join(", ")}.`)}let R=null;async function K(d,k,e){R&&await R;const u=S.create(d,k);R??(R=u);const y=await u;return y.config=e,y}function L(d){return d instanceof B.Tensor}const N=B==null?void 0:B.env;N!=null&&N.wasm&&(!(typeof ServiceWorkerGlobalScope<"u"&&self instanceof ServiceWorkerGlobalScope)&&!N.wasm.wasmPaths&&(N.wasm.wasmPaths=`https://cdn.jsdelivr.net/npm/@huggingface/transformers@${p.env.version}/dist/`),N.wasm.proxy=!1),N!=null&&N.webgpu&&(N.webgpu.powerPreference="high-performance");function V(){var d;return(d=N==null?void 0:N.wasm)==null?void 0:d.proxy}p.env.backends.onnx=N},"./src/base/feature_extraction_utils.js":(a,n,i)=>{i.r(n),i.d(n,{FeatureExtractor:()=>C,validate_audio_inputs:()=>w});var g=i("./src/utils/constants.js"),p=i("./src/utils/generic.js"),h=i("./src/utils/hub.js");class C extends p.Callable{constructor(v){super(),this.config=v}static async from_pretrained(v,D){const B=await(0,h.getModelJSON)(v,g.FEATURE_EXTRACTOR_NAME,!0,D);return new this(B)}}function w(E,v){var D;if(!(E instanceof Float32Array||E instanceof Float64Array))throw new Error(`${v} expects input to be a Float32Array or a Float64Array, but got ${((D=E==null?void 0:E.constructor)==null?void 0:D.name)??typeof E} instead. If using the feature extractor directly, remember to use \`read_audio(url, sampling_rate)\` to obtain the raw audio data of the file/url.`)}},"./src/base/image_processors_utils.js":(a,n,i)=>{i.r(n),i.d(n,{ImageProcessor:()=>d,center_to_corners_format:()=>B,post_process_instance_segmentation:()=>V,post_process_object_detection:()=>x,post_process_panoptic_segmentation:()=>N,post_process_semantic_segmentation:()=>S});var g=i("./src/utils/generic.js"),p=i("./src/utils/tensor.js"),h=i("./src/utils/maths.js");i("./src/utils/image.js");var C=i("./src/utils/core.js"),w=i("./src/utils/hub.js"),E=i("./src/utils/constants.js");function v(k,e,u=0,y=null){const $=k/e;let T=(0,h.bankers_round)($)*e;return y!==null&&T>y&&(T=Math.floor($)*e),Te&&ee.push(xe)}else{let xe=(0,h.max)(ue.data)[1];if(xe===Ae-1||(de=(0,h.softmax)(ue.data),de[xe]Fe*Ee[(qe+1)%2])),ke.boxes.push(Ye),ke.classes.push(xe),ke.scores.push(de[xe])}}be.push(ke)}return be}function S(k,e=null){const u=k.logits,y=u.dims[0];if(e!==null&&e.length!==y)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const $=[];for(let T=0;TEe[ee]&&(Ee[ee]=ue[ee],ke[ee]=Qe)}const De=new Array(Ce.dims[0]);for(let Qe=0;QeQe!==void 0);$.push({segmentation:he,labels:Re})}return $}function F(k,e,u,y){const $=[],T=[],O=[];for(let Ce=0;Ceu&&($.push(be),T.push(ke),O.push(he))}return[$,T,O]}function R(k,e,u,y=.5,$=.8){const T=[];let O=0,Ce=0;const Ae=e[u].data;for(let he=0;he=y&&++Ce;let be=O>0&&Ce>0;return be&&(be=O/Ce>$),[be,T]}function K(k,e,u,y,$,T=null,O=null){const[Ce,Ae]=O??k[0].dims,be=new p.Tensor("int32",new Int32Array(Ce*Ae),[Ce,Ae]),he=[];if(O!==null)for(let Qe=0;Qeke[de]&&(Ee[de]=Qe,ke[de]=ee[de])}let De=0;const Re=be.data;for(let Qe=0;Qe200)throw new Error(`absolute aspect ratio must be smaller than 200, got ${Math.max(k,e)/Math.min(k,e)}`);let T=Math.round(k/u)*u,O=Math.round(e/u)*u;if(T*O>$){const Ce=Math.sqrt(k*e/$);T=Math.floor(k/Ce/u)*u,O=Math.floor(e/Ce/u)*u}else if(T*OT?be=Math.floor(T*Ae/$):T>$&&(Ae=Math.floor($*be/T)),await e.resize(be,Ae,{resample:y}))}async crop_margin(e,u=200){const y=e.clone().grayscale(),$=(0,h.min)(y.data)[0],O=(0,h.max)(y.data)[0]-$;if(O===0)return e;const Ce=u/255;let Ae=y.width,be=y.height,he=0,Ee=0;const ke=y.data;for(let De=0;Dethis.preprocess(T)));return{pixel_values:(0,p.stack)(y.map(T=>T.pixel_values),0),original_sizes:y.map(T=>T.original_size),reshaped_input_sizes:y.map(T=>T.reshaped_input_size)}}static async from_pretrained(e,u){const y=await(0,w.getModelJSON)(e,E.IMAGE_PROCESSOR_NAME,!0,u);return new this(y)}}},"./src/base/processing_utils.js":(a,n,i)=>{i.r(n),i.d(n,{Processor:()=>C});var g=i("./src/utils/constants.js"),p=i("./src/utils/generic.js"),h=i("./src/utils/hub.js");class C extends p.Callable{constructor(E,v){super(),this.config=E,this.components=v}get image_processor(){return this.components.image_processor}get tokenizer(){return this.components.tokenizer}get feature_extractor(){return this.components.feature_extractor}apply_chat_template(E,v={}){if(!this.tokenizer)throw new Error("Unable to apply chat template without a tokenizer.");return this.tokenizer.apply_chat_template(E,{tokenize:!1,...v})}batch_decode(...E){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.batch_decode(...E)}decode(...E){if(!this.tokenizer)throw new Error("Unable to decode without a tokenizer.");return this.tokenizer.decode(...E)}async _call(E,...v){for(const D of[this.image_processor,this.feature_extractor,this.tokenizer])if(D)return D(E,...v);throw new Error("No image processor, feature extractor, or tokenizer found.")}static async from_pretrained(E,v){const[D,B]=await Promise.all([this.uses_processor_config?(0,h.getModelJSON)(E,g.PROCESSOR_NAME,!0,v):{},Promise.all(this.classes.filter(x=>x in this).map(async x=>{const S=await this[x].from_pretrained(E,v);return[x.replace(/_class$/,""),S]})).then(Object.fromEntries)]);return new this(D,B)}}Be(C,"classes",["image_processor_class","tokenizer_class","feature_extractor_class"]),Be(C,"uses_processor_config",!1)},"./src/configs.js":(a,n,i)=>{i.r(n),i.d(n,{AutoConfig:()=>v,PretrainedConfig:()=>E,getKeyValueShapes:()=>w});var g=i("./src/utils/core.js"),p=i("./src/utils/hub.js");async function h(D,B){return await(0,p.getModelJSON)(D,"config.json",!0,B)}function C(D){const B={};let x={};switch(D.model_type){case"llava":case"paligemma":case"gemma3":case"florence2":case"llava_onevision":case"idefics3":case"ultravox":case"smolvlm":x=C(D.text_config);break;case"moondream1":x=C(D.phi_config);break;case"musicgen":x=C(D.decoder);break;case"multi_modality":x=C(D.language_config);break;case"gpt2":case"gptj":case"jais":case"codegen":case"gpt_bigcode":B.num_heads="n_head",B.num_layers="n_layer",B.hidden_size="n_embd";break;case"gpt_neox":case"stablelm":case"opt":case"falcon":B.num_heads="num_attention_heads",B.num_layers="num_hidden_layers",B.hidden_size="hidden_size";break;case"llama":case"olmo":case"olmo2":case"mobilellm":case"granite":case"cohere":case"mistral":case"starcoder2":case"qwen2":case"qwen2_vl":case"phi":case"phi3":case"phi3_v":B.num_heads="num_key_value_heads",B.num_layers="num_hidden_layers",B.hidden_size="hidden_size",B.num_attention_heads="num_attention_heads";break;case"qwen3":case"gemma":case"gemma2":case"gemma3_text":case"glm":case"helium":B.num_heads="num_key_value_heads",B.num_layers="num_hidden_layers",B.dim_kv="head_dim";break;case"openelm":B.num_heads="num_kv_heads",B.num_layers="num_transformer_layers",B.dim_kv="head_dim";break;case"gpt_neo":case"donut-swin":B.num_heads="num_heads",B.num_layers="num_layers",B.hidden_size="hidden_size";break;case"bloom":B.num_heads="n_head",B.num_layers="n_layer",B.hidden_size="hidden_size";break;case"mpt":B.num_heads="n_heads",B.num_layers="n_layers",B.hidden_size="d_model";break;case"exaone":B.num_heads="num_key_value_heads",B.num_layers="num_layers",B.dim_kv="head_dim",B.num_attention_heads="num_attention_heads";break;case"t5":case"mt5":case"longt5":B.num_decoder_layers="num_decoder_layers",B.num_decoder_heads="num_heads",B.decoder_dim_kv="d_kv",B.num_encoder_layers="num_layers",B.num_encoder_heads="num_heads",B.encoder_dim_kv="d_kv";break;case"bart":case"mbart":case"marian":case"whisper":case"lite-whisper":case"m2m_100":case"blenderbot":case"blenderbot-small":case"florence2_language":B.num_decoder_layers="decoder_layers",B.num_decoder_heads="decoder_attention_heads",B.decoder_hidden_size="d_model",B.num_encoder_layers="encoder_layers",B.num_encoder_heads="encoder_attention_heads",B.encoder_hidden_size="d_model";break;case"speecht5":B.num_decoder_layers="decoder_layers",B.num_decoder_heads="decoder_attention_heads",B.decoder_hidden_size="hidden_size",B.num_encoder_layers="encoder_layers",B.num_encoder_heads="encoder_attention_heads",B.encoder_hidden_size="hidden_size";break;case"trocr":B.num_encoder_layers=B.num_decoder_layers="decoder_layers",B.num_encoder_heads=B.num_decoder_heads="decoder_attention_heads",B.encoder_hidden_size=B.decoder_hidden_size="d_model";break;case"musicgen_decoder":B.num_encoder_layers=B.num_decoder_layers="num_hidden_layers",B.num_encoder_heads=B.num_decoder_heads="num_attention_heads",B.encoder_hidden_size=B.decoder_hidden_size="hidden_size";break;case"moonshine":B.num_decoder_layers="decoder_num_hidden_layers",B.num_decoder_heads="decoder_num_key_value_heads",B.num_encoder_layers="encoder_num_hidden_layers",B.num_encoder_heads="encoder_num_key_value_heads",B.encoder_hidden_size=B.decoder_hidden_size="hidden_size";break;case"vision-encoder-decoder":const F=C(D.decoder),R="num_decoder_layers"in F,K=(0,g.pick)(D,["model_type","is_encoder_decoder"]);return R?(K.num_decoder_layers=F.num_decoder_layers,K.num_decoder_heads=F.num_decoder_heads,K.decoder_hidden_size=F.decoder_hidden_size,K.num_encoder_layers=F.num_encoder_layers,K.num_encoder_heads=F.num_encoder_heads,K.encoder_hidden_size=F.encoder_hidden_size):(K.num_layers=F.num_layers,K.num_heads=F.num_heads,K.hidden_size=F.hidden_size),K}const S={...x,...(0,g.pick)(D,["model_type","multi_query","is_encoder_decoder"])};for(const F in B)S[F]=D[B[F]];return S}function w(D,{prefix:B="past_key_values",batch_size:x=1}={}){const S={},F=D.normalized_config;if(F.is_encoder_decoder&&"num_encoder_heads"in F&&"num_decoder_heads"in F){const R=F.encoder_dim_kv??F.encoder_hidden_size/F.num_encoder_heads,K=F.decoder_dim_kv??F.decoder_hidden_size/F.num_decoder_heads,L=[x,F.num_encoder_heads,0,R],N=[x,F.num_decoder_heads,0,K];for(let V=0;V{var y,$;i.r(n),i.d(n,{apis:()=>K,env:()=>e});var g=i("?569f"),p=i("?3f59"),h=i("?154a");const C="3.5.1",w=typeof window<"u"&&typeof window.document<"u",E=typeof self<"u"&&((y=self.constructor)==null?void 0:y.name)==="DedicatedWorkerGlobalScope",v=typeof self<"u"&&"caches"in self,D=typeof navigator<"u"&&"gpu"in navigator,B=typeof navigator<"u"&&"ml"in navigator,x=typeof process<"u",S=x&&(($=process==null?void 0:process.release)==null?void 0:$.name)==="node",F=!u(g),R=!u(p),K=Object.freeze({IS_BROWSER_ENV:w,IS_WEBWORKER_ENV:E,IS_WEB_CACHE_AVAILABLE:v,IS_WEBGPU_AVAILABLE:D,IS_WEBNN_AVAILABLE:B,IS_PROCESS_AVAILABLE:x,IS_NODE_ENV:S,IS_FS_AVAILABLE:F,IS_PATH_AVAILABLE:R}),L=F&&R;let N="./";if(L){const T=Object(import.meta).url;T?N=p.dirname(p.dirname(h.fileURLToPath(T))):typeof __dirname<"u"&&(N=p.dirname(__dirname))}const V=L?p.join(N,"/.cache/"):null,d="/models/",k=L?p.join(N,d):d,e={version:C,backends:{onnx:{}},allowRemoteModels:!0,remoteHost:"https://huggingface.co/",remotePathTemplate:"{model}/resolve/{revision}/",allowLocalModels:!(w||E),localModelPath:k,useFS:F,useBrowserCache:v,useFSCache:F,cacheDir:V,useCustomCache:!1,customCache:null};function u(T){return Object.keys(T).length===0}},"./src/generation/configuration_utils.js":(a,n,i)=>{i.r(n),i.d(n,{GenerationConfig:()=>p});var g=i("./src/utils/core.js");class p{constructor(C){Be(this,"max_length",20);Be(this,"max_new_tokens",null);Be(this,"min_length",0);Be(this,"min_new_tokens",null);Be(this,"early_stopping",!1);Be(this,"max_time",null);Be(this,"do_sample",!1);Be(this,"num_beams",1);Be(this,"num_beam_groups",1);Be(this,"penalty_alpha",null);Be(this,"use_cache",!0);Be(this,"temperature",1);Be(this,"top_k",50);Be(this,"top_p",1);Be(this,"typical_p",1);Be(this,"epsilon_cutoff",0);Be(this,"eta_cutoff",0);Be(this,"diversity_penalty",0);Be(this,"repetition_penalty",1);Be(this,"encoder_repetition_penalty",1);Be(this,"length_penalty",1);Be(this,"no_repeat_ngram_size",0);Be(this,"bad_words_ids",null);Be(this,"force_words_ids",null);Be(this,"renormalize_logits",!1);Be(this,"constraints",null);Be(this,"forced_bos_token_id",null);Be(this,"forced_eos_token_id",null);Be(this,"remove_invalid_values",!1);Be(this,"exponential_decay_length_penalty",null);Be(this,"suppress_tokens",null);Be(this,"streamer",null);Be(this,"begin_suppress_tokens",null);Be(this,"forced_decoder_ids",null);Be(this,"guidance_scale",null);Be(this,"num_return_sequences",1);Be(this,"output_attentions",!1);Be(this,"output_hidden_states",!1);Be(this,"output_scores",!1);Be(this,"return_dict_in_generate",!1);Be(this,"pad_token_id",null);Be(this,"bos_token_id",null);Be(this,"eos_token_id",null);Be(this,"encoder_no_repeat_ngram_size",0);Be(this,"decoder_start_token_id",null);Be(this,"generation_kwargs",{});Object.assign(this,(0,g.pick)(C,Object.getOwnPropertyNames(this)))}}},"./src/generation/logits_process.js":(a,n,i)=>{i.r(n),i.d(n,{ClassifierFreeGuidanceLogitsProcessor:()=>L,ForcedBOSTokenLogitsProcessor:()=>E,ForcedEOSTokenLogitsProcessor:()=>v,LogitsProcessor:()=>h,LogitsProcessorList:()=>w,LogitsWarper:()=>C,MinLengthLogitsProcessor:()=>F,MinNewTokensLengthLogitsProcessor:()=>R,NoBadWordsLogitsProcessor:()=>K,NoRepeatNGramLogitsProcessor:()=>x,RepetitionPenaltyLogitsProcessor:()=>S,SuppressTokensAtBeginLogitsProcessor:()=>D,TemperatureLogitsWarper:()=>N,TopKLogitsWarper:()=>d,TopPLogitsWarper:()=>V,WhisperTimeStampLogitsProcessor:()=>B});var g=i("./src/utils/generic.js");i("./src/utils/tensor.js");var p=i("./src/utils/maths.js");class h extends g.Callable{_call(e,u){throw Error("`_call` should be implemented in a subclass")}}class C extends g.Callable{_call(e,u){throw Error("`_call` should be implemented in a subclass")}}class w extends g.Callable{constructor(){super(),this.processors=[]}push(e){this.processors.push(e)}extend(e){this.processors.push(...e)}_call(e,u){let y=u;for(const $ of this.processors)y=$(e,y);return y}[Symbol.iterator](){return this.processors.values()}}class E extends h{constructor(e){super(),this.bos_token_id=e}_call(e,u){for(let y=0;y=1&&T[T.length-1]>=this.timestamp_begin,Ce=T.length<2||T[T.length-2]>=this.timestamp_begin;if(O&&(Ce?$.subarray(this.timestamp_begin).fill(-1/0):$.subarray(0,this.eos_token_id).fill(-1/0)),e[y].length===this.begin_index&&this.max_initial_timestamp_index!==null){const Ee=this.timestamp_begin+this.max_initial_timestamp_index;$.subarray(Ee+1).fill(-1/0)}const Ae=(0,p.log_softmax)($),be=Math.log(Ae.subarray(this.timestamp_begin).map(Math.exp).reduce((Ee,ke)=>Ee+ke)),he=(0,p.max)(Ae.subarray(0,this.timestamp_begin))[0];be>he&&$.subarray(0,this.timestamp_begin).fill(-1/0)}return u}}class x extends h{constructor(e){super(),this.no_repeat_ngram_size=e}getNgrams(e){const u=e.length,y=[];for(let T=0;T1 to use the classifier free guidance processor, got guidance scale ${e}.`);this.guidance_scale=e}_call(e,u){if(u.dims[0]!==2*e.length)throw new Error(`Logits should have twice the batch size of the input ids, the first half of batches corresponding to the conditional inputs, and the second half of batches corresponding to the unconditional inputs. Got batch size ${u.dims[0]} for the logits and ${e.length} for the input ids.`);const y=e.length,$=u.slice([0,y],null),T=u.slice([y,u.dims[0]],null);for(let O=0;O1)throw new Error(`\`top_p\` must be a float > 0 and < 1, but is ${e}`);if(!Number.isInteger(y)||y<1)throw new Error(`\`min_tokens_to_keep\` must be a positive integer, but is ${y}`);this.top_p=e,this.filter_value=u,this.min_tokens_to_keep=y}}class d extends C{constructor(e,{filter_value:u=-1/0,min_tokens_to_keep:y=1}={}){if(super(),!Number.isInteger(e)||e<0)throw new Error(`\`top_k\` must be a positive integer, but is ${e}`);this.top_k=Math.max(e,y),this.filter_value=u}}},"./src/generation/logits_sampler.js":(a,n,i)=>{i.r(n),i.d(n,{LogitsSampler:()=>C});var g=i("./src/utils/generic.js"),p=i("./src/utils/tensor.js"),h=i("./src/utils/maths.js");i("./src/generation/configuration_utils.js");class C extends g.Callable{constructor(B){super(),this.generation_config=B}async _call(B){return this.sample(B)}async sample(B){throw Error("sample should be implemented in subclasses.")}getLogits(B,x){let S=B.dims.at(-1),F=B.data;if(x===-1)F=F.slice(-S);else{let R=x*S;F=F.slice(R,R+S)}return F}randomSelect(B){let x=0;for(let F=0;F1)return new v(B);if(B.num_return_sequences>1)throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${B.num_return_sequences}.`);return new w(B)}}class w extends C{async sample(B){const x=(0,h.max)(B.data)[1];return[[BigInt(x),0]]}}class E extends C{async sample(B){let x=B.dims.at(-1);this.generation_config.top_k>0&&(x=Math.min(this.generation_config.top_k,x));const[S,F]=await(0,p.topk)(B,x),R=(0,h.softmax)(S.data);return Array.from({length:this.generation_config.num_beams},()=>{const K=this.randomSelect(R);return[F.data[K],Math.log(R[K])]})}}class v extends C{async sample(B){let x=B.dims.at(-1);this.generation_config.top_k>0&&(x=Math.min(this.generation_config.top_k,x));const[S,F]=await(0,p.topk)(B,x),R=(0,h.softmax)(S.data);return Array.from({length:this.generation_config.num_beams},(K,L)=>[F.data[L],Math.log(R[L])])}}},"./src/generation/stopping_criteria.js":(a,n,i)=>{i.r(n),i.d(n,{EosTokenCriteria:()=>w,InterruptableStoppingCriteria:()=>E,MaxLengthCriteria:()=>C,StoppingCriteria:()=>p,StoppingCriteriaList:()=>h});var g=i("./src/utils/generic.js");class p extends g.Callable{_call(D,B){throw Error("StoppingCriteria needs to be subclassed")}}class h extends g.Callable{constructor(){super(),this.criteria=[]}push(D){this.criteria.push(D)}extend(D){D instanceof h?D=D.criteria:D instanceof p&&(D=[D]),this.criteria.push(...D)}_call(D,B){const x=new Array(D.length).fill(!1);for(const S of this.criteria){const F=S(D,B);for(let R=0;RB.length>=this.max_length)}}class w extends p{constructor(D){super(),Array.isArray(D)||(D=[D]),this.eos_token_id=D}_call(D,B){return D.map(x=>{const S=x.at(-1);return this.eos_token_id.some(F=>S==F)})}}class E extends p{constructor(){super(),this.interrupted=!1}interrupt(){this.interrupted=!0}reset(){this.interrupted=!1}_call(D,B){return new Array(D.length).fill(this.interrupted)}}},"./src/generation/streamers.js":(a,n,i)=>{i.r(n),i.d(n,{BaseStreamer:()=>C,TextStreamer:()=>E,WhisperTextStreamer:()=>v});var g=i("./src/utils/core.js"),p=i("./src/tokenizers.js"),h=i("./src/env.js");class C{put(B){throw Error("Not implemented")}end(){throw Error("Not implemented")}}const w=h.apis.IS_PROCESS_AVAILABLE?D=>process.stdout.write(D):D=>console.log(D);class E extends C{constructor(B,{skip_prompt:x=!1,callback_function:S=null,token_callback_function:F=null,skip_special_tokens:R=!0,decode_kwargs:K={},...L}={}){super(),this.tokenizer=B,this.skip_prompt=x,this.callback_function=S??w,this.token_callback_function=F,this.decode_kwargs={skip_special_tokens:R,...K,...L},this.token_cache=[],this.print_len=0,this.next_tokens_are_prompt=!0}put(B){var K;if(B.length>1)throw Error("TextStreamer only supports batch size of 1");const x=this.next_tokens_are_prompt;if(x&&(this.next_tokens_are_prompt=!1,this.skip_prompt))return;const S=B[0];(K=this.token_callback_function)==null||K.call(this,S),this.token_cache=(0,g.mergeArrays)(this.token_cache,S);const F=this.tokenizer.decode(this.token_cache,this.decode_kwargs);let R;x||F.endsWith(` +`)?(R=F.slice(this.print_len),this.token_cache=[],this.print_len=0):F.length>0&&(0,p.is_chinese_char)(F.charCodeAt(F.length-1))?(R=F.slice(this.print_len),this.print_len+=R.length):(R=F.slice(this.print_len,F.lastIndexOf(" ")+1),this.print_len+=R.length),this.on_finalized_text(R,!1)}end(){let B;this.token_cache.length>0?(B=this.tokenizer.decode(this.token_cache,this.decode_kwargs).slice(this.print_len),this.token_cache=[],this.print_len=0):B="",this.next_tokens_are_prompt=!0,this.on_finalized_text(B,!0)}on_finalized_text(B,x){var S,F;B.length>0&&((S=this.callback_function)==null||S.call(this,B)),x&&this.callback_function===w&&h.apis.IS_PROCESS_AVAILABLE&&((F=this.callback_function)==null||F.call(this,` +`))}}class v extends E{constructor(B,{skip_prompt:x=!1,callback_function:S=null,token_callback_function:F=null,on_chunk_start:R=null,on_chunk_end:K=null,on_finalize:L=null,time_precision:N=.02,skip_special_tokens:V=!0,decode_kwargs:d={}}={}){super(B,{skip_prompt:x,skip_special_tokens:V,callback_function:S,token_callback_function:F,decode_kwargs:d}),this.timestamp_begin=B.timestamp_begin,this.on_chunk_start=R,this.on_chunk_end=K,this.on_finalize=L,this.time_precision=N,this.waiting_for_timestamp=!1}put(B){var S,F;if(B.length>1)throw Error("WhisperTextStreamer only supports batch size of 1");const x=B[0];if(x.length===1){const R=Number(x[0])-this.timestamp_begin;if(R>=0){const K=R*this.time_precision;this.waiting_for_timestamp?(S=this.on_chunk_end)==null||S.call(this,K):(F=this.on_chunk_start)==null||F.call(this,K),this.waiting_for_timestamp=!this.waiting_for_timestamp,B=[[]]}}return super.put(B)}end(){var B;super.end(),(B=this.on_finalize)==null||B.call(this)}}},"./src/models.js":(a,n,i)=>{i.r(n),i.d(n,{ASTForAudioClassification:()=>rn,ASTModel:()=>yn,ASTPreTrainedModel:()=>As,AlbertForMaskedLM:()=>we,AlbertForQuestionAnswering:()=>le,AlbertForSequenceClassification:()=>Z,AlbertModel:()=>Ne,AlbertPreTrainedModel:()=>Ss,AutoModel:()=>zl,AutoModelForAudioClassification:()=>mf,AutoModelForAudioFrameClassification:()=>Cf,AutoModelForAudioTextToText:()=>xf,AutoModelForCTC:()=>pf,AutoModelForCausalLM:()=>rf,AutoModelForDepthEstimation:()=>kf,AutoModelForDocumentQuestionAnswering:()=>bf,AutoModelForImageClassification:()=>of,AutoModelForImageFeatureExtraction:()=>Bf,AutoModelForImageMatting:()=>If,AutoModelForImageSegmentation:()=>lf,AutoModelForImageTextToText:()=>vf,AutoModelForImageToImage:()=>wf,AutoModelForMaskGeneration:()=>gf,AutoModelForMaskedLM:()=>sf,AutoModelForNormalEstimation:()=>Ef,AutoModelForObjectDetection:()=>df,AutoModelForPoseEstimation:()=>Mf,AutoModelForQuestionAnswering:()=>af,AutoModelForSemanticSegmentation:()=>cf,AutoModelForSeq2SeqLM:()=>$d,AutoModelForSequenceClassification:()=>Jd,AutoModelForSpeechSeq2Seq:()=>ef,AutoModelForTextToSpectrogram:()=>Af,AutoModelForTextToWaveform:()=>tf,AutoModelForTokenClassification:()=>qd,AutoModelForUniversalSegmentation:()=>uf,AutoModelForVision2Seq:()=>nf,AutoModelForXVector:()=>hf,AutoModelForZeroShotObjectDetection:()=>ff,BartForConditionalGeneration:()=>Lt,BartForSequenceClassification:()=>Pr,BartModel:()=>nr,BartPretrainedModel:()=>vt,BaseModelOutput:()=>Ue,BeitForImageClassification:()=>CA,BeitModel:()=>dA,BeitPreTrainedModel:()=>Je,BertForMaskedLM:()=>H,BertForQuestionAnswering:()=>me,BertForSequenceClassification:()=>oA,BertForTokenClassification:()=>fA,BertModel:()=>AA,BertPreTrainedModel:()=>sA,BlenderbotForConditionalGeneration:()=>Qr,BlenderbotModel:()=>kr,BlenderbotPreTrainedModel:()=>jt,BlenderbotSmallForConditionalGeneration:()=>Kr,BlenderbotSmallModel:()=>fr,BlenderbotSmallPreTrainedModel:()=>_t,BloomForCausalLM:()=>Wn,BloomModel:()=>Rt,BloomPreTrainedModel:()=>_r,CLIPModel:()=>ln,CLIPPreTrainedModel:()=>Hs,CLIPSegForImageSegmentation:()=>ui,CLIPSegModel:()=>On,CLIPSegPreTrainedModel:()=>fs,CLIPTextModel:()=>Zr,CLIPTextModelWithProjection:()=>os,CLIPVisionModel:()=>cn,CLIPVisionModelWithProjection:()=>Ua,CamembertForMaskedLM:()=>LA,CamembertForQuestionAnswering:()=>Ot,CamembertForSequenceClassification:()=>St,CamembertForTokenClassification:()=>Vt,CamembertModel:()=>WA,CamembertPreTrainedModel:()=>XA,CausalLMOutput:()=>Ci,CausalLMOutputWithPast:()=>W8,ChineseCLIPModel:()=>ra,ChineseCLIPPreTrainedModel:()=>Ka,ClapAudioModelWithProjection:()=>Qu,ClapModel:()=>Gu,ClapPreTrainedModel:()=>d0,ClapTextModelWithProjection:()=>Pu,CodeGenForCausalLM:()=>Ja,CodeGenModel:()=>Es,CodeGenPreTrainedModel:()=>Dr,CohereForCausalLM:()=>ho,CohereModel:()=>fi,CoherePreTrainedModel:()=>gs,ConvBertForMaskedLM:()=>Ts,ConvBertForQuestionAnswering:()=>ne,ConvBertForSequenceClassification:()=>se,ConvBertForTokenClassification:()=>Te,ConvBertModel:()=>KA,ConvBertPreTrainedModel:()=>wr,ConvNextForImageClassification:()=>x1,ConvNextModel:()=>v1,ConvNextPreTrainedModel:()=>pl,ConvNextV2ForImageClassification:()=>D1,ConvNextV2Model:()=>y1,ConvNextV2PreTrainedModel:()=>ml,DFineForObjectDetection:()=>Vn,DFineModel:()=>In,DFinePreTrainedModel:()=>Xs,DPTForDepthEstimation:()=>o1,DPTModel:()=>i1,DPTPreTrainedModel:()=>dl,DacDecoderModel:()=>wd,DacDecoderOutput:()=>Cd,DacEncoderModel:()=>Id,DacEncoderOutput:()=>hd,DacModel:()=>bd,DacPreTrainedModel:()=>b0,DebertaForMaskedLM:()=>Gs,DebertaForQuestionAnswering:()=>qs,DebertaForSequenceClassification:()=>js,DebertaForTokenClassification:()=>Cs,DebertaModel:()=>cr,DebertaPreTrainedModel:()=>FA,DebertaV2ForMaskedLM:()=>Ms,DebertaV2ForQuestionAnswering:()=>$s,DebertaV2ForSequenceClassification:()=>Ps,DebertaV2ForTokenClassification:()=>Ws,DebertaV2Model:()=>bs,DebertaV2PreTrainedModel:()=>ds,DecisionTransformerModel:()=>ed,DecisionTransformerPreTrainedModel:()=>$u,DeiTForImageClassification:()=>Go,DeiTModel:()=>To,DeiTPreTrainedModel:()=>Ji,DepthAnythingForDepthEstimation:()=>c1,DepthAnythingPreTrainedModel:()=>l1,DepthProForDepthEstimation:()=>p1,DepthProPreTrainedModel:()=>g1,DetrForObjectDetection:()=>tt,DetrForSegmentation:()=>ht,DetrModel:()=>OA,DetrObjectDetectionOutput:()=>xt,DetrPreTrainedModel:()=>PA,DetrSegmentationOutput:()=>Nt,Dinov2ForImageClassification:()=>G1,Dinov2Model:()=>T1,Dinov2PreTrainedModel:()=>hl,Dinov2WithRegistersForImageClassification:()=>Q1,Dinov2WithRegistersModel:()=>P1,Dinov2WithRegistersPreTrainedModel:()=>Cl,DistilBertForMaskedLM:()=>iA,DistilBertForQuestionAnswering:()=>Lr,DistilBertForSequenceClassification:()=>Yr,DistilBertForTokenClassification:()=>Ys,DistilBertModel:()=>ea,DistilBertPreTrainedModel:()=>Ut,DonutSwinModel:()=>B1,DonutSwinPreTrainedModel:()=>M1,EfficientNetForImageClassification:()=>_u,EfficientNetModel:()=>Lu,EfficientNetPreTrainedModel:()=>yl,ElectraForMaskedLM:()=>lA,ElectraForQuestionAnswering:()=>Tt,ElectraForSequenceClassification:()=>je,ElectraForTokenClassification:()=>At,ElectraModel:()=>_e,ElectraPreTrainedModel:()=>ve,EsmForMaskedLM:()=>Gt,EsmForSequenceClassification:()=>Qs,EsmForTokenClassification:()=>Is,EsmModel:()=>jA,EsmPreTrainedModel:()=>IA,ExaoneForCausalLM:()=>ce,ExaoneModel:()=>ae,ExaonePreTrainedModel:()=>J,FalconForCausalLM:()=>Tu,FalconModel:()=>Du,FalconPreTrainedModel:()=>Bl,FastViTForImageClassification:()=>I,FastViTModel:()=>m,FastViTPreTrainedModel:()=>f,Florence2ForConditionalGeneration:()=>Qn,Florence2PreTrainedModel:()=>nn,GLPNForDepthEstimation:()=>E1,GLPNModel:()=>k1,GLPNPreTrainedModel:()=>gl,GPT2LMHeadModel:()=>zn,GPT2Model:()=>ga,GPT2PreTrainedModel:()=>Ma,GPTBigCodeForCausalLM:()=>Vs,GPTBigCodeModel:()=>Sr,GPTBigCodePreTrainedModel:()=>Za,GPTJForCausalLM:()=>Ns,GPTJModel:()=>fn,GPTJPreTrainedModel:()=>vs,GPTNeoForCausalLM:()=>gr,GPTNeoModel:()=>Ln,GPTNeoPreTrainedModel:()=>dn,GPTNeoXForCausalLM:()=>st,GPTNeoXModel:()=>Xa,GPTNeoXPreTrainedModel:()=>ks,Gemma2ForCausalLM:()=>bo,Gemma2Model:()=>mn,Gemma2PreTrainedModel:()=>gi,Gemma3ForCausalLM:()=>ts,Gemma3Model:()=>Io,Gemma3PreTrainedModel:()=>_i,GemmaForCausalLM:()=>Li,GemmaModel:()=>Co,GemmaPreTrainedModel:()=>Ks,GlmForCausalLM:()=>j,GlmModel:()=>P,GlmPreTrainedModel:()=>Vr,GraniteForCausalLM:()=>di,GraniteModel:()=>pn,GranitePreTrainedModel:()=>Us,GroundingDinoForObjectDetection:()=>S1,GroundingDinoPreTrainedModel:()=>F1,GroupViTModel:()=>c,GroupViTPreTrainedModel:()=>l,HeliumForCausalLM:()=>Rn,HeliumModel:()=>xa,HeliumPreTrainedModel:()=>tr,HieraForImageClassification:()=>$c,HieraModel:()=>qc,HieraPreTrainedModel:()=>ll,HubertForCTC:()=>uu,HubertForSequenceClassification:()=>du,HubertModel:()=>cu,HubertPreTrainedModel:()=>D8,IJepaForImageClassification:()=>Xi,IJepaModel:()=>Jr,IJepaPreTrainedModel:()=>Yn,Idefics3ForConditionalGeneration:()=>wa,Idefics3PreTrainedModel:()=>on,ImageMattingOutput:()=>Df,JAISLMHeadModel:()=>Nn,JAISModel:()=>qA,JAISPreTrainedModel:()=>Ba,JinaCLIPModel:()=>un,JinaCLIPPreTrainedModel:()=>ka,JinaCLIPTextModel:()=>Ea,JinaCLIPVisionModel:()=>BA,LiteWhisperForConditionalGeneration:()=>Gn,LlamaForCausalLM:()=>gn,LlamaModel:()=>_n,LlamaPreTrainedModel:()=>va,LlavaForConditionalGeneration:()=>Os,LlavaOnevisionForConditionalGeneration:()=>Bs,LlavaPreTrainedModel:()=>Pn,LongT5ForConditionalGeneration:()=>wA,LongT5Model:()=>yA,LongT5PreTrainedModel:()=>hA,M2M100ForConditionalGeneration:()=>H1,M2M100Model:()=>Y1,M2M100PreTrainedModel:()=>wl,MBartForCausalLM:()=>Hr,MBartForConditionalGeneration:()=>dr,MBartForSequenceClassification:()=>$t,MBartModel:()=>hr,MBartPreTrainedModel:()=>qt,MPNetForMaskedLM:()=>ba,MPNetForQuestionAnswering:()=>Aa,MPNetForSequenceClassification:()=>_a,MPNetForTokenClassification:()=>Fs,MPNetModel:()=>La,MPNetPreTrainedModel:()=>es,MT5ForConditionalGeneration:()=>Bt,MT5Model:()=>nt,MT5PreTrainedModel:()=>eA,MarianMTModel:()=>W1,MarianModel:()=>j1,MarianPreTrainedModel:()=>Il,MaskFormerForInstanceSegmentation:()=>w1,MaskFormerModel:()=>I1,MaskFormerPreTrainedModel:()=>fl,MaskedLMOutput:()=>ms,Metric3DForDepthEstimation:()=>h1,Metric3DPreTrainedModel:()=>m1,Metric3Dv2ForDepthEstimation:()=>b1,Metric3Dv2PreTrainedModel:()=>C1,MgpstrForSceneTextRecognition:()=>ad,MgpstrModelOutput:()=>rd,MgpstrPreTrainedModel:()=>sd,MimiDecoderModel:()=>md,MimiDecoderOutput:()=>fd,MimiEncoderModel:()=>pd,MimiEncoderOutput:()=>dd,MimiModel:()=>gd,MimiPreTrainedModel:()=>C0,MistralForCausalLM:()=>vu,MistralModel:()=>Bu,MistralPreTrainedModel:()=>El,MobileBertForMaskedLM:()=>mr,MobileBertForQuestionAnswering:()=>Gr,MobileBertForSequenceClassification:()=>SA,MobileBertModel:()=>ws,MobileBertPreTrainedModel:()=>vr,MobileLLMForCausalLM:()=>uA,MobileLLMModel:()=>Xe,MobileLLMPreTrainedModel:()=>Se,MobileNetV1ForImageClassification:()=>ju,MobileNetV1ForSemanticSegmentation:()=>Wu,MobileNetV1Model:()=>Ru,MobileNetV1PreTrainedModel:()=>g0,MobileNetV2ForImageClassification:()=>Hu,MobileNetV2ForSemanticSegmentation:()=>Vu,MobileNetV2Model:()=>Yu,MobileNetV2PreTrainedModel:()=>p0,MobileNetV3ForImageClassification:()=>Ku,MobileNetV3ForSemanticSegmentation:()=>Xu,MobileNetV3Model:()=>Uu,MobileNetV3PreTrainedModel:()=>m0,MobileNetV4ForImageClassification:()=>Ju,MobileNetV4ForSemanticSegmentation:()=>qu,MobileNetV4Model:()=>Zu,MobileNetV4PreTrainedModel:()=>h0,MobileViTForImageClassification:()=>W,MobileViTModel:()=>z,MobileViTPreTrainedModel:()=>G,MobileViTV2ForImageClassification:()=>te,MobileViTV2Model:()=>X,MobileViTV2PreTrainedModel:()=>Y,ModelOutput:()=>Ke,ModernBertForMaskedLM:()=>kA,ModernBertForSequenceClassification:()=>QA,ModernBertForTokenClassification:()=>RA,ModernBertModel:()=>aA,ModernBertPreTrainedModel:()=>vA,Moondream1ForConditionalGeneration:()=>zs,MoonshineForConditionalGeneration:()=>zt,MoonshineModel:()=>Va,MoonshinePreTrainedModel:()=>sn,MptForCausalLM:()=>Bo,MptModel:()=>Yi,MptPreTrainedModel:()=>Wi,MultiModalityCausalLM:()=>td,MultiModalityPreTrainedModel:()=>Ad,MusicgenForCausalLM:()=>Q8,MusicgenForConditionalGeneration:()=>Tl,MusicgenModel:()=>P8,MusicgenPreTrainedModel:()=>Dl,NomicBertModel:()=>mA,NomicBertPreTrainedModel:()=>HA,OPTForCausalLM:()=>Vi,OPTModel:()=>vo,OPTPreTrainedModel:()=>Hi,Olmo2ForCausalLM:()=>Mt,Olmo2Model:()=>Qt,Olmo2PreTrainedModel:()=>ft,OlmoForCausalLM:()=>ct,OlmoModel:()=>NA,OlmoPreTrainedModel:()=>xA,OpenELMForCausalLM:()=>Ri,OpenELMModel:()=>rs,OpenELMPreTrainedModel:()=>hn,OwlViTForObjectDetection:()=>Ie,OwlViTModel:()=>pe,OwlViTPreTrainedModel:()=>oe,Owlv2ForObjectDetection:()=>He,Owlv2Model:()=>Oe,Owlv2PreTrainedModel:()=>Ge,PaliGemmaForConditionalGeneration:()=>Fn,PaliGemmaPreTrainedModel:()=>da,PatchTSMixerForPrediction:()=>ld,PatchTSMixerModel:()=>od,PatchTSMixerPreTrainedModel:()=>Pl,PatchTSTForPrediction:()=>id,PatchTSTModel:()=>nd,PatchTSTPreTrainedModel:()=>Gl,Phi3ForCausalLM:()=>hi,Phi3Model:()=>ji,Phi3PreTrainedModel:()=>Ls,Phi3VForCausalLM:()=>TA,Phi3VPreTrainedModel:()=>li,PhiForCausalLM:()=>$a,PhiModel:()=>Mo,PhiPreTrainedModel:()=>mi,PreTrainedModel:()=>ge,PretrainedMixin:()=>Wt,PvtForImageClassification:()=>$A,PvtModel:()=>Hn,PvtPreTrainedModel:()=>Zi,PyAnnoteForAudioFrameClassification:()=>J1,PyAnnoteModel:()=>Z1,PyAnnotePreTrainedModel:()=>kl,QuestionAnsweringModelOutput:()=>xs,Qwen2ForCausalLM:()=>rr,Qwen2Model:()=>wo,Qwen2PreTrainedModel:()=>jn,Qwen2VLForConditionalGeneration:()=>Eo,Qwen2VLPreTrainedModel:()=>ko,Qwen3ForCausalLM:()=>Cn,Qwen3Model:()=>qa,Qwen3PreTrainedModel:()=>pi,RFDetrForObjectDetection:()=>sa,RFDetrModel:()=>ps,RFDetrObjectDetectionOutput:()=>aa,RFDetrPreTrainedModel:()=>as,RTDetrForObjectDetection:()=>br,RTDetrModel:()=>ir,RTDetrObjectDetectionOutput:()=>or,RTDetrPreTrainedModel:()=>Jt,RTDetrV2ForObjectDetection:()=>qr,RTDetrV2Model:()=>Rr,RTDetrV2ObjectDetectionOutput:()=>ss,RTDetrV2PreTrainedModel:()=>Tr,ResNetForImageClassification:()=>A1,ResNetModel:()=>e1,ResNetPreTrainedModel:()=>cl,RoFormerForMaskedLM:()=>dt,RoFormerForQuestionAnswering:()=>Zt,RoFormerForSequenceClassification:()=>UA,RoFormerForTokenClassification:()=>it,RoFormerModel:()=>VA,RoFormerPreTrainedModel:()=>nA,RobertaForMaskedLM:()=>er,RobertaForQuestionAnswering:()=>Pt,RobertaForSequenceClassification:()=>Cr,RobertaForTokenClassification:()=>zA,RobertaModel:()=>yr,RobertaPreTrainedModel:()=>xr,SamImageSegmentationOutput:()=>R1,SamModel:()=>_1,SamPreTrainedModel:()=>L1,SapiensForDepthEstimation:()=>d1,SapiensForNormalEstimation:()=>f1,SapiensForSemanticSegmentation:()=>u1,SapiensPreTrainedModel:()=>o0,SegformerForImageClassification:()=>Su,SegformerForSemanticSegmentation:()=>Ou,SegformerModel:()=>G8,SegformerPreTrainedModel:()=>f0,Seq2SeqLMOutput:()=>j8,SequenceClassifierOutput:()=>pt,SiglipModel:()=>Ar,SiglipPreTrainedModel:()=>fa,SiglipTextModel:()=>Sn,SiglipVisionModel:()=>ci,SmolVLMForConditionalGeneration:()=>cA,SnacDecoderModel:()=>Md,SnacEncoderModel:()=>Ed,SnacModel:()=>kd,SnacPreTrainedModel:()=>I0,SpeechT5ForSpeechToText:()=>Iu,SpeechT5ForTextToSpeech:()=>wu,SpeechT5HifiGan:()=>ku,SpeechT5Model:()=>T8,SpeechT5PreTrainedModel:()=>u0,SqueezeBertForMaskedLM:()=>Ra,SqueezeBertForQuestionAnswering:()=>Wa,SqueezeBertForSequenceClassification:()=>ja,SqueezeBertModel:()=>Ia,SqueezeBertPreTrainedModel:()=>ta,StableLmForCausalLM:()=>Nu,StableLmModel:()=>zu,StableLmPreTrainedModel:()=>xl,Starcoder2ForCausalLM:()=>yu,Starcoder2Model:()=>xu,Starcoder2PreTrainedModel:()=>Ml,StyleTextToSpeech2Model:()=>bu,StyleTextToSpeech2PreTrainedModel:()=>Cu,Swin2SRForImageSuperResolution:()=>n1,Swin2SRModel:()=>a1,Swin2SRPreTrainedModel:()=>ul,SwinForImageClassification:()=>r1,SwinForSemanticSegmentation:()=>s1,SwinModel:()=>t1,SwinPreTrainedModel:()=>i0,T5ForConditionalGeneration:()=>$e,T5Model:()=>ze,T5PreTrainedModel:()=>Me,TableTransformerForObjectDetection:()=>Kn,TableTransformerModel:()=>Un,TableTransformerObjectDetectionOutput:()=>Do,TableTransformerPreTrainedModel:()=>en,TokenClassifierOutput:()=>ls,TrOCRForCausalLM:()=>Mu,TrOCRPreTrainedModel:()=>Eu,UltravoxModel:()=>ud,UltravoxPreTrainedModel:()=>cd,UniSpeechForCTC:()=>Au,UniSpeechForSequenceClassification:()=>tu,UniSpeechModel:()=>eu,UniSpeechPreTrainedModel:()=>l0,UniSpeechSatForAudioFrameClassification:()=>nu,UniSpeechSatForCTC:()=>su,UniSpeechSatForSequenceClassification:()=>au,UniSpeechSatModel:()=>ru,UniSpeechSatPreTrainedModel:()=>Po,ViTForImageClassification:()=>Ki,ViTMAEModel:()=>t,ViTMAEPreTrainedModel:()=>A,ViTMSNForImageClassification:()=>o,ViTMSNModel:()=>s,ViTMSNPreTrainedModel:()=>r,ViTModel:()=>xo,ViTPreTrainedModel:()=>Ui,VisionEncoderDecoderModel:()=>an,VitMatteForImageMatting:()=>M,VitMattePreTrainedModel:()=>b,VitPoseForPoseEstimation:()=>bn,VitPosePreTrainedModel:()=>yo,VitsModel:()=>vl,VitsModelOutput:()=>Tf,VitsPreTrainedModel:()=>Fu,Wav2Vec2BertForCTC:()=>ou,Wav2Vec2BertForSequenceClassification:()=>lu,Wav2Vec2BertModel:()=>iu,Wav2Vec2BertPreTrainedModel:()=>c0,Wav2Vec2ForAudioFrameClassification:()=>X1,Wav2Vec2ForCTC:()=>U1,Wav2Vec2ForSequenceClassification:()=>K1,Wav2Vec2Model:()=>V1,Wav2Vec2PreTrainedModel:()=>Xn,WavLMForAudioFrameClassification:()=>hu,WavLMForCTC:()=>gu,WavLMForSequenceClassification:()=>pu,WavLMForXVector:()=>mu,WavLMModel:()=>fu,WavLMPreTrainedModel:()=>qi,WeSpeakerResNetModel:()=>$1,WeSpeakerResNetPreTrainedModel:()=>q1,WhisperForConditionalGeneration:()=>Tn,WhisperModel:()=>oi,WhisperPreTrainedModel:()=>Dn,XLMForQuestionAnswering:()=>ca,XLMForSequenceClassification:()=>ai,XLMForTokenClassification:()=>ni,XLMModel:()=>Ya,XLMPreTrainedModel:()=>Xr,XLMRobertaForMaskedLM:()=>tn,XLMRobertaForQuestionAnswering:()=>DA,XLMRobertaForSequenceClassification:()=>Ha,XLMRobertaForTokenClassification:()=>Fr,XLMRobertaModel:()=>ii,XLMRobertaPreTrainedModel:()=>ua,XLMWithLMHeadModel:()=>si,XVectorOutput:()=>yf,YolosForObjectDetection:()=>z1,YolosModel:()=>O1,YolosObjectDetectionOutput:()=>N1,YolosPreTrainedModel:()=>bl});var g=i("./src/configs.js"),p=i("./src/backends/onnx.js"),h=i("./src/utils/dtypes.js"),C=i("./src/utils/generic.js"),w=i("./src/utils/core.js"),E=i("./src/utils/hub.js"),v=i("./src/utils/constants.js"),D=i("./src/generation/logits_process.js"),B=i("./src/generation/configuration_utils.js"),x=i("./src/utils/tensor.js"),S=i("./src/utils/image.js"),F=i("./src/utils/maths.js"),R=i("./src/generation/stopping_criteria.js"),K=i("./src/generation/logits_sampler.js"),L=i("./src/env.js"),N=i("./src/models/whisper/generation_whisper.js"),V=i("./src/models/whisper/common_whisper.js");const d={EncoderOnly:0,EncoderDecoder:1,Seq2Seq:2,Vision2Seq:3,DecoderOnly:4,MaskGeneration:5,ImageTextToText:6,Musicgen:7,MultiModality:8,Phi3V:9,AudioTextToText:10,AutoEncoder:11},k=new Map,e=new Map,u=new Map;async function y(_,U,re){var cs;let Pe=((cs=re.config)==null?void 0:cs["transformers.js_config"])??{},Ve=re.device??Pe.device;Ve&&typeof Ve!="string"&&(Ve.hasOwnProperty(U)?Ve=Ve[U]:(console.warn(`device not specified for "${U}". Using the default device.`),Ve=null));const We=Ve??(L.apis.IS_NODE_ENV?"cpu":"wasm"),tA=(0,p.deviceToExecutionProviders)(We),gA=Pe.device_config??{};gA.hasOwnProperty(We)&&(Pe={...Pe,...gA[We]});let EA=re.dtype??Pe.dtype;if(typeof EA!="string"&&(EA&&EA.hasOwnProperty(U)?EA=EA[U]:(EA=h.DEFAULT_DEVICE_DTYPE_MAPPING[We]??h.DATA_TYPES.fp32,console.warn(`dtype not specified for "${U}". Using the default dtype (${EA}) for this device (${We}).`))),EA===h.DATA_TYPES.auto){let kt=Pe.dtype;typeof kt!="string"&&(kt=kt==null?void 0:kt[U]),kt&&kt!==h.DATA_TYPES.auto&&h.DATA_TYPES.hasOwnProperty(kt)?EA=kt:EA=h.DEFAULT_DEVICE_DTYPE_MAPPING[We]??h.DATA_TYPES.fp32}const GA=EA;if(h.DEFAULT_DTYPE_SUFFIX_MAPPING.hasOwnProperty(GA)){if(GA===h.DATA_TYPES.fp16&&We==="webgpu"&&!await(0,h.isWebGpuFp16Supported)())throw new Error(`The device (${We}) does not support fp16.`)}else throw new Error(`Invalid dtype: ${GA}. Should be one of: ${Object.keys(h.DATA_TYPES).join(", ")}`);const at=Pe.kv_cache_dtype,ut=at?typeof at=="string"?at:at[GA]??"float32":void 0;if(ut&&!["float32","float16"].includes(ut))throw new Error(`Invalid kv_cache_dtype: ${ut}. Should be one of: float32, float16`);const rt={dtype:GA,kv_cache_dtype:ut,device:We},wt=h.DEFAULT_DTYPE_SUFFIX_MAPPING[GA],lt=`${U}${wt}.onnx`,It=`${re.subfolder??""}/${lt}`,ZA={...re.session_options};ZA.executionProviders??(ZA.executionProviders=tA);const yt=Pe.free_dimension_overrides;yt?ZA.freeDimensionOverrides??(ZA.freeDimensionOverrides=yt):We.startsWith("webnn")&&!ZA.freeDimensionOverrides&&console.warn(`WebNN does not currently support dynamic shapes and requires 'free_dimension_overrides' to be set in config.json, preferably as a field within config["transformers.js_config"]["device_config"]["${We}"]. When 'free_dimension_overrides' is not set, you may experience significant performance degradation.`);const ur=L.apis.IS_NODE_ENV&&L.env.useFSCache,Er=(0,E.getModelFile)(_,It,!0,re,ur),jr=re.use_external_data_format??Pe.use_external_data_format;let Or=[];if(jr){let kt;typeof jr=="object"?jr.hasOwnProperty(lt)?kt=jr[lt]:jr.hasOwnProperty(U)?kt=jr[U]:kt=!1:kt=jr;const ns=+kt;if(ns>E.MAX_EXTERNAL_DATA_CHUNKS)throw new Error(`The number of external data chunks (${ns}) exceeds the maximum allowed value (${E.MAX_EXTERNAL_DATA_CHUNKS}).`);for(let na=0;na{const Ii=await(0,E.getModelFile)(_,_s,!0,re,ur);pa(Ii instanceof Uint8Array?{path:bi,data:Ii}:bi)}))}}else ZA.externalData!==void 0&&(Or=ZA.externalData.map(async kt=>{if(typeof kt.data=="string"){const ns=await(0,E.getModelFile)(_,kt.data,!0,re);return{...kt,data:ns}}return kt}));if(Or.length>0){const kt=await Promise.all(Or);L.apis.IS_NODE_ENV||(ZA.externalData=kt)}if(We==="webgpu"){const kt=(0,g.getKeyValueShapes)(re.config,{prefix:"present"});if(Object.keys(kt).length>0&&!(0,p.isONNXProxy)()){const ns={};for(const na in kt)ns[na]="gpu-buffer";ZA.preferredOutputLocation=ns}}return{buffer_or_path:await Er,session_options:ZA,session_config:rt}}async function $(_,U,re){return Object.fromEntries(await Promise.all(Object.keys(U).map(async Pe=>{const{buffer_or_path:Ve,session_options:We,session_config:tA}=await y(_,U[Pe],re),gA=await(0,p.createInferenceSession)(Ve,We,tA);return[Pe,gA]})))}async function T(_,U,re){return Object.fromEntries(await Promise.all(Object.keys(U).map(async Pe=>{const Ve=await(0,E.getModelJSON)(_,U[Pe],!1,re);return[Pe,Ve]})))}function O(_,U){const re=Object.create(null),Pe=[];for(const tA of _.inputNames){const gA=U[tA];if(!(gA instanceof x.Tensor)){Pe.push(tA);continue}re[tA]=(0,p.isONNXProxy)()?gA.clone():gA}if(Pe.length>0)throw new Error(`An error occurred during model execution: "Missing the following inputs: ${Pe.join(", ")}.`);const Ve=Object.keys(U).length,We=_.inputNames.length;if(Ve>We){let tA=Object.keys(U).filter(gA=>!_.inputNames.includes(gA));console.warn(`WARNING: Too many inputs were provided (${Ve} > ${We}). The following inputs will be ignored: "${tA.join(", ")}".`)}return re}let Ce=Promise.resolve();async function Ae(_,U){const re=O(_,U);try{const Pe=Object.fromEntries(Object.entries(re).map(([tA,gA])=>[tA,gA.ort_tensor])),Ve=()=>_.run(Pe),We=await(L.apis.IS_BROWSER_ENV||L.apis.IS_WEBWORKER_ENV?Ce=Ce.then(Ve):Ve());return be(We)}catch(Pe){const Ve=Object.fromEntries(Object.entries(re).map(([We,tA])=>{const gA={type:tA.type,dims:tA.dims,location:tA.location};return gA.location!=="gpu-buffer"&&(gA.data=tA.data),[We,gA]}));throw console.error(`An error occurred during model execution: "${Pe}".`),console.error("Inputs given to model:",Ve),Pe}}function be(_){for(let U in _)(0,p.isONNXTensor)(_[U])?_[U]=new x.Tensor(_[U]):typeof _[U]=="object"&&be(_[U]);return _}function he(_){if(_ instanceof x.Tensor)return _;if(_.length===0)throw Error("items must be non-empty");if(Array.isArray(_[0])){if(_.some(U=>U.length!==_[0].length))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.");return new x.Tensor("int64",BigInt64Array.from(_.flat().map(U=>BigInt(U))),[_.length,_[0].length])}else return new x.Tensor("int64",BigInt64Array.from(_.map(U=>BigInt(U))),[1,_.length])}function Ee(_){return new x.Tensor("bool",[_],[1])}async function ke(_,U){let{encoder_outputs:re,input_ids:Pe,decoder_input_ids:Ve,...We}=U;if(!re){const gA=(0,w.pick)(U,_.sessions.model.inputNames);re=(await De(_,gA)).last_hidden_state}return We.input_ids=Ve,We.encoder_hidden_states=re,_.sessions.decoder_model_merged.inputNames.includes("encoder_attention_mask")&&(We.encoder_attention_mask=U.attention_mask),await Qe(_,We,!0)}async function De(_,U){const re=_.sessions.model,Pe=(0,w.pick)(U,re.inputNames);if(re.inputNames.includes("inputs_embeds")&&!Pe.inputs_embeds){if(!U.input_ids)throw new Error("Both `input_ids` and `inputs_embeds` are missing in the model inputs.");Pe.inputs_embeds=await _.encode_text({input_ids:U.input_ids})}if(re.inputNames.includes("token_type_ids")&&!Pe.token_type_ids){if(!Pe.input_ids)throw new Error("Both `input_ids` and `token_type_ids` are missing in the model inputs.");Pe.token_type_ids=(0,x.zeros_like)(Pe.input_ids)}if(re.inputNames.includes("pixel_mask")&&!Pe.pixel_mask){if(!Pe.pixel_values)throw new Error("Both `pixel_values` and `pixel_mask` are missing in the model inputs.");const Ve=Pe.pixel_values.dims;Pe.pixel_mask=(0,x.ones)([Ve[0],Ve[2],Ve[3]])}return await Ae(re,Pe)}async function Re(_,U){const re=await _.encode(U);return await _.decode(re)}async function Qe(_,U,re=!1){const Pe=_.sessions[re?"decoder_model_merged":"model"],{past_key_values:Ve,...We}=U;if(Pe.inputNames.includes("use_cache_branch")&&(We.use_cache_branch=Ee(!!Ve)),Pe.inputNames.includes("position_ids")&&We.attention_mask&&!We.position_ids){const gA=["paligemma","gemma3_text","gemma3"].includes(_.config.model_type)?1:0;We.position_ids=pA(We,Ve,gA)}_.addPastKeyValues(We,Ve);const tA=(0,w.pick)(We,Pe.inputNames);return await Ae(Pe,tA)}function ue({modality_token_id:_,inputs_embeds:U,modality_features:re,input_ids:Pe,attention_mask:Ve}){const We=Pe.tolist().map(GA=>GA.reduce((at,ut,rt)=>(ut==_&&at.push(rt),at),[])),tA=We.reduce((GA,at)=>GA+at.length,0),gA=re.dims[0];if(tA!==gA)throw new Error(`Number of tokens and features do not match: tokens: ${tA}, features ${gA}`);let EA=0;for(let GA=0;GAWe.dims[1])){if(VegA==_.config.image_token_index)){const gA=_.config.num_image_tokens;if(!gA)throw new Error("`num_image_tokens` is missing in the model configuration.");const EA=We.dims[1]-(Ve-gA);re.input_ids=We.slice(null,[-EA,null]),re.attention_mask=(0,x.ones)([1,Ve+EA])}}}return re}function Le(_,U,re,Pe){return re.past_key_values&&(U=U.map(Ve=>[Ve.at(-1)])),{...re,decoder_input_ids:he(U)}}function fe(_,...U){return _.config.is_encoder_decoder?Le(_,...U):MA(_,...U)}function ye(_,U,re,Pe){const Ve=!!re.past_key_values;return Pe.guidance_scale!==null&&Pe.guidance_scale>1&&(Ve?re.input_ids=(0,x.cat)([re.input_ids,re.input_ids],0):(re.input_ids=(0,x.cat)([re.input_ids,(0,x.full_like)(re.input_ids,BigInt(Pe.pad_token_id))],0),re.attention_mask=(0,x.cat)([re.attention_mask,(0,x.full_like)(re.attention_mask,0n)],0))),(Ve||!re.pixel_values)&&(re.pixel_values=(0,x.full)([0,0,3,384,384],1)),Ve&&(re.images_seq_mask=new x.Tensor("bool",new Array(1).fill(!0).fill(!1,0,1),[1,1]),re.images_emb_mask=new x.Tensor("bool",new Array(0).fill(!1),[1,1,0])),re}class ge extends C.Callable{constructor(re,Pe,Ve){super();Be(this,"main_input_name","input_ids");Be(this,"forward_params",["input_ids","attention_mask"]);this.config=re,this.sessions=Pe,this.configs=Ve;const We=u.get(this.constructor),tA=k.get(We);switch(this.can_generate=!1,this._forward=null,this._prepare_inputs_for_generation=null,tA){case d.DecoderOnly:this.can_generate=!0,this._forward=Qe,this._prepare_inputs_for_generation=MA;break;case d.Seq2Seq:case d.Vision2Seq:case d.Musicgen:this.can_generate=!0,this._forward=ke,this._prepare_inputs_for_generation=Le;break;case d.EncoderDecoder:this._forward=ke;break;case d.ImageTextToText:this.can_generate=!0,this._forward=Fe,this._prepare_inputs_for_generation=fe;break;case d.AudioTextToText:this.can_generate=!0,this._forward=Ye,this._prepare_inputs_for_generation=fe;break;case d.Phi3V:this.can_generate=!0,this._prepare_inputs_for_generation=fe;break;case d.MultiModality:this.can_generate=!0,this._prepare_inputs_for_generation=ye;break;case d.AutoEncoder:this._forward=Re;break;default:this._forward=De;break}this.can_generate&&this.forward_params.push("past_key_values"),this.custom_config=this.config["transformers.js_config"]??{}}async dispose(){var Pe;const re=[];for(const Ve of Object.values(this.sessions))(Pe=Ve==null?void 0:Ve.handler)!=null&&Pe.dispose&&re.push(Ve.handler.dispose());return await Promise.all(re)}static async from_pretrained(re,{progress_callback:Pe=null,config:Ve=null,cache_dir:We=null,local_files_only:tA=!1,revision:gA="main",model_file_name:EA=null,subfolder:GA="onnx",device:at=null,dtype:ut=null,use_external_data_format:rt=null,session_options:wt={}}={}){let lt={progress_callback:Pe,config:Ve,cache_dir:We,local_files_only:tA,revision:gA,model_file_name:EA,subfolder:GA,device:at,dtype:ut,use_external_data_format:rt,session_options:wt};const It=u.get(this),ZA=k.get(It);Ve=lt.config=await g.AutoConfig.from_pretrained(re,lt);let yt;if(ZA===d.DecoderOnly)yt=await Promise.all([$(re,{model:lt.model_file_name??"model"},lt),T(re,{generation_config:"generation_config.json"},lt)]);else if(ZA===d.Seq2Seq||ZA===d.Vision2Seq)yt=await Promise.all([$(re,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},lt),T(re,{generation_config:"generation_config.json"},lt)]);else if(ZA===d.MaskGeneration)yt=await Promise.all([$(re,{model:"vision_encoder",prompt_encoder_mask_decoder:"prompt_encoder_mask_decoder"},lt)]);else if(ZA===d.EncoderDecoder)yt=await Promise.all([$(re,{model:"encoder_model",decoder_model_merged:"decoder_model_merged"},lt)]);else if(ZA===d.ImageTextToText){const ur={embed_tokens:"embed_tokens",vision_encoder:"vision_encoder",decoder_model_merged:"decoder_model_merged"};Ve.is_encoder_decoder&&(ur.model="encoder_model"),yt=await Promise.all([$(re,ur,lt),T(re,{generation_config:"generation_config.json"},lt)])}else if(ZA===d.AudioTextToText){const ur={embed_tokens:"embed_tokens",audio_encoder:"audio_encoder",decoder_model_merged:"decoder_model_merged"};yt=await Promise.all([$(re,ur,lt),T(re,{generation_config:"generation_config.json"},lt)])}else if(ZA===d.Musicgen)yt=await Promise.all([$(re,{model:"text_encoder",decoder_model_merged:"decoder_model_merged",encodec_decode:"encodec_decode"},lt),T(re,{generation_config:"generation_config.json"},lt)]);else if(ZA===d.MultiModality)yt=await Promise.all([$(re,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"language_model",lm_head:"lm_head",gen_head:"gen_head",gen_img_embeds:"gen_img_embeds",image_decode:"image_decode"},lt),T(re,{generation_config:"generation_config.json"},lt)]);else if(ZA===d.Phi3V)yt=await Promise.all([$(re,{prepare_inputs_embeds:"prepare_inputs_embeds",model:"model",vision_encoder:"vision_encoder"},lt),T(re,{generation_config:"generation_config.json"},lt)]);else if(ZA===d.AutoEncoder)yt=await Promise.all([$(re,{encoder_model:"encoder_model",decoder_model:"decoder_model"},lt)]);else{if(ZA!==d.EncoderOnly){const ur=It??(Ve==null?void 0:Ve.model_type);ur!=="custom"&&console.warn(`Model type for '${ur}' not found, assuming encoder-only architecture. Please report this at ${v.GITHUB_ISSUE_URL}.`)}yt=await Promise.all([$(re,{model:lt.model_file_name??"model"},lt)])}return new this(Ve,...yt)}async _call(re){return await this.forward(re)}async forward(re){return await this._forward(this,re)}get generation_config(){var re;return((re=this.configs)==null?void 0:re.generation_config)??null}_get_logits_warper(re){const Pe=new D.LogitsProcessorList;return re.temperature!==null&&re.temperature!==1&&Pe.push(new D.TemperatureLogitsWarper(re.temperature)),re.top_k!==null&&re.top_k!==0&&Pe.push(new D.TopKLogitsWarper(re.top_k)),re.top_p!==null&&re.top_p<1&&Pe.push(new D.TopPLogitsWarper(re.top_p)),Pe}_get_logits_processor(re,Pe,Ve=null){const We=new D.LogitsProcessorList;if(re.repetition_penalty!==null&&re.repetition_penalty!==1&&We.push(new D.RepetitionPenaltyLogitsProcessor(re.repetition_penalty)),re.no_repeat_ngram_size!==null&&re.no_repeat_ngram_size>0&&We.push(new D.NoRepeatNGramLogitsProcessor(re.no_repeat_ngram_size)),re.bad_words_ids!==null&&We.push(new D.NoBadWordsLogitsProcessor(re.bad_words_ids,re.eos_token_id)),re.min_length!==null&&re.eos_token_id!==null&&re.min_length>0&&We.push(new D.MinLengthLogitsProcessor(re.min_length,re.eos_token_id)),re.min_new_tokens!==null&&re.eos_token_id!==null&&re.min_new_tokens>0&&We.push(new D.MinNewTokensLengthLogitsProcessor(Pe,re.min_new_tokens,re.eos_token_id)),re.forced_bos_token_id!==null&&We.push(new D.ForcedBOSTokenLogitsProcessor(re.forced_bos_token_id)),re.forced_eos_token_id!==null&&We.push(new D.ForcedEOSTokenLogitsProcessor(re.max_length,re.forced_eos_token_id)),re.begin_suppress_tokens!==null){const tA=Pe>1||re.forced_bos_token_id===null?Pe:Pe+1;We.push(new D.SuppressTokensAtBeginLogitsProcessor(re.begin_suppress_tokens,tA))}return re.guidance_scale!==null&&re.guidance_scale>1&&We.push(new D.ClassifierFreeGuidanceLogitsProcessor(re.guidance_scale)),Ve!==null&&We.extend(Ve),We}_prepare_generation_config(re,Pe,Ve=B.GenerationConfig){const We={...this.config};for(const gA of["decoder","generator","text_config"])gA in We&&Object.assign(We,We[gA]);const tA=new Ve(We);return Object.assign(tA,this.generation_config??{}),re&&Object.assign(tA,re),Pe&&Object.assign(tA,(0,w.pick)(Pe,Object.getOwnPropertyNames(tA))),tA}_get_stopping_criteria(re,Pe=null){const Ve=new R.StoppingCriteriaList;return re.max_length!==null&&Ve.push(new R.MaxLengthCriteria(re.max_length,this.config.max_position_embeddings??null)),re.eos_token_id!==null&&Ve.push(new R.EosTokenCriteria(re.eos_token_id)),Pe&&Ve.extend(Pe),Ve}_validate_model_class(){if(!this.can_generate){const re=[Sl,Ol,Fl,Ql],Pe=u.get(this.constructor),Ve=new Set,We=this.config.model_type;for(const gA of re){const EA=gA.get(We);EA&&Ve.add(EA[0])}let tA=`The current model class (${Pe}) is not compatible with \`.generate()\`, as it doesn't have a language model head.`;throw Ve.size>0&&(tA+=` Please use the following class instead: ${[...Ve].join(", ")}`),Error(tA)}}prepare_inputs_for_generation(...re){return this._prepare_inputs_for_generation(this,...re)}_update_model_kwargs_for_generation({generated_input_ids:re,outputs:Pe,model_inputs:Ve,is_encoder_decoder:We}){return Ve.past_key_values=this.getPastKeyValues(Pe,Ve.past_key_values),Ve.input_ids=new x.Tensor("int64",re.flat(),[re.length,1]),We||(Ve.attention_mask=(0,x.cat)([Ve.attention_mask,(0,x.ones)([Ve.attention_mask.dims[0],1])],1)),Ve.position_ids=null,Ve}_prepare_model_inputs({inputs:re,bos_token_id:Pe,model_kwargs:Ve}){const We=(0,w.pick)(Ve,this.forward_params),tA=this.main_input_name;if(tA in We){if(re)throw new Error("`inputs`: {inputs}` were passed alongside {input_name} which is not allowed. Make sure to either pass {inputs} or {input_name}=...")}else We[tA]=re;return{inputs_tensor:We[tA],model_inputs:We,model_input_name:tA}}async _prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:re,model_inputs:Pe,model_input_name:Ve,generation_config:We}){if(this.sessions.model.inputNames.includes("inputs_embeds")&&!Pe.inputs_embeds&&"_prepare_inputs_embeds"in this){const{input_ids:gA,pixel_values:EA,attention_mask:GA,...at}=Pe,ut=await this._prepare_inputs_embeds(Pe);Pe={...at,...(0,w.pick)(ut,["inputs_embeds","attention_mask"])}}let{last_hidden_state:tA}=await De(this,Pe);if(We.guidance_scale!==null&&We.guidance_scale>1)tA=(0,x.cat)([tA,(0,x.full_like)(tA,0)],0),"attention_mask"in Pe&&(Pe.attention_mask=(0,x.cat)([Pe.attention_mask,(0,x.zeros_like)(Pe.attention_mask)],0));else if(Pe.decoder_input_ids){const gA=he(Pe.decoder_input_ids).dims[0];if(gA!==tA.dims[0]){if(tA.dims[0]!==1)throw new Error(`The encoder outputs have a different batch size (${tA.dims[0]}) than the decoder inputs (${gA}).`);tA=(0,x.cat)(Array.from({length:gA},()=>tA),0)}}return Pe.encoder_outputs=tA,Pe}_prepare_decoder_input_ids_for_generation({batch_size:re,model_input_name:Pe,model_kwargs:Ve,decoder_start_token_id:We,bos_token_id:tA,generation_config:gA}){let{decoder_input_ids:EA,...GA}=Ve;if(!(EA instanceof x.Tensor)){if(EA)Array.isArray(EA[0])||(EA=Array.from({length:re},()=>EA));else if(We??(We=tA),this.config.model_type==="musicgen")EA=Array.from({length:re*this.config.decoder.num_codebooks},()=>[We]);else if(Array.isArray(We)){if(We.length!==re)throw new Error(`\`decoder_start_token_id\` expcted to have length ${re} but got ${We.length}`);EA=We}else EA=Array.from({length:re},()=>[We]);EA=he(EA)}return Ve.decoder_attention_mask=(0,x.ones_like)(EA),{input_ids:EA,model_inputs:GA}}async generate({inputs:re=null,generation_config:Pe=null,logits_processor:Ve=null,stopping_criteria:We=null,streamer:tA=null,...gA}){this._validate_model_class(),Pe=this._prepare_generation_config(Pe,gA);let{inputs_tensor:EA,model_inputs:GA,model_input_name:at}=this._prepare_model_inputs({inputs:re,model_kwargs:gA});const ut=this.config.is_encoder_decoder;ut&&("encoder_outputs"in GA||(GA=await this._prepare_encoder_decoder_kwargs_for_generation({inputs_tensor:EA,model_inputs:GA,model_input_name:at,generation_config:Pe})));let rt;ut?{input_ids:rt,model_inputs:GA}=this._prepare_decoder_input_ids_for_generation({batch_size:GA[at].dims.at(0),model_input_name:at,model_kwargs:GA,decoder_start_token_id:Pe.decoder_start_token_id,bos_token_id:Pe.bos_token_id,generation_config:Pe}):rt=GA[at];let wt=rt.dims.at(-1);Pe.max_new_tokens!==null&&(Pe.max_length=wt+Pe.max_new_tokens);const lt=this._get_logits_processor(Pe,wt,Ve),It=this._get_stopping_criteria(Pe,We),ZA=GA[at].dims.at(0),yt=K.LogitsSampler.getSampler(Pe),ur=new Array(ZA).fill(0),Er=rt.tolist();tA&&tA.put(Er);let jr,Or={};for(;;){if(GA=this.prepare_inputs_for_generation(Er,GA,Pe),jr=await this.forward(GA),Pe.output_attentions&&Pe.return_dict_in_generate){const _s=this.getAttentions(jr);for(const pa in _s)pa in Or||(Or[pa]=[]),Or[pa].push(_s[pa])}const kt=jr.logits.slice(null,-1,null),ns=lt(Er,kt),na=[];for(let _s=0;_s_s))break;GA=this._update_model_kwargs_for_generation({generated_input_ids:na,outputs:jr,model_inputs:GA,is_encoder_decoder:ut})}tA&&tA.end();const $r=this.getPastKeyValues(jr,GA.past_key_values,!0),cs=new x.Tensor("int64",Er.flat(),[Er.length,Er[0].length]);if(Pe.return_dict_in_generate)return{sequences:cs,past_key_values:$r,...Or};for(const kt of Object.values(jr))kt.location==="gpu-buffer"&&kt.dispose();return cs}getPastKeyValues(re,Pe,Ve=!1){const We=Object.create(null);for(const tA in re)if(tA.startsWith("present")){const gA=tA.replace("present","past_key_values"),EA=tA.includes("encoder");if(EA&&Pe?We[gA]=Pe[gA]:We[gA]=re[tA],Pe&&(!EA||Ve)){const GA=Pe[gA];GA.location==="gpu-buffer"&&GA.dispose()}}return We}getAttentions(re){const Pe={};for(const Ve of["cross_attentions","encoder_attentions","decoder_attentions"])for(const We in re)We.startsWith(Ve)&&(Ve in Pe||(Pe[Ve]=[]),Pe[Ve].push(re[We]));return Pe}addPastKeyValues(re,Pe){var Ve,We,tA;if(Pe)Object.assign(re,Pe);else{const gA=this.sessions.decoder_model_merged??this.sessions.model,EA=((Ve=gA==null?void 0:gA.config)==null?void 0:Ve.kv_cache_dtype)??"float32",GA=EA==="float16"?new x.DataTypeMap.float16:[],at=((tA=(We=re[this.main_input_name]??re.attention_mask)==null?void 0:We.dims)==null?void 0:tA[0])??1,ut=(0,g.getKeyValueShapes)(this.config,{batch_size:at});for(const rt in ut)re[rt]=new x.Tensor(EA,GA,ut[rt])}}async encode_image({pixel_values:re}){const Pe=(await Ae(this.sessions.vision_encoder,{pixel_values:re})).image_features;return this.config.num_image_tokens||(console.warn(`The number of image tokens was not set in the model configuration. Setting it to the number of features detected by the vision encoder (${Pe.dims[1]}).`),this.config.num_image_tokens=Pe.dims[1]),Pe}async encode_text({input_ids:re}){return(await Ae(this.sessions.embed_tokens,{input_ids:re})).inputs_embeds}async encode_audio({audio_values:re}){return(await Ae(this.sessions.audio_encoder,{audio_values:re})).audio_features}}class Ke{}class Ue extends Ke{constructor({last_hidden_state:U,hidden_states:re=null,attentions:Pe=null}){super(),this.last_hidden_state=U,this.hidden_states=re,this.attentions=Pe}}class sA extends ge{}class AA extends sA{}class H extends sA{async _call(U){return new ms(await super._call(U))}}class oA extends sA{async _call(U){return new pt(await super._call(U))}}class fA extends sA{async _call(U){return new ls(await super._call(U))}}class me extends sA{async _call(U){return new xs(await super._call(U))}}class vA extends ge{}class aA extends vA{}class kA extends vA{async _call(U){return new ms(await super._call(U))}}class QA extends vA{async _call(U){return new pt(await super._call(U))}}class RA extends vA{async _call(U){return new ls(await super._call(U))}}class HA extends ge{}class mA extends HA{}class nA extends ge{}class VA extends nA{}class dt extends nA{async _call(U){return new ms(await super._call(U))}}class UA extends nA{async _call(U){return new pt(await super._call(U))}}class it extends nA{async _call(U){return new ls(await super._call(U))}}class Zt extends nA{async _call(U){return new xs(await super._call(U))}}class wr extends ge{}class KA extends wr{}class Ts extends wr{async _call(U){return new ms(await super._call(U))}}class se extends wr{async _call(U){return new pt(await super._call(U))}}class Te extends wr{async _call(U){return new ls(await super._call(U))}}class ne extends wr{async _call(U){return new xs(await super._call(U))}}class ve extends ge{}class _e extends ve{}class lA extends ve{async _call(U){return new ms(await super._call(U))}}class je extends ve{async _call(U){return new pt(await super._call(U))}}class At extends ve{async _call(U){return new ls(await super._call(U))}}class Tt extends ve{async _call(U){return new xs(await super._call(U))}}class XA extends ge{}class WA extends XA{}class LA extends XA{async _call(U){return new ms(await super._call(U))}}class St extends XA{async _call(U){return new pt(await super._call(U))}}class Vt extends XA{async _call(U){return new ls(await super._call(U))}}class Ot extends XA{async _call(U){return new xs(await super._call(U))}}class FA extends ge{}class cr extends FA{}class Gs extends FA{async _call(U){return new ms(await super._call(U))}}class js extends FA{async _call(U){return new pt(await super._call(U))}}class Cs extends FA{async _call(U){return new ls(await super._call(U))}}class qs extends FA{async _call(U){return new xs(await super._call(U))}}class ds extends ge{}class bs extends ds{}class Ms extends ds{async _call(U){return new ms(await super._call(U))}}class Ps extends ds{async _call(U){return new pt(await super._call(U))}}class Ws extends ds{async _call(U){return new ls(await super._call(U))}}class $s extends ds{async _call(U){return new xs(await super._call(U))}}class Ut extends ge{}class ea extends Ut{}class Yr extends Ut{async _call(U){return new pt(await super._call(U))}}class Ys extends Ut{async _call(U){return new ls(await super._call(U))}}class Lr extends Ut{async _call(U){return new xs(await super._call(U))}}class iA extends Ut{async _call(U){return new ms(await super._call(U))}}class IA extends ge{}class jA extends IA{}class Gt extends IA{async _call(U){return new ms(await super._call(U))}}class Qs extends IA{async _call(U){return new pt(await super._call(U))}}class Is extends IA{async _call(U){return new ls(await super._call(U))}}class vr extends ge{}class ws extends vr{}class mr extends vr{async _call(U){return new ms(await super._call(U))}}class SA extends vr{async _call(U){return new pt(await super._call(U))}}class Gr extends vr{async _call(U){return new xs(await super._call(U))}}class es extends ge{}class La extends es{}class ba extends es{async _call(U){return new ms(await super._call(U))}}class _a extends es{async _call(U){return new pt(await super._call(U))}}class Fs extends es{async _call(U){return new ls(await super._call(U))}}class Aa extends es{async _call(U){return new xs(await super._call(U))}}class ta extends ge{}class Ia extends ta{}class Ra extends ta{async _call(U){return new ms(await super._call(U))}}class ja extends ta{async _call(U){return new pt(await super._call(U))}}class Wa extends ta{async _call(U){return new xs(await super._call(U))}}class Ss extends ge{}class Ne extends Ss{}class Z extends Ss{async _call(U){return new pt(await super._call(U))}}class le extends Ss{async _call(U){return new xs(await super._call(U))}}class we extends Ss{async _call(U){return new ms(await super._call(U))}}class Me extends ge{constructor(){super(...arguments);Be(this,"forward_params",["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"])}}class ze extends Me{}class $e extends Me{}class hA extends ge{}class yA extends hA{}class wA extends hA{}class eA extends ge{}class nt extends eA{}class Bt extends eA{}class vt extends ge{}class nr extends vt{}class Lt extends vt{}class Pr extends vt{async _call(U){return new pt(await super._call(U))}}class qt extends ge{}class hr extends qt{}class dr extends qt{}class $t extends qt{async _call(U){return new pt(await super._call(U))}}class Hr extends qt{}class jt extends ge{}class kr extends jt{}class Qr extends jt{}class _t extends ge{}class fr extends _t{}class Kr extends _t{}class xr extends ge{}class yr extends xr{}class er extends xr{async _call(U){return new ms(await super._call(U))}}class Cr extends xr{async _call(U){return new pt(await super._call(U))}}class zA extends xr{async _call(U){return new ls(await super._call(U))}}class Pt extends xr{async _call(U){return new xs(await super._call(U))}}class Xr extends ge{}class Ya extends Xr{}class si extends Xr{async _call(U){return new ms(await super._call(U))}}class ai extends Xr{async _call(U){return new pt(await super._call(U))}}class ni extends Xr{async _call(U){return new ls(await super._call(U))}}class ca extends Xr{async _call(U){return new xs(await super._call(U))}}class ua extends ge{}class ii extends ua{}class tn extends ua{async _call(U){return new ms(await super._call(U))}}class Ha extends ua{async _call(U){return new pt(await super._call(U))}}class Fr extends ua{async _call(U){return new ls(await super._call(U))}}class DA extends ua{async _call(U){return new xs(await super._call(U))}}class As extends ge{}class yn extends As{}class rn extends As{}class Dn extends ge{constructor(){super(...arguments);Be(this,"requires_attention_mask",!1);Be(this,"main_input_name","input_features");Be(this,"forward_params",["input_features","attention_mask","decoder_input_ids","decoder_attention_mask","past_key_values"])}}class oi extends Dn{}class Tn extends Dn{_prepare_generation_config(U,re){return super._prepare_generation_config(U,re,N.WhisperGenerationConfig)}_retrieve_init_tokens(U){const re=[U.decoder_start_token_id];let Pe=U.language;const Ve=U.task;if(U.is_multilingual){Pe||(console.warn("No language specified - defaulting to English (en)."),Pe="en");const tA=`<|${(0,V.whisper_language_to_code)(Pe)}|>`;re.push(U.lang_to_id[tA]),re.push(U.task_to_id[Ve??"transcribe"])}else if(Pe||Ve)throw new Error("Cannot specify `task` or `language` for an English-only model. If the model is intended to be multilingual, pass `is_multilingual=true` to generate, or update the generation config.");return!U.return_timestamps&&U.no_timestamps_token_id&&re.at(-1)!==U.no_timestamps_token_id?re.push(U.no_timestamps_token_id):U.return_timestamps&&re.at(-1)===U.no_timestamps_token_id&&(console.warn("<|notimestamps|> prompt token is removed from generation_config since `return_timestamps` is set to `true`."),re.pop()),re.filter(We=>We!=null)}async generate({inputs:U=null,generation_config:re=null,logits_processor:Pe=null,stopping_criteria:Ve=null,...We}){re=this._prepare_generation_config(re,We);const tA=We.decoder_input_ids??this._retrieve_init_tokens(re);if(re.return_timestamps&&(Pe??(Pe=new D.LogitsProcessorList),Pe.push(new D.WhisperTimeStampLogitsProcessor(re,tA))),re.begin_suppress_tokens&&(Pe??(Pe=new D.LogitsProcessorList),Pe.push(new D.SuppressTokensAtBeginLogitsProcessor(re.begin_suppress_tokens,tA.length))),re.return_token_timestamps){if(!re.alignment_heads)throw new Error("Model generation config has no `alignment_heads`, token-level timestamps not available. See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config.");re.task==="translate"&&console.warn("Token-level timestamps may not be reliable for task 'translate'."),re.output_attentions=!0,re.return_dict_in_generate=!0}const gA=await super.generate({inputs:U,generation_config:re,logits_processor:Pe,decoder_input_ids:tA,...We});return re.return_token_timestamps&&(gA.token_timestamps=this._extract_token_timestamps(gA,re.alignment_heads,re.num_frames)),gA}_extract_token_timestamps(U,re,Pe=null,Ve=.02){if(!U.cross_attentions)throw new Error("Model outputs must contain cross attentions to extract timestamps. This is most likely because the model was not exported with `output_attentions=True`.");Pe==null&&console.warn("`num_frames` has not been set, meaning the entire audio will be analyzed. This may lead to inaccurate token-level timestamps for short audios (< 30 seconds).");let We=this.config.median_filter_width;We===void 0&&(console.warn("Model config has no `median_filter_width`, using default value of 7."),We=7);const tA=U.cross_attentions,gA=Array.from({length:this.config.decoder_layers},(It,ZA)=>(0,x.cat)(tA.map(yt=>yt[ZA]),2)),EA=(0,x.stack)(re.map(([It,ZA])=>{if(It>=gA.length)throw new Error(`Layer index ${It} is out of bounds for cross attentions (length ${gA.length}).`);return Pe?gA[It].slice(null,ZA,null,[0,Pe]):gA[It].slice(null,ZA)})).transpose(1,0,2,3),[GA,at]=(0,x.std_mean)(EA,-2,0,!0),ut=EA.clone();for(let It=0;Ityt[cs+1]-yt[cs]),jr=(0,w.mergeArrays)([1],Er).map($r=>!!$r),Or=[];for(let $r=0;$rrt.findIndex(wt=>wt==We)),EA=gA.every(rt=>rt===-1),GA=gA.every(rt=>rt!==-1);if(!EA&&!GA)throw new Error("Every input should contain either 0 or 1 image token.");if(EA)return{inputs_embeds:U,attention_mask:Ve};const at=[],ut=[];for(let rt=0;rtArray.from({length:U.dims[0]},Er=>Array.from({length:U.dims[1]},jr=>1))),lt=re?re.tolist():[],It=Pe?Pe.tolist():[];let ZA=0,yt=0;for(let ur=0;urrt[ur][is]==1),Or=Er.reduce((Mr,is,Zn)=>(is==EA&&Mr.push(Zn),Mr),[]).map(Mr=>Er[Mr+1]),$r=Or.filter(Mr=>Mr==tA).length,cs=Or.filter(Mr=>Mr==gA).length;let kt=[],ns=0,na=$r,bi=cs;for(let Mr=0;Mrya>ns&&ki==tA),Zn=Er.findIndex((ki,ya)=>ya>ns&&ki==gA),wi=na>0&&is!==-1?is:Er.length+1,eo=bi>0&&Zn!==-1?Zn:Er.length+1;let M0,Nl,Ll,_l;wi0?(0,F.max)(kt.at(-1))[0]+1:0;kt.push(Array.from({length:3*jl},(ki,ya)=>Gf+ya%jl));const Wl=jl+Gf,v0=Y8*Rl*B0,H8=Array.from({length:v0},(ki,ya)=>Wl+Math.floor(ya/(Rl*B0))),V8=Array.from({length:v0},(ki,ya)=>Wl+Math.floor(ya/B0)%Rl),U8=Array.from({length:v0},(ki,ya)=>Wl+ya%B0);kt.push([H8,V8,U8].flat()),ns=M0+v0}if(ns0?(0,F.max)(kt.at(-1))[0]+1:0,is=Er.length-ns;kt.push(Array.from({length:3*is},(Zn,wi)=>Mr+wi%is))}const _s=kt.reduce((Mr,is)=>Mr+is.length,0),pa=new Array(_s);let w0=0;for(let Mr=0;Mr<3;++Mr)for(let is=0;isut[ZA%ut.length]),lt=Array.from({length:rt[0]},(It,ZA)=>(0,F.max)(ut.subarray(rt[1]*ZA,rt[1]*(ZA+1)))[0]+1n+BigInt(rt[1]));return[new x.Tensor("int64",wt,[3,...rt]),new x.Tensor("int64",lt,[lt.length,1])]}else{const[ut,rt]=U.dims,wt=BigInt64Array.from({length:3*ut*rt},(lt,It)=>BigInt(Math.floor(It%rt/ut)));return[new x.Tensor("int64",wt,[3,...U.dims]),(0,x.zeros)([ut,1])]}}async encode_image({pixel_values:U,image_grid_thw:re}){return(await Ae(this.sessions.vision_encoder,{pixel_values:U,grid_thw:re})).image_features}_merge_input_ids_with_image_features(U){return ee({image_token_id:this.config.image_token_id,...U})}prepare_inputs_for_generation(U,re,Pe){if(re.attention_mask&&!re.position_ids)if(!re.past_key_values)[re.position_ids,re.rope_deltas]=this.get_rope_index(re.input_ids,re.image_grid_thw,re.video_grid_thw,re.attention_mask);else{re.pixel_values=null;const Ve=BigInt(Object.values(re.past_key_values)[0].dims.at(-2)),We=re.rope_deltas.map(tA=>Ve+tA);re.position_ids=(0,x.stack)([We,We,We],0)}return re}}class mi extends ge{}class Mo extends mi{}class $a extends mi{}class Ls extends ge{}class ji extends Ls{}class hi extends Ls{}class _r extends ge{}class Rt extends _r{}class Wn extends _r{}class Wi extends ge{}class Yi extends Wi{}class Bo extends Wi{}class Hi extends ge{}class vo extends Hi{}class Vi extends Hi{}class Ui extends ge{}class xo extends Ui{}class Ki extends Ui{async _call(U){return new pt(await super._call(U))}}class Yn extends ge{}class Jr extends Yn{}class Xi extends Yn{async _call(U){return new pt(await super._call(U))}}class yo extends ge{}class bn extends yo{}class Zi extends ge{}class Hn extends Zi{}class $A extends Zi{async _call(U){return new pt(await super._call(U))}}class A extends ge{}class t extends A{}class r extends ge{}class s extends r{}class o extends r{async _call(U){return new pt(await super._call(U))}}class l extends ge{}class c extends l{}class f extends ge{}class m extends f{}class I extends f{async _call(U){return new pt(await super._call(U))}}class b extends ge{}class M extends b{async _call(U){return new Df(await super._call(U))}}class G extends ge{}class z extends G{}class W extends G{async _call(U){return new pt(await super._call(U))}}class Y extends ge{}class X extends Y{}class te extends Y{async _call(U){return new pt(await super._call(U))}}class oe extends ge{}class pe extends oe{}class Ie extends oe{}class Ge extends ge{}class Oe extends Ge{}class He extends Ge{}class Je extends ge{}class dA extends Je{}class CA extends Je{async _call(U){return new pt(await super._call(U))}}class PA extends ge{}class OA extends PA{}class tt extends PA{async _call(U){return new xt(await super._call(U))}}class ht extends PA{async _call(U){return new Nt(await super._call(U))}}class xt extends Ke{constructor({logits:U,pred_boxes:re}){super(),this.logits=U,this.pred_boxes=re}}class Nt extends Ke{constructor({logits:U,pred_boxes:re,pred_masks:Pe}){super(),this.logits=U,this.pred_boxes=re,this.pred_masks=Pe}}class Jt extends ge{}class ir extends Jt{}class br extends Jt{async _call(U){return new or(await super._call(U))}}class or extends Ke{constructor({logits:U,pred_boxes:re}){super(),this.logits=U,this.pred_boxes=re}}class Tr extends ge{}class Rr extends Tr{}class qr extends Tr{async _call(U){return new ss(await super._call(U))}}class ss extends or{}class as extends ge{}class ps extends as{}class sa extends as{async _call(U){return new aa(await super._call(U))}}class aa extends or{}class Xs extends ge{}class In extends Xs{}class Vn extends Xs{async _call(U){return new or(await super._call(U))}}class en extends ge{}class Un extends en{}class Kn extends en{async _call(U){return new Do(await super._call(U))}}class Do extends xt{}class Ji extends ge{}class To extends Ji{}class Go extends Ji{async _call(U){return new pt(await super._call(U))}}class ll extends ge{}class qc extends ll{}class $c extends ll{async _call(U){return new pt(await super._call(U))}}class cl extends ge{}class e1 extends cl{}class A1 extends cl{async _call(U){return new pt(await super._call(U))}}class i0 extends ge{}class t1 extends i0{}class r1 extends i0{async _call(U){return new pt(await super._call(U))}}class s1 extends i0{}class ul extends ge{}class a1 extends ul{}class n1 extends ul{}class dl extends ge{}class i1 extends dl{}class o1 extends dl{}class l1 extends ge{}class c1 extends l1{}class o0 extends ge{}class u1 extends o0{}class d1 extends o0{}class f1 extends o0{}class g1 extends ge{}class p1 extends g1{}class m1 extends ge{}class h1 extends m1{}class C1 extends ge{}class b1 extends C1{}class fl extends ge{}class I1 extends fl{}class w1 extends fl{}class gl extends ge{}class k1 extends gl{}class E1 extends gl{}class M1 extends ge{}class B1 extends M1{}class pl extends ge{}class v1 extends pl{}class x1 extends pl{async _call(U){return new pt(await super._call(U))}}class ml extends ge{}class y1 extends ml{}class D1 extends ml{async _call(U){return new pt(await super._call(U))}}class hl extends ge{}class T1 extends hl{}class G1 extends hl{async _call(U){return new pt(await super._call(U))}}class Cl extends ge{}class P1 extends Cl{}class Q1 extends Cl{async _call(U){return new pt(await super._call(U))}}class F1 extends ge{}class S1 extends F1{}class bl extends ge{}class O1 extends bl{}class z1 extends bl{async _call(U){return new N1(await super._call(U))}}class N1 extends Ke{constructor({logits:U,pred_boxes:re}){super(),this.logits=U,this.pred_boxes=re}}class L1 extends ge{}class _1 extends L1{async get_image_embeddings({pixel_values:U}){return await De(this,{pixel_values:U})}async forward(U){if((!U.image_embeddings||!U.image_positional_embeddings)&&(U={...U,...await this.get_image_embeddings(U)}),!U.input_labels&&U.input_points){const Pe=U.input_points.dims.slice(0,-1),Ve=Pe.reduce((We,tA)=>We*tA,1);U.input_labels=new x.Tensor("int64",new BigInt64Array(Ve).fill(1n),Pe)}const re={image_embeddings:U.image_embeddings,image_positional_embeddings:U.image_positional_embeddings};return U.input_points&&(re.input_points=U.input_points),U.input_labels&&(re.input_labels=U.input_labels),U.input_boxes&&(re.input_boxes=U.input_boxes),await Ae(this.sessions.prompt_encoder_mask_decoder,re)}async _call(U){return new R1(await super._call(U))}}class R1 extends Ke{constructor({iou_scores:U,pred_masks:re}){super(),this.iou_scores=U,this.pred_masks=re}}class Il extends ge{}class j1 extends Il{}class W1 extends Il{}class wl extends ge{}class Y1 extends wl{}class H1 extends wl{}class Xn extends ge{}class V1 extends Xn{}class U1 extends Xn{async _call(U){return new Ci(await super._call(U))}}class K1 extends Xn{async _call(U){return new pt(await super._call(U))}}class X1 extends Xn{async _call(U){return new ls(await super._call(U))}}class kl extends ge{}class Z1 extends kl{}class J1 extends kl{async _call(U){return new ls(await super._call(U))}}class q1 extends ge{}class $1 extends q1{}class l0 extends ge{}class eu extends l0{}class Au extends l0{async _call(U){return new Ci(await super._call(U))}}class tu extends l0{async _call(U){return new pt(await super._call(U))}}class Po extends ge{}class ru extends Po{}class su extends Po{async _call(U){return new Ci(await super._call(U))}}class au extends Po{async _call(U){return new pt(await super._call(U))}}class nu extends Po{async _call(U){return new ls(await super._call(U))}}class c0 extends ge{}class iu extends c0{}class ou extends c0{async _call(U){return new Ci(await super._call(U))}}class lu extends c0{async _call(U){return new pt(await super._call(U))}}class D8 extends ge{}class cu extends Xn{}class uu extends Xn{async _call(U){return new Ci(await super._call(U))}}class du extends Xn{async _call(U){return new pt(await super._call(U))}}class qi extends ge{}class fu extends qi{}class gu extends qi{async _call(U){return new Ci(await super._call(U))}}class pu extends qi{async _call(U){return new pt(await super._call(U))}}class mu extends qi{async _call(U){return new yf(await super._call(U))}}class hu extends qi{async _call(U){return new ls(await super._call(U))}}class Cu extends ge{}class bu extends Cu{}class u0 extends ge{}class T8 extends u0{}class Iu extends u0{}class wu extends u0{async generate_speech(U,re,{threshold:Pe=.5,minlenratio:Ve=0,maxlenratio:We=20,vocoder:tA=null}={}){const gA={input_ids:U},{encoder_outputs:EA,encoder_attention_mask:GA}=await De(this,gA),at=EA.dims[1]/this.config.reduction_factor,ut=Math.floor(at*We),rt=Math.floor(at*Ve),wt=this.config.num_mel_bins;let lt=[],It=null,ZA=null,yt=0;for(;;){++yt;const jr=Ee(!!ZA);let Or;ZA?Or=ZA.output_sequence_out:Or=new x.Tensor("float32",new Float32Array(wt),[1,1,wt]);let $r={use_cache_branch:jr,output_sequence:Or,encoder_attention_mask:GA,speaker_embeddings:re,encoder_hidden_states:EA};this.addPastKeyValues($r,It),ZA=await Ae(this.sessions.decoder_model_merged,$r),It=this.getPastKeyValues(ZA,It);const{prob:cs,spectrum:kt}=ZA;if(lt.push(kt),yt>=rt&&(Array.from(cs.data).filter(ns=>ns>=Pe).length>0||yt>=ut))break}const ur=(0,x.cat)(lt),{waveform:Er}=await Ae(tA.sessions.model,{spectrogram:ur});return{spectrogram:ur,waveform:Er}}}class ku extends ge{constructor(){super(...arguments);Be(this,"main_input_name","spectrogram")}}class Eu extends ge{}class Mu extends Eu{}class El extends ge{}class Bu extends El{}class vu extends El{}class Ml extends ge{}class xu extends Ml{}class yu extends Ml{}class Bl extends ge{}class Du extends Bl{}class Tu extends Bl{}class d0 extends ge{}class Gu extends d0{}class Pu extends d0{static async from_pretrained(U,re={}){return super.from_pretrained(U,{...re,model_file_name:re.model_file_name??"text_model"})}}class Qu extends d0{static async from_pretrained(U,re={}){return super.from_pretrained(U,{...re,model_file_name:re.model_file_name??"audio_model"})}}class Fu extends ge{}class vl extends Fu{async _call(U){return new Tf(await super._call(U))}}class f0 extends ge{}class G8 extends f0{}class Su extends f0{}class Ou extends f0{}class xl extends ge{}class zu extends xl{}class Nu extends xl{}class yl extends ge{}class Lu extends yl{}class _u extends yl{async _call(U){return new pt(await super._call(U))}}class Dl extends ge{}class P8 extends Dl{}class Q8 extends Dl{}class Tl extends ge{constructor(){super(...arguments);Be(this,"forward_params",["input_ids","attention_mask","encoder_outputs","decoder_input_ids","decoder_attention_mask","past_key_values"])}_apply_and_filter_by_delay_pattern_mask(re){const[Pe,Ve]=re.dims,We=this.config.decoder.num_codebooks,tA=Ve-We;let gA=0;for(let at=0;at0&&wt<=tA&&(re.data[gA++]=re.data[at])}const EA=Math.floor(Pe/We),GA=gA/(EA*We);return new x.Tensor(re.type,re.data.slice(0,gA),[EA,We,GA])}prepare_inputs_for_generation(re,Pe,Ve){let We=structuredClone(re);for(let gA=0;gA=EA&&(We[gA][EA]=BigInt(this.config.decoder.pad_token_id));return Ve.guidance_scale!==null&&Ve.guidance_scale>1&&(We=We.concat(We)),super.prepare_inputs_for_generation(We,Pe,Ve)}async generate(re){const Pe=await super.generate(re),Ve=this._apply_and_filter_by_delay_pattern_mask(Pe).unsqueeze_(0),{audio_values:We}=await Ae(this.sessions.encodec_decode,{audio_codes:Ve});return We}}class g0 extends ge{}class Ru extends g0{}class ju extends g0{async _call(U){return new pt(await super._call(U))}}class Wu extends g0{}class p0 extends ge{}class Yu extends p0{}class Hu extends p0{async _call(U){return new pt(await super._call(U))}}class Vu extends p0{}class m0 extends ge{}class Uu extends m0{}class Ku extends m0{async _call(U){return new pt(await super._call(U))}}class Xu extends m0{}class h0 extends ge{}class Zu extends h0{}class Ju extends h0{async _call(U){return new pt(await super._call(U))}}class qu extends h0{}class $u extends ge{}class ed extends $u{}class Ad extends ge{}class td extends Ad{constructor(...re){super(...re);Be(this,"forward_params",["input_ids","pixel_values","images_seq_mask","images_emb_mask","attention_mask","position_ids","past_key_values"]);this._generation_mode="text"}async forward(re){const Pe=this._generation_mode??"text";let Ve;if(Pe==="text"||!re.past_key_values){const GA=this.sessions.prepare_inputs_embeds,at=(0,w.pick)(re,GA.inputNames);Ve=await Ae(GA,at)}else{const GA=this.sessions.gen_img_embeds,at=(0,w.pick)({image_ids:re.input_ids},GA.inputNames);Ve=await Ae(GA,at)}const We={...re,...Ve},tA=await Qe(this,We),gA=this.sessions[Pe==="text"?"lm_head":"gen_head"];if(!gA)throw new Error(`Unable to find "${gA}" generation head`);const EA=await Ae(gA,(0,w.pick)(tA,gA.inputNames));return{...Ve,...tA,...EA}}async generate(re){return this._generation_mode="text",super.generate(re)}async generate_images(re){this._generation_mode="image";const Pe=(re.inputs??re[this.main_input_name]).dims[1],We=(await super.generate(re)).slice(null,[Pe,null]),tA=this.sessions.image_decode,{decoded_image:gA}=await Ae(tA,{generated_tokens:We}),EA=gA.add_(1).mul_(255/2).clamp_(0,255).to("uint8"),GA=[];for(const at of EA){const ut=S.RawImage.fromTensor(at);GA.push(ut)}return GA}}class rd extends Ke{constructor({char_logits:U,bpe_logits:re,wp_logits:Pe}){super(),this.char_logits=U,this.bpe_logits=re,this.wp_logits=Pe}get logits(){return[this.char_logits,this.bpe_logits,this.wp_logits]}}class sd extends ge{}class ad extends sd{async _call(U){return new rd(await super._call(U))}}class Gl extends ge{}class nd extends Gl{}class id extends Gl{}class Pl extends ge{}class od extends Pl{}class ld extends Pl{}class cd extends ge{constructor(){super(...arguments);Be(this,"forward_params",["input_ids","attention_mask","position_ids","audio_values","past_key_values"])}}class ud extends cd{_merge_input_ids_with_audio_features(U){const re=U.audio_features.dims.at(-1),Pe=U.audio_features.view(-1,re);return de({audio_token_id:this.config.ignore_index,...U,audio_features:Pe})}}class C0 extends ge{constructor(){super(...arguments);Be(this,"main_input_name","input_values");Be(this,"forward_params",["input_values"])}}class dd extends Ke{constructor({audio_codes:U}){super(),this.audio_codes=U}}class fd extends Ke{constructor({audio_values:U}){super(),this.audio_values=U}}class gd extends C0{async encode(U){return new dd(await Ae(this.sessions.encoder_model,U))}async decode(U){return new fd(await Ae(this.sessions.decoder_model,U))}}class pd extends C0{static async from_pretrained(U,re={}){return super.from_pretrained(U,{...re,model_file_name:re.model_file_name??"encoder_model"})}}class md extends C0{static async from_pretrained(U,re={}){return super.from_pretrained(U,{...re,model_file_name:re.model_file_name??"decoder_model"})}}class b0 extends ge{constructor(){super(...arguments);Be(this,"main_input_name","input_values");Be(this,"forward_params",["input_values"])}}class hd extends Ke{constructor({audio_codes:U}){super(),this.audio_codes=U}}class Cd extends Ke{constructor({audio_values:U}){super(),this.audio_values=U}}class bd extends b0{async encode(U){return new hd(await Ae(this.sessions.encoder_model,U))}async decode(U){return new Cd(await Ae(this.sessions.decoder_model,U))}}class Id extends b0{static async from_pretrained(U,re={}){return super.from_pretrained(U,{...re,model_file_name:re.model_file_name??"encoder_model"})}}class wd extends b0{static async from_pretrained(U,re={}){return super.from_pretrained(U,{...re,model_file_name:re.model_file_name??"decoder_model"})}}class I0 extends ge{constructor(){super(...arguments);Be(this,"main_input_name","input_values");Be(this,"forward_params",["input_values"])}}class kd extends I0{async encode(U){return await Ae(this.sessions.encoder_model,U)}async decode(U){return await Ae(this.sessions.decoder_model,U)}}class Ed extends I0{static async from_pretrained(U,re={}){return super.from_pretrained(U,{...re,model_file_name:re.model_file_name??"encoder_model"})}}class Md extends I0{static async from_pretrained(U,re={}){return super.from_pretrained(U,{...re,model_file_name:re.model_file_name??"decoder_model"})}}class Wt{static async from_pretrained(U,{progress_callback:re=null,config:Pe=null,cache_dir:Ve=null,local_files_only:We=!1,revision:tA="main",model_file_name:gA=null,subfolder:EA="onnx",device:GA=null,dtype:at=null,use_external_data_format:ut=null,session_options:rt={}}={}){const wt={progress_callback:re,config:Pe,cache_dir:Ve,local_files_only:We,revision:tA,model_file_name:gA,subfolder:EA,device:GA,dtype:at,use_external_data_format:ut,session_options:rt};if(wt.config=await g.AutoConfig.from_pretrained(U,wt),!this.MODEL_CLASS_MAPPINGS)throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: "+this.name);const lt=wt.config.model_type;for(const It of this.MODEL_CLASS_MAPPINGS){let ZA=It.get(lt);if(!ZA){for(const yt of It.values())if(yt[0]===lt){ZA=yt;break}if(!ZA)continue}return await ZA[1].from_pretrained(U,wt)}if(this.BASE_IF_FAIL)return Zd.has(lt)||console.warn(`Unknown model class "${lt}", attempting to construct from base class.`),await ge.from_pretrained(U,wt);throw Error(`Unsupported model type: ${lt}`)}}Be(Wt,"MODEL_CLASS_MAPPINGS",null),Be(Wt,"BASE_IF_FAIL",!1);const F8=new Map([["bert",["BertModel",AA]],["modernbert",["ModernBertModel",aA]],["nomic_bert",["NomicBertModel",mA]],["roformer",["RoFormerModel",VA]],["electra",["ElectraModel",_e]],["esm",["EsmModel",jA]],["convbert",["ConvBertModel",KA]],["camembert",["CamembertModel",WA]],["deberta",["DebertaModel",cr]],["deberta-v2",["DebertaV2Model",bs]],["mpnet",["MPNetModel",La]],["albert",["AlbertModel",Ne]],["distilbert",["DistilBertModel",ea]],["roberta",["RobertaModel",yr]],["xlm",["XLMModel",Ya]],["xlm-roberta",["XLMRobertaModel",ii]],["clap",["ClapModel",Gu]],["clip",["CLIPModel",ln]],["clipseg",["CLIPSegModel",On]],["chinese_clip",["ChineseCLIPModel",ra]],["siglip",["SiglipModel",Ar]],["jina_clip",["JinaCLIPModel",un]],["mobilebert",["MobileBertModel",ws]],["squeezebert",["SqueezeBertModel",Ia]],["wav2vec2",["Wav2Vec2Model",V1]],["wav2vec2-bert",["Wav2Vec2BertModel",iu]],["unispeech",["UniSpeechModel",eu]],["unispeech-sat",["UniSpeechSatModel",ru]],["hubert",["HubertModel",cu]],["wavlm",["WavLMModel",fu]],["audio-spectrogram-transformer",["ASTModel",yn]],["vits",["VitsModel",vl]],["pyannote",["PyAnnoteModel",Z1]],["wespeaker-resnet",["WeSpeakerResNetModel",$1]],["detr",["DetrModel",OA]],["rt_detr",["RTDetrModel",ir]],["rt_detr_v2",["RTDetrV2Model",Rr]],["rf_detr",["RFDetrModel",ps]],["d_fine",["DFineModel",In]],["table-transformer",["TableTransformerModel",Un]],["vit",["ViTModel",xo]],["ijepa",["IJepaModel",Jr]],["pvt",["PvtModel",Hn]],["vit_msn",["ViTMSNModel",s]],["vit_mae",["ViTMAEModel",t]],["groupvit",["GroupViTModel",c]],["fastvit",["FastViTModel",m]],["mobilevit",["MobileViTModel",z]],["mobilevitv2",["MobileViTV2Model",X]],["owlvit",["OwlViTModel",pe]],["owlv2",["Owlv2Model",Oe]],["beit",["BeitModel",dA]],["deit",["DeiTModel",To]],["hiera",["HieraModel",qc]],["convnext",["ConvNextModel",v1]],["convnextv2",["ConvNextV2Model",y1]],["dinov2",["Dinov2Model",T1]],["dinov2_with_registers",["Dinov2WithRegistersModel",P1]],["resnet",["ResNetModel",e1]],["swin",["SwinModel",t1]],["swin2sr",["Swin2SRModel",a1]],["donut-swin",["DonutSwinModel",B1]],["yolos",["YolosModel",O1]],["dpt",["DPTModel",i1]],["glpn",["GLPNModel",k1]],["hifigan",["SpeechT5HifiGan",ku]],["efficientnet",["EfficientNetModel",Lu]],["decision_transformer",["DecisionTransformerModel",ed]],["patchtst",["PatchTSTForPrediction",nd]],["patchtsmixer",["PatchTSMixerForPrediction",od]],["mobilenet_v1",["MobileNetV1Model",Ru]],["mobilenet_v2",["MobileNetV2Model",Yu]],["mobilenet_v3",["MobileNetV3Model",Uu]],["mobilenet_v4",["MobileNetV4Model",Zu]],["maskformer",["MaskFormerModel",I1]],["mgp-str",["MgpstrForSceneTextRecognition",ad]],["style_text_to_speech_2",["StyleTextToSpeech2Model",bu]]]),S8=new Map([["t5",["T5Model",ze]],["longt5",["LongT5Model",yA]],["mt5",["MT5Model",nt]],["bart",["BartModel",nr]],["mbart",["MBartModel",hr]],["marian",["MarianModel",j1]],["whisper",["WhisperModel",oi]],["m2m_100",["M2M100Model",Y1]],["blenderbot",["BlenderbotModel",kr]],["blenderbot-small",["BlenderbotSmallModel",fr]]]),O8=new Map([["mimi",["MimiModel",gd]],["dac",["DacModel",bd]],["snac",["SnacModel",kd]]]),z8=new Map([["bloom",["BloomModel",Rt]],["jais",["JAISModel",qA]],["gpt2",["GPT2Model",ga]],["gptj",["GPTJModel",fn]],["gpt_bigcode",["GPTBigCodeModel",Sr]],["gpt_neo",["GPTNeoModel",Ln]],["gpt_neox",["GPTNeoXModel",Xa]],["codegen",["CodeGenModel",Es]],["llama",["LlamaModel",_n]],["exaone",["ExaoneModel",ae]],["olmo",["OlmoModel",NA]],["olmo2",["Olmo2Model",Qt]],["mobilellm",["MobileLLMModel",Xe]],["granite",["GraniteModel",pn]],["cohere",["CohereModel",fi]],["gemma",["GemmaModel",Co]],["gemma2",["Gemma2Model",mn]],["gemma3_text",["Gemma3Model",Io]],["helium",["HeliumModel",xa]],["glm",["GlmModel",P]],["openelm",["OpenELMModel",rs]],["qwen2",["Qwen2Model",wo]],["qwen3",["Qwen3Model",qa]],["phi",["PhiModel",Mo]],["phi3",["Phi3Model",ji]],["mpt",["MptModel",Yi]],["opt",["OPTModel",vo]],["mistral",["MistralModel",Bu]],["starcoder2",["Starcoder2Model",xu]],["falcon",["FalconModel",Du]],["stablelm",["StableLmModel",zu]]]),Ql=new Map([["speecht5",["SpeechT5ForSpeechToText",Iu]],["whisper",["WhisperForConditionalGeneration",Tn]],["lite-whisper",["LiteWhisperForConditionalGeneration",Gn]],["moonshine",["MoonshineForConditionalGeneration",zt]]]),Bd=new Map([["speecht5",["SpeechT5ForTextToSpeech",wu]]]),vd=new Map([["vits",["VitsModel",vl]],["musicgen",["MusicgenForConditionalGeneration",Tl]]]),xd=new Map([["bert",["BertForSequenceClassification",oA]],["modernbert",["ModernBertForSequenceClassification",QA]],["roformer",["RoFormerForSequenceClassification",UA]],["electra",["ElectraForSequenceClassification",je]],["esm",["EsmForSequenceClassification",Qs]],["convbert",["ConvBertForSequenceClassification",se]],["camembert",["CamembertForSequenceClassification",St]],["deberta",["DebertaForSequenceClassification",js]],["deberta-v2",["DebertaV2ForSequenceClassification",Ps]],["mpnet",["MPNetForSequenceClassification",_a]],["albert",["AlbertForSequenceClassification",Z]],["distilbert",["DistilBertForSequenceClassification",Yr]],["roberta",["RobertaForSequenceClassification",Cr]],["xlm",["XLMForSequenceClassification",ai]],["xlm-roberta",["XLMRobertaForSequenceClassification",Ha]],["bart",["BartForSequenceClassification",Pr]],["mbart",["MBartForSequenceClassification",$t]],["mobilebert",["MobileBertForSequenceClassification",SA]],["squeezebert",["SqueezeBertForSequenceClassification",ja]]]),yd=new Map([["bert",["BertForTokenClassification",fA]],["modernbert",["ModernBertForTokenClassification",RA]],["roformer",["RoFormerForTokenClassification",it]],["electra",["ElectraForTokenClassification",At]],["esm",["EsmForTokenClassification",Is]],["convbert",["ConvBertForTokenClassification",Te]],["camembert",["CamembertForTokenClassification",Vt]],["deberta",["DebertaForTokenClassification",Cs]],["deberta-v2",["DebertaV2ForTokenClassification",Ws]],["mpnet",["MPNetForTokenClassification",Fs]],["distilbert",["DistilBertForTokenClassification",Ys]],["roberta",["RobertaForTokenClassification",zA]],["xlm",["XLMForTokenClassification",ni]],["xlm-roberta",["XLMRobertaForTokenClassification",Fr]]]),Fl=new Map([["t5",["T5ForConditionalGeneration",$e]],["longt5",["LongT5ForConditionalGeneration",wA]],["mt5",["MT5ForConditionalGeneration",Bt]],["bart",["BartForConditionalGeneration",Lt]],["mbart",["MBartForConditionalGeneration",dr]],["marian",["MarianMTModel",W1]],["m2m_100",["M2M100ForConditionalGeneration",H1]],["blenderbot",["BlenderbotForConditionalGeneration",Qr]],["blenderbot-small",["BlenderbotSmallForConditionalGeneration",Kr]]]),Sl=new Map([["bloom",["BloomForCausalLM",Wn]],["gpt2",["GPT2LMHeadModel",zn]],["jais",["JAISLMHeadModel",Nn]],["gptj",["GPTJForCausalLM",Ns]],["gpt_bigcode",["GPTBigCodeForCausalLM",Vs]],["gpt_neo",["GPTNeoForCausalLM",gr]],["gpt_neox",["GPTNeoXForCausalLM",st]],["codegen",["CodeGenForCausalLM",Ja]],["llama",["LlamaForCausalLM",gn]],["exaone",["ExaoneForCausalLM",ce]],["olmo",["OlmoForCausalLM",ct]],["olmo2",["Olmo2ForCausalLM",Mt]],["mobilellm",["MobileLLMForCausalLM",uA]],["granite",["GraniteForCausalLM",di]],["cohere",["CohereForCausalLM",ho]],["gemma",["GemmaForCausalLM",Li]],["gemma2",["Gemma2ForCausalLM",bo]],["gemma3_text",["Gemma3ForCausalLM",ts]],["helium",["HeliumForCausalLM",Rn]],["glm",["GlmForCausalLM",j]],["openelm",["OpenELMForCausalLM",Ri]],["qwen2",["Qwen2ForCausalLM",rr]],["qwen3",["Qwen3ForCausalLM",Cn]],["phi",["PhiForCausalLM",$a]],["phi3",["Phi3ForCausalLM",hi]],["mpt",["MptForCausalLM",Bo]],["opt",["OPTForCausalLM",Vi]],["mbart",["MBartForCausalLM",Hr]],["mistral",["MistralForCausalLM",vu]],["starcoder2",["Starcoder2ForCausalLM",yu]],["falcon",["FalconForCausalLM",Tu]],["trocr",["TrOCRForCausalLM",Mu]],["stablelm",["StableLmForCausalLM",Nu]],["phi3_v",["Phi3VForCausalLM",TA]]]),N8=new Map([["multi_modality",["MultiModalityCausalLM",td]]]),Dd=new Map([["bert",["BertForMaskedLM",H]],["modernbert",["ModernBertForMaskedLM",kA]],["roformer",["RoFormerForMaskedLM",dt]],["electra",["ElectraForMaskedLM",lA]],["esm",["EsmForMaskedLM",Gt]],["convbert",["ConvBertForMaskedLM",Ts]],["camembert",["CamembertForMaskedLM",LA]],["deberta",["DebertaForMaskedLM",Gs]],["deberta-v2",["DebertaV2ForMaskedLM",Ms]],["mpnet",["MPNetForMaskedLM",ba]],["albert",["AlbertForMaskedLM",we]],["distilbert",["DistilBertForMaskedLM",iA]],["roberta",["RobertaForMaskedLM",er]],["xlm",["XLMWithLMHeadModel",si]],["xlm-roberta",["XLMRobertaForMaskedLM",tn]],["mobilebert",["MobileBertForMaskedLM",mr]],["squeezebert",["SqueezeBertForMaskedLM",Ra]]]),Td=new Map([["bert",["BertForQuestionAnswering",me]],["roformer",["RoFormerForQuestionAnswering",Zt]],["electra",["ElectraForQuestionAnswering",Tt]],["convbert",["ConvBertForQuestionAnswering",ne]],["camembert",["CamembertForQuestionAnswering",Ot]],["deberta",["DebertaForQuestionAnswering",qs]],["deberta-v2",["DebertaV2ForQuestionAnswering",$s]],["mpnet",["MPNetForQuestionAnswering",Aa]],["albert",["AlbertForQuestionAnswering",le]],["distilbert",["DistilBertForQuestionAnswering",Lr]],["roberta",["RobertaForQuestionAnswering",Pt]],["xlm",["XLMForQuestionAnswering",ca]],["xlm-roberta",["XLMRobertaForQuestionAnswering",DA]],["mobilebert",["MobileBertForQuestionAnswering",Gr]],["squeezebert",["SqueezeBertForQuestionAnswering",Wa]]]),Ol=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",an]],["idefics3",["Idefics3ForConditionalGeneration",wa]],["smolvlm",["SmolVLMForConditionalGeneration",cA]]]),Gd=new Map([["llava",["LlavaForConditionalGeneration",Os]],["llava_onevision",["LlavaOnevisionForConditionalGeneration",Bs]],["moondream1",["Moondream1ForConditionalGeneration",zs]],["florence2",["Florence2ForConditionalGeneration",Qn]],["qwen2-vl",["Qwen2VLForConditionalGeneration",Eo]],["idefics3",["Idefics3ForConditionalGeneration",wa]],["smolvlm",["SmolVLMForConditionalGeneration",cA]],["paligemma",["PaliGemmaForConditionalGeneration",Fn]]]),Pd=new Map([["ultravox",["UltravoxModel",ud]]]),L8=new Map([["vision-encoder-decoder",["VisionEncoderDecoderModel",an]]]),Qd=new Map([["vit",["ViTForImageClassification",Ki]],["ijepa",["IJepaForImageClassification",Xi]],["pvt",["PvtForImageClassification",$A]],["vit_msn",["ViTMSNForImageClassification",o]],["fastvit",["FastViTForImageClassification",I]],["mobilevit",["MobileViTForImageClassification",W]],["mobilevitv2",["MobileViTV2ForImageClassification",te]],["beit",["BeitForImageClassification",CA]],["deit",["DeiTForImageClassification",Go]],["hiera",["HieraForImageClassification",$c]],["convnext",["ConvNextForImageClassification",x1]],["convnextv2",["ConvNextV2ForImageClassification",D1]],["dinov2",["Dinov2ForImageClassification",G1]],["dinov2_with_registers",["Dinov2WithRegistersForImageClassification",Q1]],["resnet",["ResNetForImageClassification",A1]],["swin",["SwinForImageClassification",r1]],["segformer",["SegformerForImageClassification",Su]],["efficientnet",["EfficientNetForImageClassification",_u]],["mobilenet_v1",["MobileNetV1ForImageClassification",ju]],["mobilenet_v2",["MobileNetV2ForImageClassification",Hu]],["mobilenet_v3",["MobileNetV3ForImageClassification",Ku]],["mobilenet_v4",["MobileNetV4ForImageClassification",Ju]]]),Fd=new Map([["detr",["DetrForObjectDetection",tt]],["rt_detr",["RTDetrForObjectDetection",br]],["rt_detr_v2",["RTDetrV2ForObjectDetection",qr]],["rf_detr",["RFDetrForObjectDetection",sa]],["d_fine",["DFineForObjectDetection",Vn]],["table-transformer",["TableTransformerForObjectDetection",Kn]],["yolos",["YolosForObjectDetection",z1]]]),Sd=new Map([["owlvit",["OwlViTForObjectDetection",Ie]],["owlv2",["Owlv2ForObjectDetection",He]],["grounding-dino",["GroundingDinoForObjectDetection",S1]]]),$i=new Map([["detr",["DetrForSegmentation",ht]],["clipseg",["CLIPSegForImageSegmentation",ui]]]),Od=new Map([["segformer",["SegformerForSemanticSegmentation",Ou]],["sapiens",["SapiensForSemanticSegmentation",u1]],["swin",["SwinForSemanticSegmentation",s1]],["mobilenet_v1",["MobileNetV1ForSemanticSegmentation",Wu]],["mobilenet_v2",["MobileNetV2ForSemanticSegmentation",Vu]],["mobilenet_v3",["MobileNetV3ForSemanticSegmentation",Xu]],["mobilenet_v4",["MobileNetV4ForSemanticSegmentation",qu]]]),zd=new Map([["detr",["DetrForSegmentation",ht]],["maskformer",["MaskFormerForInstanceSegmentation",w1]]]),Nd=new Map([["sam",["SamModel",_1]]]),Ld=new Map([["wav2vec2",["Wav2Vec2ForCTC",U1]],["wav2vec2-bert",["Wav2Vec2BertForCTC",ou]],["unispeech",["UniSpeechForCTC",Au]],["unispeech-sat",["UniSpeechSatForCTC",su]],["wavlm",["WavLMForCTC",gu]],["hubert",["HubertForCTC",uu]]]),_d=new Map([["wav2vec2",["Wav2Vec2ForSequenceClassification",K1]],["wav2vec2-bert",["Wav2Vec2BertForSequenceClassification",lu]],["unispeech",["UniSpeechForSequenceClassification",tu]],["unispeech-sat",["UniSpeechSatForSequenceClassification",au]],["wavlm",["WavLMForSequenceClassification",pu]],["hubert",["HubertForSequenceClassification",du]],["audio-spectrogram-transformer",["ASTForAudioClassification",rn]]]),Rd=new Map([["wavlm",["WavLMForXVector",mu]]]),jd=new Map([["unispeech-sat",["UniSpeechSatForAudioFrameClassification",nu]],["wavlm",["WavLMForAudioFrameClassification",hu]],["wav2vec2",["Wav2Vec2ForAudioFrameClassification",X1]],["pyannote",["PyAnnoteForAudioFrameClassification",J1]]]),Wd=new Map([["vitmatte",["VitMatteForImageMatting",M]]]),_8=new Map([["patchtst",["PatchTSTForPrediction",id]],["patchtsmixer",["PatchTSMixerForPrediction",ld]]]),Yd=new Map([["swin2sr",["Swin2SRForImageSuperResolution",n1]]]),Hd=new Map([["dpt",["DPTForDepthEstimation",o1]],["depth_anything",["DepthAnythingForDepthEstimation",c1]],["glpn",["GLPNForDepthEstimation",E1]],["sapiens",["SapiensForDepthEstimation",d1]],["depth_pro",["DepthProForDepthEstimation",p1]],["metric3d",["Metric3DForDepthEstimation",h1]],["metric3dv2",["Metric3Dv2ForDepthEstimation",b1]]]),Vd=new Map([["sapiens",["SapiensForNormalEstimation",f1]]]),Ud=new Map([["vitpose",["VitPoseForPoseEstimation",bn]]]),Kd=new Map([["clip",["CLIPVisionModelWithProjection",Ua]],["siglip",["SiglipVisionModel",ci]],["jina_clip",["JinaCLIPVisionModel",BA]]]),Xd=[[F8,d.EncoderOnly],[S8,d.EncoderDecoder],[z8,d.DecoderOnly],[O8,d.AutoEncoder],[xd,d.EncoderOnly],[yd,d.EncoderOnly],[Fl,d.Seq2Seq],[Ql,d.Seq2Seq],[Sl,d.DecoderOnly],[N8,d.MultiModality],[Dd,d.EncoderOnly],[Td,d.EncoderOnly],[Ol,d.Vision2Seq],[Gd,d.ImageTextToText],[Pd,d.AudioTextToText],[Qd,d.EncoderOnly],[$i,d.EncoderOnly],[zd,d.EncoderOnly],[Od,d.EncoderOnly],[Wd,d.EncoderOnly],[_8,d.EncoderOnly],[Yd,d.EncoderOnly],[Hd,d.EncoderOnly],[Vd,d.EncoderOnly],[Ud,d.EncoderOnly],[Fd,d.EncoderOnly],[Sd,d.EncoderOnly],[Nd,d.MaskGeneration],[Ld,d.EncoderOnly],[_d,d.EncoderOnly],[Bd,d.Seq2Seq],[vd,d.EncoderOnly],[Rd,d.EncoderOnly],[jd,d.EncoderOnly],[Kd,d.EncoderOnly]];for(const[_,U]of Xd)for(const[re,Pe]of _.values())k.set(re,U),u.set(Pe,re),e.set(re,Pe);const R8=[["MusicgenForConditionalGeneration",Tl,d.Musicgen],["Phi3VForCausalLM",TA,d.Phi3V],["CLIPTextModelWithProjection",os,d.EncoderOnly],["SiglipTextModel",Sn,d.EncoderOnly],["JinaCLIPTextModel",Ea,d.EncoderOnly],["ClapTextModelWithProjection",Pu,d.EncoderOnly],["ClapAudioModelWithProjection",Qu,d.EncoderOnly],["DacEncoderModel",Id,d.EncoderOnly],["DacDecoderModel",wd,d.EncoderOnly],["MimiEncoderModel",pd,d.EncoderOnly],["MimiDecoderModel",md,d.EncoderOnly],["SnacEncoderModel",Ed,d.EncoderOnly],["SnacDecoderModel",Md,d.EncoderOnly]];for(const[_,U,re]of R8)k.set(_,re),u.set(U,_),e.set(_,U);const Zd=new Map([["modnet",$i],["birefnet",$i],["isnet",$i],["ben",$i]]);for(const[_,U]of Zd.entries())U.set(_,["PreTrainedModel",ge]),k.set(_,d.EncoderOnly),u.set(ge,_),e.set(_,ge);class zl extends Wt{}Be(zl,"MODEL_CLASS_MAPPINGS",Xd.map(U=>U[0])),Be(zl,"BASE_IF_FAIL",!0);class Jd extends Wt{}Be(Jd,"MODEL_CLASS_MAPPINGS",[xd]);class qd extends Wt{}Be(qd,"MODEL_CLASS_MAPPINGS",[yd]);class $d extends Wt{}Be($d,"MODEL_CLASS_MAPPINGS",[Fl]);class ef extends Wt{}Be(ef,"MODEL_CLASS_MAPPINGS",[Ql]);class Af extends Wt{}Be(Af,"MODEL_CLASS_MAPPINGS",[Bd]);class tf extends Wt{}Be(tf,"MODEL_CLASS_MAPPINGS",[vd]);class rf extends Wt{}Be(rf,"MODEL_CLASS_MAPPINGS",[Sl]);class sf extends Wt{}Be(sf,"MODEL_CLASS_MAPPINGS",[Dd]);class af extends Wt{}Be(af,"MODEL_CLASS_MAPPINGS",[Td]);class nf extends Wt{}Be(nf,"MODEL_CLASS_MAPPINGS",[Ol]);class of extends Wt{}Be(of,"MODEL_CLASS_MAPPINGS",[Qd]);class lf extends Wt{}Be(lf,"MODEL_CLASS_MAPPINGS",[$i]);class cf extends Wt{}Be(cf,"MODEL_CLASS_MAPPINGS",[Od]);class uf extends Wt{}Be(uf,"MODEL_CLASS_MAPPINGS",[zd]);class df extends Wt{}Be(df,"MODEL_CLASS_MAPPINGS",[Fd]);class ff extends Wt{}Be(ff,"MODEL_CLASS_MAPPINGS",[Sd]);class gf extends Wt{}Be(gf,"MODEL_CLASS_MAPPINGS",[Nd]);class pf extends Wt{}Be(pf,"MODEL_CLASS_MAPPINGS",[Ld]);class mf extends Wt{}Be(mf,"MODEL_CLASS_MAPPINGS",[_d]);class hf extends Wt{}Be(hf,"MODEL_CLASS_MAPPINGS",[Rd]);class Cf extends Wt{}Be(Cf,"MODEL_CLASS_MAPPINGS",[jd]);class bf extends Wt{}Be(bf,"MODEL_CLASS_MAPPINGS",[L8]);class If extends Wt{}Be(If,"MODEL_CLASS_MAPPINGS",[Wd]);class wf extends Wt{}Be(wf,"MODEL_CLASS_MAPPINGS",[Yd]);class kf extends Wt{}Be(kf,"MODEL_CLASS_MAPPINGS",[Hd]);class Ef extends Wt{}Be(Ef,"MODEL_CLASS_MAPPINGS",[Vd]);class Mf extends Wt{}Be(Mf,"MODEL_CLASS_MAPPINGS",[Ud]);class Bf extends Wt{}Be(Bf,"MODEL_CLASS_MAPPINGS",[Kd]);class vf extends Wt{}Be(vf,"MODEL_CLASS_MAPPINGS",[Gd]);class xf extends Wt{}Be(xf,"MODEL_CLASS_MAPPINGS",[Pd]);class j8 extends Ke{constructor({logits:U,past_key_values:re,encoder_outputs:Pe,decoder_attentions:Ve=null,cross_attentions:We=null}){super(),this.logits=U,this.past_key_values=re,this.encoder_outputs=Pe,this.decoder_attentions=Ve,this.cross_attentions=We}}class pt extends Ke{constructor({logits:U,...re}){super(),this.logits=U;const Pe=Object.values(re);Pe.length>0&&(this.attentions=Pe)}}class yf extends Ke{constructor({logits:U,embeddings:re}){super(),this.logits=U,this.embeddings=re}}class ls extends Ke{constructor({logits:U}){super(),this.logits=U}}class ms extends Ke{constructor({logits:U}){super(),this.logits=U}}class xs extends Ke{constructor({start_logits:U,end_logits:re}){super(),this.start_logits=U,this.end_logits=re}}class Ci extends Ke{constructor({logits:U}){super(),this.logits=U}}class W8 extends Ke{constructor({logits:U,past_key_values:re}){super(),this.logits=U,this.past_key_values=re}}class Df extends Ke{constructor({alphas:U}){super(),this.alphas=U}}class Tf extends Ke{constructor({waveform:U,spectrogram:re}){super(),this.waveform=U,this.spectrogram=re}}},"./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js":(a,n,i)=>{i.r(n),i.d(n,{ASTFeatureExtractor:()=>h});var g=i("./src/base/feature_extraction_utils.js");i("./src/utils/tensor.js");var p=i("./src/utils/audio.js");class h extends g.FeatureExtractor{constructor(w){super(w);const E=this.config.sampling_rate,v=(0,p.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(E/2),E,null,"kaldi",!0);this.mel_filters=v,this.window=(0,p.window_function)(400,"hann",{periodic:!1}),this.mean=this.config.mean,this.std=this.config.std}async _extract_fbank_features(w,E){return(0,p.spectrogram)(w,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:E,transpose:!0})}async _call(w){(0,g.validate_audio_inputs)(w,"ASTFeatureExtractor");const E=await this._extract_fbank_features(w,this.config.max_length);if(this.config.do_normalize){const v=this.std*2,D=E.data;for(let B=0;B{i.r(n),i.d(n,{AutoFeatureExtractor:()=>C});var g=i("./src/utils/constants.js"),p=i("./src/utils/hub.js");i("./src/base/feature_extraction_utils.js");var h=i("./src/models/feature_extractors.js");class C{static async from_pretrained(E,v={}){const D=await(0,p.getModelJSON)(E,g.FEATURE_EXTRACTOR_NAME,!0,v),B=D.feature_extractor_type,x=h[B];if(!x)throw new Error(`Unknown feature_extractor_type: '${B}'. Please report this at ${g.GITHUB_ISSUE_URL}.`);return new x(D)}}},"./src/models/auto/image_processing_auto.js":(a,n,i)=>{i.r(n),i.d(n,{AutoImageProcessor:()=>w});var g=i("./src/utils/constants.js"),p=i("./src/utils/hub.js"),h=i("./src/base/image_processors_utils.js"),C=i("./src/models/image_processors.js");class w{static async from_pretrained(v,D={}){const B=await(0,p.getModelJSON)(v,g.IMAGE_PROCESSOR_NAME,!0,D),x=B.image_processor_type??B.feature_extractor_type;let S=C[x];return S||(x!==void 0&&console.warn(`Image processor type '${x}' not found, assuming base ImageProcessor. Please report this at ${g.GITHUB_ISSUE_URL}.`),S=h.ImageProcessor),new S(B)}}},"./src/models/auto/processing_auto.js":(a,n,i)=>{i.r(n),i.d(n,{AutoProcessor:()=>v});var g=i("./src/utils/constants.js"),p=i("./src/utils/hub.js"),h=i("./src/base/processing_utils.js"),C=i("./src/models/processors.js"),w=i("./src/models/image_processors.js"),E=i("./src/models/feature_extractors.js");class v{static async from_pretrained(B,x={}){const S=await(0,p.getModelJSON)(B,g.IMAGE_PROCESSOR_NAME,!0,x),{image_processor_type:F,feature_extractor_type:R,processor_class:K}=S;if(K&&C[K])return C[K].from_pretrained(B,x);if(!F&&!R)throw new Error("No `image_processor_type` or `feature_extractor_type` found in the config.");const L={};if(F){const V=w[F];if(!V)throw new Error(`Unknown image_processor_type: '${F}'.`);L.image_processor=new V(S)}if(R){const V=w[R];if(V)L.image_processor=new V(S);else{const d=E[R];if(!d)throw new Error(`Unknown feature_extractor_type: '${R}'.`);L.feature_extractor=new d(S)}}const N={};return new h.Processor(N,L)}}},"./src/models/beit/image_processing_beit.js":(a,n,i)=>{i.r(n),i.d(n,{BeitFeatureExtractor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},"./src/models/bit/image_processing_bit.js":(a,n,i)=>{i.r(n),i.d(n,{BitImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},"./src/models/chinese_clip/image_processing_chinese_clip.js":(a,n,i)=>{i.r(n),i.d(n,{ChineseCLIPFeatureExtractor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},"./src/models/clap/feature_extraction_clap.js":(a,n,i)=>{i.r(n),i.d(n,{ClapFeatureExtractor:()=>h});var g=i("./src/base/feature_extraction_utils.js");i("./src/utils/tensor.js");var p=i("./src/utils/audio.js");class h extends g.FeatureExtractor{constructor(w){super(w),this.mel_filters=(0,p.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,null,"htk"),this.mel_filters_slaney=(0,p.mel_filter_bank)(this.config.nb_frequency_bins,this.config.feature_size,this.config.frequency_min,this.config.frequency_max,this.config.sampling_rate,"slaney","slaney"),this.window=(0,p.window_function)(this.config.fft_window_size,"hann")}async _get_input_mel(w,E,v,D){let B;const x=w.length-E;if(x>0)if(v==="rand_trunc"){const S=Math.floor(Math.random()*(x+1));w=w.subarray(S,S+E),B=await this._extract_fbank_features(w,this.mel_filters_slaney,this.config.nb_max_samples)}else throw new Error(`Truncation strategy "${v}" not implemented`);else{if(x<0){let S=new Float64Array(E);if(S.set(w),D==="repeat")for(let F=w.length;F{i.r(n),i.d(n,{CLIPFeatureExtractor:()=>h,CLIPImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},"./src/models/convnext/image_processing_convnext.js":(a,n,i)=>{i.r(n),i.d(n,{ConvNextFeatureExtractor:()=>h,ConvNextImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{constructor(w){super(w),this.crop_pct=this.config.crop_pct??224/256}async resize(w){var v;const E=(v=this.size)==null?void 0:v.shortest_edge;if(E===void 0)throw new Error("Size dictionary must contain 'shortest_edge' key.");if(E<384){const D=Math.floor(E/this.crop_pct),[B,x]=this.get_resize_output_image_size(w,{shortest_edge:D});w=await w.resize(B,x,{resample:this.resample}),w=await w.center_crop(E,E)}else w=await w.resize(E,E,{resample:this.resample});return w}}class h extends p{}},"./src/models/dac/feature_extraction_dac.js":(a,n,i)=>{i.r(n),i.d(n,{DacFeatureExtractor:()=>p});var g=i("./src/models/encodec/feature_extraction_encodec.js");class p extends g.EncodecFeatureExtractor{}},"./src/models/deit/image_processing_deit.js":(a,n,i)=>{i.r(n),i.d(n,{DeiTFeatureExtractor:()=>h,DeiTImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},"./src/models/detr/image_processing_detr.js":(a,n,i)=>{i.r(n),i.d(n,{DetrFeatureExtractor:()=>C,DetrImageProcessor:()=>h});var g=i("./src/base/image_processors_utils.js"),p=i("./src/utils/tensor.js");class h extends g.ImageProcessor{async _call(E){const v=await super._call(E),D=[v.pixel_values.dims[0],64,64],B=(0,p.full)(D,1n);return{...v,pixel_mask:B}}post_process_object_detection(...E){return(0,g.post_process_object_detection)(...E)}post_process_panoptic_segmentation(...E){return(0,g.post_process_panoptic_segmentation)(...E)}post_process_instance_segmentation(...E){return(0,g.post_process_instance_segmentation)(...E)}}class C extends h{}},"./src/models/donut/image_processing_donut.js":(a,n,i)=>{i.r(n),i.d(n,{DonutFeatureExtractor:()=>h,DonutImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{pad_image(w,E,v,D={}){const[B,x,S]=E;let F=this.image_mean;Array.isArray(this.image_mean)||(F=new Array(S).fill(F));let R=this.image_std;Array.isArray(R)||(R=new Array(S).fill(F));const K=F.map((L,N)=>-L/R[N]);return super.pad_image(w,E,v,{center:!0,constant_values:K,...D})}}class h extends p{}},"./src/models/dpt/image_processing_dpt.js":(a,n,i)=>{i.r(n),i.d(n,{DPTFeatureExtractor:()=>h,DPTImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},"./src/models/efficientnet/image_processing_efficientnet.js":(a,n,i)=>{i.r(n),i.d(n,{EfficientNetImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{constructor(C){super(C),this.include_top=this.config.include_top??!0,this.include_top&&(this.image_std=this.image_std.map(w=>w*w))}}},"./src/models/encodec/feature_extraction_encodec.js":(a,n,i)=>{i.r(n),i.d(n,{EncodecFeatureExtractor:()=>h});var g=i("./src/base/feature_extraction_utils.js"),p=i("./src/utils/tensor.js");class h extends g.FeatureExtractor{async _call(w){(0,g.validate_audio_inputs)(w,"EncodecFeatureExtractor"),w instanceof Float64Array&&(w=new Float32Array(w));const E=this.config.feature_size;if(w.length%E!==0)throw new Error(`The length of the audio data must be a multiple of the number of channels (${E}).`);const v=[1,E,w.length/E];return{input_values:new p.Tensor("float32",w,v)}}}},"./src/models/feature_extractors.js":(a,n,i)=>{i.r(n),i.d(n,{ASTFeatureExtractor:()=>g.ASTFeatureExtractor,ClapFeatureExtractor:()=>h.ClapFeatureExtractor,DacFeatureExtractor:()=>C.DacFeatureExtractor,EncodecFeatureExtractor:()=>p.EncodecFeatureExtractor,ImageFeatureExtractor:()=>R.ImageProcessor,MoonshineFeatureExtractor:()=>w.MoonshineFeatureExtractor,PyAnnoteFeatureExtractor:()=>E.PyAnnoteFeatureExtractor,SeamlessM4TFeatureExtractor:()=>v.SeamlessM4TFeatureExtractor,SnacFeatureExtractor:()=>D.SnacFeatureExtractor,SpeechT5FeatureExtractor:()=>B.SpeechT5FeatureExtractor,Wav2Vec2FeatureExtractor:()=>x.Wav2Vec2FeatureExtractor,WeSpeakerFeatureExtractor:()=>S.WeSpeakerFeatureExtractor,WhisperFeatureExtractor:()=>F.WhisperFeatureExtractor});var g=i("./src/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.js"),p=i("./src/models/encodec/feature_extraction_encodec.js"),h=i("./src/models/clap/feature_extraction_clap.js"),C=i("./src/models/dac/feature_extraction_dac.js"),w=i("./src/models/moonshine/feature_extraction_moonshine.js"),E=i("./src/models/pyannote/feature_extraction_pyannote.js"),v=i("./src/models/seamless_m4t/feature_extraction_seamless_m4t.js"),D=i("./src/models/snac/feature_extraction_snac.js"),B=i("./src/models/speecht5/feature_extraction_speecht5.js"),x=i("./src/models/wav2vec2/feature_extraction_wav2vec2.js"),S=i("./src/models/wespeaker/feature_extraction_wespeaker.js"),F=i("./src/models/whisper/feature_extraction_whisper.js"),R=i("./src/base/image_processors_utils.js")},"./src/models/florence2/processing_florence2.js":(a,n,i)=>{i.r(n),i.d(n,{Florence2Processor:()=>C});var g=i("./src/base/processing_utils.js"),p=i("./src/models/auto/image_processing_auto.js"),h=i("./src/tokenizers.js");class C extends g.Processor{constructor(E,v){super(E,v);const{tasks_answer_post_processing_type:D,task_prompts_without_inputs:B,task_prompts_with_input:x}=this.image_processor.config;this.tasks_answer_post_processing_type=new Map(Object.entries(D??{})),this.task_prompts_without_inputs=new Map(Object.entries(B??{})),this.task_prompts_with_input=new Map(Object.entries(x??{})),this.regexes={quad_boxes:/(.+?)/gm,bboxes:/([^<]+)?/gm},this.size_per_bin=1e3}construct_prompts(E){typeof E=="string"&&(E=[E]);const v=[];for(const D of E)if(this.task_prompts_without_inputs.has(D))v.push(this.task_prompts_without_inputs.get(D));else{for(const[B,x]of this.task_prompts_with_input)if(D.includes(B)){v.push(x.replaceAll("{input}",D).replaceAll(B,""));break}v.length!==E.length&&v.push(D)}return v}post_process_generation(E,v,D){const B=this.tasks_answer_post_processing_type.get(v)??"pure_text";E=E.replaceAll("","").replaceAll("","");let x;switch(B){case"pure_text":x=E;break;case"description_with_bboxes":case"bboxes":case"phrase_grounding":case"ocr":const S=B==="ocr"?"quad_boxes":"bboxes",F=E.matchAll(this.regexes[S]),R=[],K=[];for(const[L,N,...V]of F)R.push(N?N.trim():R.at(-1)??""),K.push(V.map((d,k)=>(Number(d)+.5)/this.size_per_bin*D[k%2]));x={labels:R,[S]:K};break;default:throw new Error(`Task "${v}" (of type "${B}") not yet implemented.`)}return{[v]:x}}async _call(E,v=null,D={}){if(!E&&!v)throw new Error("Either text or images must be provided");const B=await this.image_processor(E,D),x=v?this.tokenizer(v,D):{};return{...B,...x}}}Be(C,"tokenizer_class",h.AutoTokenizer),Be(C,"image_processor_class",p.AutoImageProcessor)},"./src/models/glpn/image_processing_glpn.js":(a,n,i)=>{i.r(n),i.d(n,{GLPNFeatureExtractor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},"./src/models/grounding_dino/image_processing_grounding_dino.js":(a,n,i)=>{i.r(n),i.d(n,{GroundingDinoImageProcessor:()=>h});var g=i("./src/base/image_processors_utils.js"),p=i("./src/utils/tensor.js");class h extends g.ImageProcessor{async _call(w){const E=await super._call(w),v=E.pixel_values.dims,D=(0,p.ones)([v[0],v[2],v[3]]);return{...E,pixel_mask:D}}}},"./src/models/grounding_dino/processing_grounding_dino.js":(a,n,i)=>{i.r(n),i.d(n,{GroundingDinoProcessor:()=>E});var g=i("./src/base/processing_utils.js"),p=i("./src/models/auto/image_processing_auto.js"),h=i("./src/tokenizers.js"),C=i("./src/base/image_processors_utils.js");function w(v,D){const x=v.dims.at(-1)-1,S=v.tolist();S.fill(!1,0,1),S.fill(!1,x);const F=D.tolist();return S.map((R,K)=>R?K:null).filter(R=>R!==null).map(R=>F[R])}class E extends g.Processor{async _call(D,B,x={}){const S=D?await this.image_processor(D,x):{};return{...B?this.tokenizer(B,x):{},...S}}post_process_grounded_object_detection(D,B,{box_threshold:x=.25,text_threshold:S=.25,target_sizes:F=null}={}){const{logits:R,pred_boxes:K}=D,L=R.dims[0];if(F!==null&&F.length!==L)throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits");const N=R.dims.at(1),V=R.sigmoid(),d=V.max(-1).tolist(),k=K.tolist().map(u=>u.map(y=>(0,C.center_to_corners_format)(y))),e=[];for(let u=0;uAe.map((be,he)=>be*y[(he+1)%2])));const $=d[u],T=[],O=[],Ce=[];for(let Ae=0;Ae{i.r(n),i.d(n,{Idefics3ImageProcessor:()=>h});var g=i("./src/base/image_processors_utils.js"),p=i("./src/utils/tensor.js");class h extends g.ImageProcessor{constructor(w){super(w),this.do_image_splitting=w.do_image_splitting??!0,this.max_image_size=w.max_image_size}get_resize_for_vision_encoder(w,E){let[v,D]=w.dims.slice(-2);const B=D/v;return D>=v?(D=Math.ceil(D/E)*E,v=Math.floor(D/B),v=Math.ceil(v/E)*E):(v=Math.ceil(v/E)*E,D=Math.floor(v*B),D=Math.ceil(D/E)*E),{height:v,width:D}}async _call(w,{do_image_splitting:E=null,return_row_col_info:v=!1}={}){let D;if(!Array.isArray(w))D=[[w]];else{if(w.length===0||!w[0])throw new Error("No images provided.");Array.isArray(w[0])?D=w:D=[w]}let B=[],x=[],S=[];const F=[],R=[];for(const u of D){let y=await Promise.all(u.map(O=>this.preprocess(O)));F.push(...y.map(O=>O.original_size)),R.push(...y.map(O=>O.reshaped_input_size)),y.forEach(O=>O.pixel_values.unsqueeze_(0));const{longest_edge:$}=this.max_image_size;let T;if(E??this.do_image_splitting){let O=new Array(y.length),Ce=new Array(y.length);T=await Promise.all(y.map(async(Ae,be)=>{const he=this.get_resize_for_vision_encoder(Ae.pixel_values,$),Ee=await(0,p.interpolate_4d)(Ae.pixel_values,{size:[he.height,he.width]}),{frames:ke,num_splits_h:De,num_splits_w:Re}=await this.split_image(Ee,this.max_image_size);return O[be]=De,Ce[be]=Re,(0,p.cat)(ke,0)})),x.push(O),S.push(Ce)}else{const O=[$,$];T=await Promise.all(y.map(Ce=>(0,p.interpolate_4d)(Ce.pixel_values,{size:O}))),x.push(new Array(y.length).fill(0)),S.push(new Array(y.length).fill(0))}B.push((0,p.cat)(T,0))}const K=B.length,[L,N,V,d]=B[0].dims;let k,e;if(K===1)k=B[0].unsqueeze_(0),e=(0,p.full)([K,L,V,d],!0);else{const u=Math.max(...B.map(T=>T.dims.at(0)));e=(0,p.full)([K,u,V,d],!0);const y=e.data,$=u*V*d;for(let T=0;Tv||S>D){F=Math.ceil(x/v),R=Math.ceil(S/D);const K=Math.ceil(x/F),L=Math.ceil(S/R);for(let d=0;d{i.r(n),i.d(n,{Idefics3Processor:()=>D});var g=i("./src/base/processing_utils.js"),p=i("./src/models/auto/image_processing_auto.js"),h=i("./src/tokenizers.js");i("./src/utils/image.js");var C=i("./src/utils/core.js");function w(B,x,S,F,R,K){let L="";for(let N=0;N`+R.repeat(B);L+=` +`}return L+=` +${F}${K}`+R.repeat(B)+`${F}`,L}function E(B,x,S,F){return`${x}${F}`+S.repeat(B)+`${x}`}function v(B,x,S,F,R,K){return B===0&&x===0?E(S,F,R,K):w(S,B,x,F,R,K)}class D extends g.Processor{constructor(){super(...arguments);Be(this,"fake_image_token","");Be(this,"image_token","");Be(this,"global_img_token","")}async _call(S,F=null,R={}){R.return_row_col_info??(R.return_row_col_info=!0);let K;F&&(K=await this.image_processor(F,R)),Array.isArray(S)||(S=[S]);const L=K.rows??[new Array(S.length).fill(0)],N=K.cols??[new Array(S.length).fill(0)],V=this.config.image_seq_len,d=[],k=[];for(let u=0;uv(be,T[he],V,this.fake_image_token,this.image_token,this.global_img_token)),Ce=y.split(this.image_token);if(Ce.length===0)throw new Error("The image token should be present in the text.");let Ae=Ce[0];for(let be=0;be{i.r(n),i.d(n,{BeitFeatureExtractor:()=>g.BeitFeatureExtractor,BitImageProcessor:()=>p.BitImageProcessor,CLIPFeatureExtractor:()=>C.CLIPFeatureExtractor,CLIPImageProcessor:()=>C.CLIPImageProcessor,ChineseCLIPFeatureExtractor:()=>h.ChineseCLIPFeatureExtractor,ConvNextFeatureExtractor:()=>w.ConvNextFeatureExtractor,ConvNextImageProcessor:()=>w.ConvNextImageProcessor,DPTFeatureExtractor:()=>B.DPTFeatureExtractor,DPTImageProcessor:()=>B.DPTImageProcessor,DeiTFeatureExtractor:()=>E.DeiTFeatureExtractor,DeiTImageProcessor:()=>E.DeiTImageProcessor,DetrFeatureExtractor:()=>v.DetrFeatureExtractor,DetrImageProcessor:()=>v.DetrImageProcessor,DonutFeatureExtractor:()=>D.DonutFeatureExtractor,DonutImageProcessor:()=>D.DonutImageProcessor,EfficientNetImageProcessor:()=>x.EfficientNetImageProcessor,GLPNFeatureExtractor:()=>S.GLPNFeatureExtractor,GroundingDinoImageProcessor:()=>F.GroundingDinoImageProcessor,Idefics3ImageProcessor:()=>R.Idefics3ImageProcessor,JinaCLIPImageProcessor:()=>L.JinaCLIPImageProcessor,LlavaOnevisionImageProcessor:()=>N.LlavaOnevisionImageProcessor,Mask2FormerImageProcessor:()=>V.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>d.MaskFormerFeatureExtractor,MaskFormerImageProcessor:()=>d.MaskFormerImageProcessor,MobileNetV1FeatureExtractor:()=>k.MobileNetV1FeatureExtractor,MobileNetV1ImageProcessor:()=>k.MobileNetV1ImageProcessor,MobileNetV2FeatureExtractor:()=>e.MobileNetV2FeatureExtractor,MobileNetV2ImageProcessor:()=>e.MobileNetV2ImageProcessor,MobileNetV3FeatureExtractor:()=>u.MobileNetV3FeatureExtractor,MobileNetV3ImageProcessor:()=>u.MobileNetV3ImageProcessor,MobileNetV4FeatureExtractor:()=>y.MobileNetV4FeatureExtractor,MobileNetV4ImageProcessor:()=>y.MobileNetV4ImageProcessor,MobileViTFeatureExtractor:()=>$.MobileViTFeatureExtractor,MobileViTImageProcessor:()=>$.MobileViTImageProcessor,NougatImageProcessor:()=>T.NougatImageProcessor,OwlViTFeatureExtractor:()=>Ce.OwlViTFeatureExtractor,OwlViTImageProcessor:()=>Ce.OwlViTImageProcessor,Owlv2ImageProcessor:()=>O.Owlv2ImageProcessor,Phi3VImageProcessor:()=>Ae.Phi3VImageProcessor,PvtImageProcessor:()=>be.PvtImageProcessor,Qwen2VLImageProcessor:()=>he.Qwen2VLImageProcessor,RTDetrImageProcessor:()=>Ee.RTDetrImageProcessor,SamImageProcessor:()=>ke.SamImageProcessor,SegformerFeatureExtractor:()=>De.SegformerFeatureExtractor,SegformerImageProcessor:()=>De.SegformerImageProcessor,SiglipImageProcessor:()=>Re.SiglipImageProcessor,SmolVLMImageProcessor:()=>Qe.SmolVLMImageProcessor,Swin2SRImageProcessor:()=>ue.Swin2SRImageProcessor,VLMImageProcessor:()=>K.VLMImageProcessor,ViTFeatureExtractor:()=>ee.ViTFeatureExtractor,ViTImageProcessor:()=>ee.ViTImageProcessor,VitMatteImageProcessor:()=>de.VitMatteImageProcessor,VitPoseImageProcessor:()=>xe.VitPoseImageProcessor,YolosFeatureExtractor:()=>Ye.YolosFeatureExtractor,YolosImageProcessor:()=>Ye.YolosImageProcessor});var g=i("./src/models/beit/image_processing_beit.js"),p=i("./src/models/bit/image_processing_bit.js"),h=i("./src/models/chinese_clip/image_processing_chinese_clip.js"),C=i("./src/models/clip/image_processing_clip.js"),w=i("./src/models/convnext/image_processing_convnext.js"),E=i("./src/models/deit/image_processing_deit.js"),v=i("./src/models/detr/image_processing_detr.js"),D=i("./src/models/donut/image_processing_donut.js"),B=i("./src/models/dpt/image_processing_dpt.js"),x=i("./src/models/efficientnet/image_processing_efficientnet.js"),S=i("./src/models/glpn/image_processing_glpn.js"),F=i("./src/models/grounding_dino/image_processing_grounding_dino.js"),R=i("./src/models/idefics3/image_processing_idefics3.js"),K=i("./src/models/janus/image_processing_janus.js"),L=i("./src/models/jina_clip/image_processing_jina_clip.js"),N=i("./src/models/llava_onevision/image_processing_llava_onevision.js"),V=i("./src/models/mask2former/image_processing_mask2former.js"),d=i("./src/models/maskformer/image_processing_maskformer.js"),k=i("./src/models/mobilenet_v1/image_processing_mobilenet_v1.js"),e=i("./src/models/mobilenet_v2/image_processing_mobilenet_v2.js"),u=i("./src/models/mobilenet_v3/image_processing_mobilenet_v3.js"),y=i("./src/models/mobilenet_v4/image_processing_mobilenet_v4.js"),$=i("./src/models/mobilevit/image_processing_mobilevit.js"),T=i("./src/models/nougat/image_processing_nougat.js"),O=i("./src/models/owlv2/image_processing_owlv2.js"),Ce=i("./src/models/owlvit/image_processing_owlvit.js"),Ae=i("./src/models/phi3_v/image_processing_phi3_v.js"),be=i("./src/models/pvt/image_processing_pvt.js"),he=i("./src/models/qwen2_vl/image_processing_qwen2_vl.js"),Ee=i("./src/models/rt_detr/image_processing_rt_detr.js"),ke=i("./src/models/sam/image_processing_sam.js"),De=i("./src/models/segformer/image_processing_segformer.js"),Re=i("./src/models/siglip/image_processing_siglip.js"),Qe=i("./src/models/smolvlm/image_processing_smolvlm.js"),ue=i("./src/models/swin2sr/image_processing_swin2sr.js"),ee=i("./src/models/vit/image_processing_vit.js"),de=i("./src/models/vitmatte/image_processing_vitmatte.js"),xe=i("./src/models/vitpose/image_processing_vitpose.js"),Ye=i("./src/models/yolos/image_processing_yolos.js")},"./src/models/janus/image_processing_janus.js":(a,n,i)=>{i.r(n),i.d(n,{VLMImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{constructor(C){super({do_pad:!0,pad_size:{width:C.image_size,height:C.image_size},...C}),this.constant_values=this.config.background_color.map(w=>w*this.rescale_factor)}pad_image(C,w,E,v){return super.pad_image(C,w,E,{constant_values:this.constant_values,center:!0,...v})}}},"./src/models/janus/processing_janus.js":(a,n,i)=>{i.r(n),i.d(n,{VLChatProcessor:()=>v});var g=i("./src/base/processing_utils.js"),p=i("./src/models/auto/image_processing_auto.js"),h=i("./src/tokenizers.js"),C=i("./src/utils/core.js"),w=i("./src/utils/tensor.js"),E=i("./src/utils/image.js");class v extends g.Processor{constructor(B,x){super(B,x),this.image_tag=this.config.image_tag,this.image_start_tag=this.config.image_start_tag,this.image_end_tag=this.config.image_end_tag,this.num_image_tokens=this.config.num_image_tokens}async _call(B,{images:x=null,chat_template:S="default"}={}){x?Array.isArray(x)||(x=[x]):x=await Promise.all(B.filter(T=>T.images).flatMap(T=>T.images).map(T=>E.RawImage.read(T)));const F=this.tokenizer,R=F.apply_chat_template(B,{tokenize:!1,add_generation_prompt:!0,chat_template:S}),K=T=>F.encode(T,{add_special_tokens:!1}),L=R.split(this.image_tag),N=L.length-1;if(x.length!==N)throw new Error(`Number of images provided (${x.length}) does not match number of "${this.image_tag}" image tags (${N})`);const[V,d,k]=F.model.convert_tokens_to_ids([this.image_tag,this.image_start_tag,this.image_end_tag]);let e=K(L[0]),u=new Array(e.length).fill(!1);for(let T=1;T0){const T=await this.image_processor(x);return T.pixel_values.unsqueeze_(0),{...$,...T}}return $}}Be(v,"image_processor_class",p.AutoImageProcessor),Be(v,"tokenizer_class",h.AutoTokenizer),Be(v,"uses_processor_config",!0)},"./src/models/jina_clip/image_processing_jina_clip.js":(a,n,i)=>{i.r(n),i.d(n,{JinaCLIPImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{constructor(C){const{resize_mode:w,fill_color:E,interpolation:v,size:D,...B}=C,x=w==="squash"?{width:D,height:D}:w==="shortest"?{shortest_edge:D}:{longest_edge:D},S=v==="bicubic"?3:2;super({...B,size:x,resample:S,do_center_crop:!0,crop_size:D,do_normalize:!0})}}},"./src/models/jina_clip/processing_jina_clip.js":(a,n,i)=>{i.r(n),i.d(n,{JinaCLIPProcessor:()=>C});var g=i("./src/base/processing_utils.js"),p=i("./src/models/auto/image_processing_auto.js"),h=i("./src/tokenizers.js");class C extends g.Processor{async _call(E=null,v=null,D={}){if(!E&&!v)throw new Error("Either text or images must be provided");const B=E?this.tokenizer(E,D):{},x=v?await this.image_processor(v,D):{};return{...B,...x}}}Be(C,"tokenizer_class",h.AutoTokenizer),Be(C,"image_processor_class",p.AutoImageProcessor)},"./src/models/llava_onevision/image_processing_llava_onevision.js":(a,n,i)=>{i.r(n),i.d(n,{LlavaOnevisionImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},"./src/models/mask2former/image_processing_mask2former.js":(a,n,i)=>{i.r(n),i.d(n,{Mask2FormerImageProcessor:()=>p});var g=i("./src/models/maskformer/image_processing_maskformer.js");class p extends g.MaskFormerImageProcessor{}},"./src/models/maskformer/image_processing_maskformer.js":(a,n,i)=>{i.r(n),i.d(n,{MaskFormerFeatureExtractor:()=>h,MaskFormerImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_panoptic_segmentation(...w){return(0,g.post_process_panoptic_segmentation)(...w)}post_process_instance_segmentation(...w){return(0,g.post_process_instance_segmentation)(...w)}}class h extends p{}},"./src/models/mgp_str/processing_mgp_str.js":(a,n,i)=>{i.r(n),i.d(n,{MgpstrProcessor:()=>E});var g=i("./src/base/processing_utils.js"),p=i("./src/models/auto/image_processing_auto.js"),h=i("./src/tokenizers.js"),C=i("./src/utils/maths.js");const w={char:["char_decode",1],bpe:["bpe_decode",2],wp:["wp_decode",102]};class E extends g.Processor{get char_tokenizer(){return this.components.char_tokenizer}get bpe_tokenizer(){return this.components.bpe_tokenizer}get wp_tokenizer(){return this.components.wp_tokenizer}_decode_helper(D,B){if(!w.hasOwnProperty(B))throw new Error(`Format ${B} is not supported.`);const[x,S]=w[B],F=this[x].bind(this),[R,K]=D.dims,L=[],N=[],V=D.tolist();for(let k=0;k0?y.reduce((T,O)=>T*O,1):0;N.push(u),L.push($)}return[F(N),L]}char_decode(D){return this.char_tokenizer.batch_decode(D).map(B=>B.replaceAll(" ",""))}bpe_decode(D){return this.bpe_tokenizer.batch_decode(D)}wp_decode(D){return this.wp_tokenizer.batch_decode(D).map(B=>B.replaceAll(" ",""))}batch_decode([D,B,x]){const[S,F]=this._decode_helper(D,"char"),[R,K]=this._decode_helper(B,"bpe"),[L,N]=this._decode_helper(x,"wp"),V=[],d=[];for(let k=0;k{i.r(n),i.d(n,{MobileNetV1FeatureExtractor:()=>h,MobileNetV1ImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},"./src/models/mobilenet_v2/image_processing_mobilenet_v2.js":(a,n,i)=>{i.r(n),i.d(n,{MobileNetV2FeatureExtractor:()=>h,MobileNetV2ImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},"./src/models/mobilenet_v3/image_processing_mobilenet_v3.js":(a,n,i)=>{i.r(n),i.d(n,{MobileNetV3FeatureExtractor:()=>h,MobileNetV3ImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},"./src/models/mobilenet_v4/image_processing_mobilenet_v4.js":(a,n,i)=>{i.r(n),i.d(n,{MobileNetV4FeatureExtractor:()=>h,MobileNetV4ImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},"./src/models/mobilevit/image_processing_mobilevit.js":(a,n,i)=>{i.r(n),i.d(n,{MobileViTFeatureExtractor:()=>h,MobileViTImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},"./src/models/moonshine/feature_extraction_moonshine.js":(a,n,i)=>{i.r(n),i.d(n,{MoonshineFeatureExtractor:()=>h});var g=i("./src/base/feature_extraction_utils.js"),p=i("./src/utils/tensor.js");class h extends g.FeatureExtractor{async _call(w){(0,g.validate_audio_inputs)(w,"MoonshineFeatureExtractor"),w instanceof Float64Array&&(w=new Float32Array(w));const E=[1,w.length];return{input_values:new p.Tensor("float32",w,E)}}}},"./src/models/moonshine/processing_moonshine.js":(a,n,i)=>{i.r(n),i.d(n,{MoonshineProcessor:()=>C});var g=i("./src/models/auto/feature_extraction_auto.js"),p=i("./src/tokenizers.js"),h=i("./src/base/processing_utils.js");class C extends h.Processor{async _call(E){return await this.feature_extractor(E)}}Be(C,"tokenizer_class",p.AutoTokenizer),Be(C,"feature_extractor_class",g.AutoFeatureExtractor)},"./src/models/nougat/image_processing_nougat.js":(a,n,i)=>{i.r(n),i.d(n,{NougatImageProcessor:()=>p});var g=i("./src/models/donut/image_processing_donut.js");class p extends g.DonutImageProcessor{}},"./src/models/owlv2/image_processing_owlv2.js":(a,n,i)=>{i.r(n),i.d(n,{Owlv2ImageProcessor:()=>p});var g=i("./src/models/owlvit/image_processing_owlvit.js");class p extends g.OwlViTImageProcessor{}},"./src/models/owlvit/image_processing_owlvit.js":(a,n,i)=>{i.r(n),i.d(n,{OwlViTFeatureExtractor:()=>h,OwlViTImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_object_detection(...w){return(0,g.post_process_object_detection)(...w)}}class h extends p{}},"./src/models/owlvit/processing_owlvit.js":(a,n,i)=>{i.r(n),i.d(n,{OwlViTProcessor:()=>C});var g=i("./src/base/processing_utils.js"),p=i("./src/models/auto/image_processing_auto.js"),h=i("./src/tokenizers.js");class C extends g.Processor{}Be(C,"tokenizer_class",h.AutoTokenizer),Be(C,"image_processor_class",p.AutoImageProcessor)},"./src/models/paligemma/processing_paligemma.js":(a,n,i)=>{i.r(n),i.d(n,{PaliGemmaProcessor:()=>E});var g=i("./src/base/processing_utils.js"),p=i("./src/models/auto/image_processing_auto.js"),h=i("./src/tokenizers.js");const C="";function w(v,D,B,x,S){return`${x.repeat(B*S)}${D}${v} +`}class E extends g.Processor{async _call(D,B=null,x={}){B||(console.warn("You are using PaliGemma without a text prefix. It will perform as a picture-captioning model."),B=""),Array.isArray(D)||(D=[D]),Array.isArray(B)||(B=[B]);const S=this.tokenizer.bos_token,F=this.image_processor.config.image_seq_length;let R;B.some(N=>N.includes(C))?R=B.map(N=>{const V=N.replaceAll(C,C.repeat(F)),d=V.lastIndexOf(C),k=d===-1?0:d+C.length;return V.slice(0,k)+S+V.slice(k)+` +`}):(console.warn("You are passing both `text` and `images` to `PaliGemmaProcessor`. The processor expects special image tokens in the text, as many tokens as there are images per each text. It is recommended to add `` tokens in the very beginning of your text. For this call, we will infer how many images each text has and add special tokens."),R=B.map(N=>w(N,S,F,C,D.length)));const K=this.tokenizer(R,x);return{...await this.image_processor(D,x),...K}}}Be(E,"tokenizer_class",h.AutoTokenizer),Be(E,"image_processor_class",p.AutoImageProcessor),Be(E,"uses_processor_config",!1)},"./src/models/phi3_v/image_processing_phi3_v.js":(a,n,i)=>{i.r(n),i.d(n,{Phi3VImageProcessor:()=>D});var g=i("./src/base/image_processors_utils.js"),p=i("./src/utils/tensor.js");const h=336,C=[2,3],{ceil:w,floor:E,sqrt:v}=Math;class D extends g.ImageProcessor{constructor(x){super({...x,do_normalize:!0,do_pad:!0,pad_size:"custom",do_convert_rgb:!0,do_resize:!0}),this._num_crops=x.num_crops}calc_num_image_tokens_from_image_size(x,S){const{num_img_tokens:F}=this.config;return E((E(S/h)*E(x/h)+1)*F+1+(E(S/h)+1)*v(F))}get_resize_output_image_size(x,S){const F=this._num_crops,[R,K]=x.size;let L=R/K,N=1;for(;N*Math.ceil(N/L)<=F;)N+=1;N-=1;const V=Math.floor(N*336),d=Math.floor(V/L);return[V,d]}pad_image(x,S,F,R={}){const[K,L]=S,N=h*w(K/h),V=h*w(L/h),d=[1,1,1].map((k,e)=>(k-this.image_mean[e])/this.image_std[e]);return super.pad_image(x,S,{width:V,height:N},{center:!0,constant_values:d,...R})}async _call(x,{num_crops:S=null}={}){if(this._num_crops=S??(S=this.config.num_crops),S<4||v(S)%1!==0)throw new Error("num_crops must be a square number >= 4");Array.isArray(x)||(x=[x]);const F=x.length,R=await Promise.all(x.map(u=>this.preprocess(u))),K=R.map(u=>u.original_size),L=R.map(u=>u.reshaped_input_size),N=[];for(const{pixel_values:u}of R){u.unsqueeze_(0);const[y,$]=u.dims.slice(-2),T=await(0,p.interpolate_4d)(u,{size:[h,h],mode:"bicubic"});if(S>0){const O=[],Ce=v(S),Ae=E($/Ce),be=E(y/Ce);for(let Ee=0;Eeu.map(y=>h*w(y/h))),k=new p.Tensor("int64",d.flat(),[F,2]),e=d.map(([u,y])=>this.calc_num_image_tokens_from_image_size(y,u));return{pixel_values:V,original_sizes:K,reshaped_input_sizes:L,image_sizes:k,num_img_tokens:e}}}},"./src/models/phi3_v/processing_phi3_v.js":(a,n,i)=>{i.r(n),i.d(n,{Phi3VProcessor:()=>E});var g=i("./src/base/processing_utils.js"),p=i("./src/models/auto/image_processing_auto.js"),h=i("./src/tokenizers.js");i("./src/utils/image.js");const C="<|image|>",w=/<\|image_\d+\|>/g;class E extends g.Processor{async _call(D,B=null,{padding:x=!0,truncation:S=!0,num_crops:F=null}={}){Array.isArray(D)||(D=[D]);let R,K;if(B){K=await this.image_processor(B,{num_crops:F});const{num_img_tokens:L}=K,N=D.map((d,k)=>d.split(w).join(C.repeat(L[k])));R=this.tokenizer(N,{padding:x,truncation:S});const V=this.tokenizer.model.convert_tokens_to_ids([C])[0];R.input_ids.map_(d=>d==V?-d:d)}else R=this.tokenizer(D);return{...R,...K}}}Be(E,"image_processor_class",p.AutoImageProcessor),Be(E,"tokenizer_class",h.AutoTokenizer)},"./src/models/processors.js":(a,n,i)=>{i.r(n),i.d(n,{Florence2Processor:()=>g.Florence2Processor,GroundingDinoProcessor:()=>p.GroundingDinoProcessor,Idefics3Processor:()=>h.Idefics3Processor,JinaCLIPProcessor:()=>w.JinaCLIPProcessor,MgpstrProcessor:()=>E.MgpstrProcessor,MoonshineProcessor:()=>v.MoonshineProcessor,OwlViTProcessor:()=>D.OwlViTProcessor,PaliGemmaProcessor:()=>x.PaliGemmaProcessor,Phi3VProcessor:()=>B.Phi3VProcessor,PyAnnoteProcessor:()=>S.PyAnnoteProcessor,Qwen2VLProcessor:()=>F.Qwen2VLProcessor,SamProcessor:()=>R.SamProcessor,SmolVLMProcessor:()=>K.SmolVLMProcessor,SpeechT5Processor:()=>L.SpeechT5Processor,UltravoxProcessor:()=>N.UltravoxProcessor,VLChatProcessor:()=>C.VLChatProcessor,Wav2Vec2Processor:()=>V.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>d.Wav2Vec2ProcessorWithLM,WhisperProcessor:()=>k.WhisperProcessor});var g=i("./src/models/florence2/processing_florence2.js"),p=i("./src/models/grounding_dino/processing_grounding_dino.js"),h=i("./src/models/idefics3/processing_idefics3.js"),C=i("./src/models/janus/processing_janus.js"),w=i("./src/models/jina_clip/processing_jina_clip.js"),E=i("./src/models/mgp_str/processing_mgp_str.js"),v=i("./src/models/moonshine/processing_moonshine.js"),D=i("./src/models/owlvit/processing_owlvit.js"),B=i("./src/models/phi3_v/processing_phi3_v.js"),x=i("./src/models/paligemma/processing_paligemma.js"),S=i("./src/models/pyannote/processing_pyannote.js"),F=i("./src/models/qwen2_vl/processing_qwen2_vl.js"),R=i("./src/models/sam/processing_sam.js"),K=i("./src/models/smolvlm/processing_smolvlm.js"),L=i("./src/models/speecht5/processing_speecht5.js"),N=i("./src/models/ultravox/processing_ultravox.js"),V=i("./src/models/wav2vec2/processing_wav2vec2.js"),d=i("./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js"),k=i("./src/models/whisper/processing_whisper.js")},"./src/models/pvt/image_processing_pvt.js":(a,n,i)=>{i.r(n),i.d(n,{PvtImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},"./src/models/pyannote/feature_extraction_pyannote.js":(a,n,i)=>{i.r(n),i.d(n,{PyAnnoteFeatureExtractor:()=>C});var g=i("./src/base/feature_extraction_utils.js"),p=i("./src/utils/tensor.js"),h=i("./src/utils/maths.js");class C extends g.FeatureExtractor{async _call(E){(0,g.validate_audio_inputs)(E,"PyAnnoteFeatureExtractor"),E instanceof Float64Array&&(E=new Float32Array(E));const v=[1,1,E.length];return{input_values:new p.Tensor("float32",E,v)}}samples_to_frames(E){return(E-this.config.offset)/this.config.step}post_process_speaker_diarization(E,v){const D=v/this.samples_to_frames(v)/this.config.sampling_rate,B=[];for(const x of E.tolist()){const S=[];let F=-1;for(let R=0;R({id:R,start:K*D,end:L*D,confidence:N/(L-K)})))}return B}}},"./src/models/pyannote/processing_pyannote.js":(a,n,i)=>{i.r(n),i.d(n,{PyAnnoteProcessor:()=>h});var g=i("./src/base/processing_utils.js"),p=i("./src/models/pyannote/feature_extraction_pyannote.js");class h extends g.Processor{async _call(w){return await this.feature_extractor(w)}post_process_speaker_diarization(...w){return this.feature_extractor.post_process_speaker_diarization(...w)}get sampling_rate(){return this.feature_extractor.config.sampling_rate}}Be(h,"feature_extractor_class",p.PyAnnoteFeatureExtractor)},"./src/models/qwen2_vl/image_processing_qwen2_vl.js":(a,n,i)=>{i.r(n),i.d(n,{Qwen2VLImageProcessor:()=>h});var g=i("./src/base/image_processors_utils.js"),p=i("./src/utils/tensor.js");class h extends g.ImageProcessor{async _call(w,...E){const{pixel_values:v,original_sizes:D,reshaped_input_sizes:B}=await super._call(w,...E);let x=v;const{temporal_patch_size:S,merge_size:F,patch_size:R}=this.config;x.dims[0]===1&&(x=(0,p.cat)(Array.from({length:S},()=>x),0));const K=x.dims[0]/S,L=x.dims[1],N=Math.floor(x.dims[2]/R),V=Math.floor(x.dims[3]/R),d=x.view(K,S,L,Math.floor(N/F),F,R,Math.floor(V/F),F,R).permute(0,3,6,4,7,2,1,5,8).view(K*N*V,L*S*R*R),k=new p.Tensor("int64",[K,N,V],[1,3]);return{pixel_values:d,image_grid_thw:k,original_sizes:D,reshaped_input_sizes:B}}}},"./src/models/qwen2_vl/processing_qwen2_vl.js":(a,n,i)=>{i.r(n),i.d(n,{Qwen2VLProcessor:()=>C});var g=i("./src/base/processing_utils.js"),p=i("./src/models/auto/image_processing_auto.js"),h=i("./src/tokenizers.js");i("./src/utils/image.js");class C extends g.Processor{async _call(E,v=null,...D){Array.isArray(E)||(E=[E]);let B,x;if(v&&(B=await this.image_processor(v),x=B.image_grid_thw),x){let F=this.image_processor.config.merge_size**2,R=0;const K=x.tolist();E=E.map(L=>{for(;L.includes("<|image_pad|>");){const N=Number(K[R++].reduce((V,d)=>V*d,1n));L=L.replace("<|image_pad|>","<|placeholder|>".repeat(Math.floor(N/F)))}return L.replaceAll("<|placeholder|>","<|image_pad|>")})}return{...this.tokenizer(E),...B}}}Be(C,"image_processor_class",p.AutoImageProcessor),Be(C,"tokenizer_class",h.AutoTokenizer)},"./src/models/rt_detr/image_processing_rt_detr.js":(a,n,i)=>{i.r(n),i.d(n,{RTDetrImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_object_detection(...C){return(0,g.post_process_object_detection)(...C)}}},"./src/models/sam/image_processing_sam.js":(a,n,i)=>{i.r(n),i.d(n,{SamImageProcessor:()=>C});var g=i("./src/base/image_processors_utils.js"),p=i("./src/utils/core.js"),h=i("./src/utils/tensor.js");class C extends g.ImageProcessor{reshape_input_points(E,v,D,B=!1){E=structuredClone(E);let x=(0,p.calculateDimensions)(E);if(x.length===3)B||(x=[1,...x]),E=[E];else if(x.length!==4)throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.");for(let S=0;SB!==v.dims[x]))throw Error(`The first ${D.length} dimensions of 'input_points' and 'input_labels' must be the same.`);return new h.Tensor("int64",E.flat(1/0).map(BigInt),D)}async _call(E,{input_points:v=null,input_labels:D=null,input_boxes:B=null}={}){const x=await super._call(E);if(v&&(x.input_points=this.reshape_input_points(v,x.original_sizes,x.reshaped_input_sizes)),D){if(!x.input_points)throw Error("`input_points` must be provided if `input_labels` are provided.");x.input_labels=this.add_input_labels(D,x.input_points)}return B&&(x.input_boxes=this.reshape_input_points(B,x.original_sizes,x.reshaped_input_sizes,!0)),x}async post_process_masks(E,v,D,{mask_threshold:B=0,binarize:x=!0,pad_size:S=null}={}){const F=[];S=S??this.pad_size;const R=[S.height,S.width];for(let K=0;KB&&(k[e]=1);V=new h.Tensor("bool",k,V.dims)}F.push(V)}return F}generate_crop_boxes(E,v,{crop_n_layers:D=0,overlap_ratio:B=512/1500,points_per_crop:x=32,crop_n_points_downscale_factor:S=1}={}){}}},"./src/models/sam/processing_sam.js":(a,n,i)=>{i.r(n),i.d(n,{SamProcessor:()=>h});var g=i("./src/base/processing_utils.js"),p=i("./src/models/auto/image_processing_auto.js");class h extends g.Processor{async _call(...w){return await this.image_processor(...w)}post_process_masks(...w){return this.image_processor.post_process_masks(...w)}reshape_input_points(...w){return this.image_processor.reshape_input_points(...w)}}Be(h,"image_processor_class",p.AutoImageProcessor)},"./src/models/seamless_m4t/feature_extraction_seamless_m4t.js":(a,n,i)=>{i.r(n),i.d(n,{SeamlessM4TFeatureExtractor:()=>C});var g=i("./src/base/feature_extraction_utils.js"),p=i("./src/utils/tensor.js"),h=i("./src/utils/audio.js");class C extends g.FeatureExtractor{constructor(E){super(E);const v=this.config.sampling_rate,D=(0,h.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(v/2),v,null,"kaldi",!0);this.mel_filters=D,this.window=(0,h.window_function)(400,"povey",{periodic:!1})}async _extract_fbank_features(E,v){return E=E.map(D=>D*32768),(0,h.spectrogram)(E,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,max_num_frames:v,transpose:!0})}async _call(E,{padding:v=!0,pad_to_multiple_of:D=2,do_normalize_per_mel_bins:B=!0,return_attention_mask:x=!0}={}){(0,g.validate_audio_inputs)(E,"SeamlessM4TFeatureExtractor");let S=await this._extract_fbank_features(E,this.config.max_length);if(B){const[k,e]=S.dims,u=S.data;for(let y=0;y0){const $=new Float32Array(e*(k+y));$.set(u),$.fill(this.config.padding_value,u.length);const T=k+y;S=new p.Tensor(S.type,$,[T,e]),x&&(F=new p.Tensor("int64",new BigInt64Array(T),[1,T]),F.data.fill(1n,0,k))}}const[R,K]=S.dims,L=this.config.stride;if(R%L!==0)throw new Error(`The number of frames (${R}) must be a multiple of the stride (${L}).`);const V=S.view(1,Math.floor(R/L),K*L),d={input_features:V};if(x){const k=V.dims[1],e=new BigInt64Array(k);if(F){const u=F.data;for(let y=1,$=0;y{i.r(n),i.d(n,{SegformerFeatureExtractor:()=>h,SegformerImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_semantic_segmentation(...w){return(0,g.post_process_semantic_segmentation)(...w)}}class h extends p{}},"./src/models/siglip/image_processing_siglip.js":(a,n,i)=>{i.r(n),i.d(n,{SiglipImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}},"./src/models/smolvlm/image_processing_smolvlm.js":(a,n,i)=>{i.r(n),i.d(n,{SmolVLMImageProcessor:()=>g.Idefics3ImageProcessor});var g=i("./src/models/idefics3/image_processing_idefics3.js")},"./src/models/smolvlm/processing_smolvlm.js":(a,n,i)=>{i.r(n),i.d(n,{SmolVLMProcessor:()=>g.Idefics3Processor});var g=i("./src/models/idefics3/processing_idefics3.js")},"./src/models/snac/feature_extraction_snac.js":(a,n,i)=>{i.r(n),i.d(n,{SnacFeatureExtractor:()=>p});var g=i("./src/models/dac/feature_extraction_dac.js");class p extends g.DacFeatureExtractor{}},"./src/models/speecht5/feature_extraction_speecht5.js":(a,n,i)=>{i.r(n),i.d(n,{SpeechT5FeatureExtractor:()=>p});var g=i("./src/base/feature_extraction_utils.js");class p extends g.FeatureExtractor{}},"./src/models/speecht5/processing_speecht5.js":(a,n,i)=>{i.r(n),i.d(n,{SpeechT5Processor:()=>C});var g=i("./src/base/processing_utils.js"),p=i("./src/tokenizers.js"),h=i("./src/models/auto/feature_extraction_auto.js");class C extends g.Processor{async _call(E){return await this.feature_extractor(E)}}Be(C,"tokenizer_class",p.AutoTokenizer),Be(C,"feature_extractor_class",h.AutoFeatureExtractor)},"./src/models/swin2sr/image_processing_swin2sr.js":(a,n,i)=>{i.r(n),i.d(n,{Swin2SRImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{pad_image(C,w,E,v={}){const[D,B,x]=w;return super.pad_image(C,w,{width:B+(E-B%E)%E,height:D+(E-D%E)%E},{mode:"symmetric",center:!1,constant_values:-1,...v})}}},"./src/models/ultravox/processing_ultravox.js":(a,n,i)=>{i.r(n),i.d(n,{UltravoxProcessor:()=>C});var g=i("./src/models/auto/feature_extraction_auto.js"),p=i("./src/tokenizers.js"),h=i("./src/base/processing_utils.js");class C extends h.Processor{async _call(E,v=null,D={}){if(Array.isArray(E))throw new Error("Batched inputs are not supported yet.");let B={};if(v){const S=v.length,{input_features:F}=await this.feature_extractor(v,{...D,max_length:S}),R=Math.round(S/this.config.encoder_ds_factor+1e-4),K=1+Math.ceil(R/this.config.stack_factor);B.audio_token_len=[K],B.audio_values=F;const L=this.config.audio_placeholder;if(!E.includes(L))throw new Error(`The input text does not contain the image token ${L}.`);E=E.replaceAll(L,L.repeat(K))}return{...this.tokenizer(E,{add_special_tokens:!1,...D}),...B}}}Be(C,"tokenizer_class",p.AutoTokenizer),Be(C,"feature_extractor_class",g.AutoFeatureExtractor),Be(C,"uses_processor_config",!0)},"./src/models/vit/image_processing_vit.js":(a,n,i)=>{i.r(n),i.d(n,{ViTFeatureExtractor:()=>h,ViTImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{}class h extends p{}},"./src/models/vitmatte/image_processing_vitmatte.js":(a,n,i)=>{i.r(n),i.d(n,{VitMatteImageProcessor:()=>h});var g=i("./src/base/image_processors_utils.js"),p=i("./src/utils/tensor.js");class h extends g.ImageProcessor{async _call(w,E){Array.isArray(w)||(w=[w]),Array.isArray(E)||(E=[E]);const v=await Promise.all(w.map(x=>this.preprocess(x))),D=await Promise.all(E.map(x=>this.preprocess(x,{do_normalize:!1,do_convert_rgb:!1,do_convert_grayscale:!0})));return{pixel_values:(0,p.stack)(v.map((x,S)=>(0,p.cat)([x.pixel_values,D[S].pixel_values],0)),0),original_sizes:v.map(x=>x.original_size),reshaped_input_sizes:v.map(x=>x.reshaped_input_size)}}}},"./src/models/vitpose/image_processing_vitpose.js":(a,n,i)=>{i.r(n),i.d(n,{VitPoseImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_pose_estimation(C,w,{threshold:E=null}={}){const v=C.tolist(),[D,B,x,S]=C.dims,F=[];for(let R=0;R{i.r(n),i.d(n,{Wav2Vec2FeatureExtractor:()=>h});var g=i("./src/base/feature_extraction_utils.js"),p=i("./src/utils/tensor.js");class h extends g.FeatureExtractor{_zero_mean_unit_var_norm(w){const v=w.reduce((B,x)=>B+x,0)/w.length,D=w.reduce((B,x)=>B+(x-v)**2,0)/w.length;return w.map(B=>(B-v)/Math.sqrt(D+1e-7))}async _call(w){(0,g.validate_audio_inputs)(w,"Wav2Vec2FeatureExtractor"),w instanceof Float64Array&&(w=new Float32Array(w));let E=w;this.config.do_normalize&&(E=this._zero_mean_unit_var_norm(E));const v=[1,E.length];return{input_values:new p.Tensor("float32",E,v),attention_mask:new p.Tensor("int64",new BigInt64Array(E.length).fill(1n),v)}}}},"./src/models/wav2vec2/processing_wav2vec2.js":(a,n,i)=>{i.r(n),i.d(n,{Wav2Vec2Processor:()=>C});var g=i("./src/tokenizers.js"),p=i("./src/models/auto/feature_extraction_auto.js"),h=i("./src/base/processing_utils.js");class C extends h.Processor{async _call(E){return await this.feature_extractor(E)}}Be(C,"tokenizer_class",g.AutoTokenizer),Be(C,"feature_extractor_class",p.AutoFeatureExtractor)},"./src/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.js":(a,n,i)=>{i.r(n),i.d(n,{Wav2Vec2ProcessorWithLM:()=>C});var g=i("./src/tokenizers.js"),p=i("./src/models/auto/feature_extraction_auto.js"),h=i("./src/base/processing_utils.js");class C extends h.Processor{async _call(E){return await this.feature_extractor(E)}}Be(C,"tokenizer_class",g.AutoTokenizer),Be(C,"feature_extractor_class",p.AutoFeatureExtractor)},"./src/models/wespeaker/feature_extraction_wespeaker.js":(a,n,i)=>{i.r(n),i.d(n,{WeSpeakerFeatureExtractor:()=>h});var g=i("./src/base/feature_extraction_utils.js");i("./src/utils/tensor.js");var p=i("./src/utils/audio.js");class h extends g.FeatureExtractor{constructor(w){super(w);const E=this.config.sampling_rate,v=(0,p.mel_filter_bank)(257,this.config.num_mel_bins,20,Math.floor(E/2),E,null,"kaldi",!0);this.mel_filters=v,this.window=(0,p.window_function)(400,"hamming",{periodic:!1}),this.min_num_frames=this.config.min_num_frames}async _extract_fbank_features(w){return w=w.map(E=>E*32768),(0,p.spectrogram)(w,this.window,400,160,{fft_length:512,power:2,center:!1,preemphasis:.97,mel_filters:this.mel_filters,log_mel:"log",mel_floor:1192092955078125e-22,remove_dc_offset:!0,transpose:!0,min_num_frames:this.min_num_frames})}async _call(w){(0,g.validate_audio_inputs)(w,"WeSpeakerFeatureExtractor");const E=(await this._extract_fbank_features(w)).unsqueeze_(0);if(this.config.fbank_centering_span===null){const v=E.mean(1).data,D=E.data,[B,x,S]=E.dims;for(let F=0;F{i.r(n),i.d(n,{WHISPER_LANGUAGE_MAPPING:()=>p,WHISPER_TO_LANGUAGE_CODE_MAPPING:()=>h,whisper_language_to_code:()=>C});const g=[["en","english"],["zh","chinese"],["de","german"],["es","spanish"],["ru","russian"],["ko","korean"],["fr","french"],["ja","japanese"],["pt","portuguese"],["tr","turkish"],["pl","polish"],["ca","catalan"],["nl","dutch"],["ar","arabic"],["sv","swedish"],["it","italian"],["id","indonesian"],["hi","hindi"],["fi","finnish"],["vi","vietnamese"],["he","hebrew"],["uk","ukrainian"],["el","greek"],["ms","malay"],["cs","czech"],["ro","romanian"],["da","danish"],["hu","hungarian"],["ta","tamil"],["no","norwegian"],["th","thai"],["ur","urdu"],["hr","croatian"],["bg","bulgarian"],["lt","lithuanian"],["la","latin"],["mi","maori"],["ml","malayalam"],["cy","welsh"],["sk","slovak"],["te","telugu"],["fa","persian"],["lv","latvian"],["bn","bengali"],["sr","serbian"],["az","azerbaijani"],["sl","slovenian"],["kn","kannada"],["et","estonian"],["mk","macedonian"],["br","breton"],["eu","basque"],["is","icelandic"],["hy","armenian"],["ne","nepali"],["mn","mongolian"],["bs","bosnian"],["kk","kazakh"],["sq","albanian"],["sw","swahili"],["gl","galician"],["mr","marathi"],["pa","punjabi"],["si","sinhala"],["km","khmer"],["sn","shona"],["yo","yoruba"],["so","somali"],["af","afrikaans"],["oc","occitan"],["ka","georgian"],["be","belarusian"],["tg","tajik"],["sd","sindhi"],["gu","gujarati"],["am","amharic"],["yi","yiddish"],["lo","lao"],["uz","uzbek"],["fo","faroese"],["ht","haitian creole"],["ps","pashto"],["tk","turkmen"],["nn","nynorsk"],["mt","maltese"],["sa","sanskrit"],["lb","luxembourgish"],["my","myanmar"],["bo","tibetan"],["tl","tagalog"],["mg","malagasy"],["as","assamese"],["tt","tatar"],["haw","hawaiian"],["ln","lingala"],["ha","hausa"],["ba","bashkir"],["jw","javanese"],["su","sundanese"]],p=new Map(g),h=new Map([...g.map(([w,E])=>[E,w]),["burmese","my"],["valencian","ca"],["flemish","nl"],["haitian","ht"],["letzeburgesch","lb"],["pushto","ps"],["panjabi","pa"],["moldavian","ro"],["moldovan","ro"],["sinhalese","si"],["castilian","es"]]);function C(w){w=w.toLowerCase();let E=h.get(w);if(E===void 0){const v=w.match(/^<\|([a-z]{2})\|>$/);if(v&&(w=v[1]),p.has(w))E=w;else{const B=w.length===2?p.keys():p.values();throw new Error(`Language "${w}" is not supported. Must be one of: ${JSON.stringify(Array.from(B))}`)}}return E}},"./src/models/whisper/feature_extraction_whisper.js":(a,n,i)=>{i.r(n),i.d(n,{WhisperFeatureExtractor:()=>C});var g=i("./src/base/feature_extraction_utils.js");i("./src/utils/tensor.js");var p=i("./src/utils/audio.js"),h=i("./src/utils/maths.js");class C extends g.FeatureExtractor{constructor(E){var v;super(E),(v=this.config).mel_filters??(v.mel_filters=(0,p.mel_filter_bank)(Math.floor(1+this.config.n_fft/2),this.config.feature_size,0,8e3,this.config.sampling_rate,"slaney","slaney")),this.window=(0,p.window_function)(this.config.n_fft,"hann")}async _extract_fbank_features(E){const v=await(0,p.spectrogram)(E,this.window,this.config.n_fft,this.config.hop_length,{power:2,mel_filters:this.config.mel_filters,log_mel:"log10",max_num_frames:Math.min(Math.floor(E.length/this.config.hop_length),this.config.nb_max_frames)}),D=v.data,B=(0,h.max)(D)[0];for(let x=0;xB?(E.length>this.config.n_samples&&console.warn("Attempting to extract features for audio longer than 30 seconds. If using a pipeline to extract transcript from a long audio clip, remember to specify `chunk_length_s` and/or `stride_length_s`."),D=E.slice(0,B)):(D=new Float32Array(B),D.set(E)),{input_features:(await this._extract_fbank_features(D)).unsqueeze_(0)}}}},"./src/models/whisper/generation_whisper.js":(a,n,i)=>{i.r(n),i.d(n,{WhisperGenerationConfig:()=>p});var g=i("./src/generation/configuration_utils.js");class p extends g.GenerationConfig{constructor(){super(...arguments);Be(this,"return_timestamps",null);Be(this,"return_token_timestamps",null);Be(this,"num_frames",null);Be(this,"alignment_heads",null);Be(this,"task",null);Be(this,"language",null);Be(this,"no_timestamps_token_id",null);Be(this,"prompt_ids",null);Be(this,"is_multilingual",null);Be(this,"lang_to_id",null);Be(this,"task_to_id",null);Be(this,"max_initial_timestamp_index",1)}}},"./src/models/whisper/processing_whisper.js":(a,n,i)=>{i.r(n),i.d(n,{WhisperProcessor:()=>C});var g=i("./src/models/auto/feature_extraction_auto.js"),p=i("./src/tokenizers.js"),h=i("./src/base/processing_utils.js");class C extends h.Processor{async _call(E){return await this.feature_extractor(E)}}Be(C,"tokenizer_class",p.AutoTokenizer),Be(C,"feature_extractor_class",g.AutoFeatureExtractor)},"./src/models/yolos/image_processing_yolos.js":(a,n,i)=>{i.r(n),i.d(n,{YolosFeatureExtractor:()=>h,YolosImageProcessor:()=>p});var g=i("./src/base/image_processors_utils.js");class p extends g.ImageProcessor{post_process_object_detection(...w){return(0,g.post_process_object_detection)(...w)}}class h extends p{}},"./src/ops/registry.js":(a,n,i)=>{i.r(n),i.d(n,{TensorOpRegistry:()=>E});var g=i("./src/backends/onnx.js"),p=i("./src/utils/tensor.js"),h=i("./src/env.js");const C=h.apis.IS_BROWSER_ENV||h.apis.IS_WEBWORKER_ENV,w=async(v,D,B)=>{const x=await(0,g.createInferenceSession)(new Uint8Array(v),D);let S=Promise.resolve();return async F=>{const R=(0,g.isONNXProxy)(),K=Object.fromEntries(Object.entries(F).map(([N,V])=>[N,(R?V.clone():V).ort_tensor])),L=await(S=C?S.then(()=>x.run(K)):x.run(K));return Array.isArray(B)?B.map(N=>new p.Tensor(L[N])):new p.Tensor(L[B])}};class E{static get nearest_interpolate_4d(){return this._nearest_interpolate_4d||(this._nearest_interpolate_4d=w([8,10,18,0,58,129,1,10,41,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,18,10,4,109,111,100,101,34,7,110,101,97,114,101,115,116,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,21],this.session_options,"y")),this._nearest_interpolate_4d}static get bilinear_interpolate_4d(){return this._bilinear_interpolate_4d||(this._bilinear_interpolate_4d=w([8,9,18,0,58,128,1,10,40,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,17,10,4,109,111,100,101,34,6,108,105,110,101,97,114,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bilinear_interpolate_4d}static get bicubic_interpolate_4d(){return this._bicubic_interpolate_4d||(this._bicubic_interpolate_4d=w([8,9,18,0,58,127,10,39,10,1,120,10,0,10,0,10,1,115,18,1,121,34,6,82,101,115,105,122,101,42,16,10,4,109,111,100,101,34,5,99,117,98,105,99,160,1,3,18,1,114,90,31,10,1,120,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,90,15,10,1,115,18,10,10,8,8,7,18,4,10,2,8,4,98,31,10,1,121,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,99,10,3,18,1,104,10,3,18,1,119,66,2,16,20],this.session_options,"y")),this._bicubic_interpolate_4d}static get matmul(){return this._matmul||(this._matmul=w([8,9,18,0,58,55,10,17,10,1,97,10,1,98,18,1,99,34,6,77,97,116,77,117,108,18,1,114,90,9,10,1,97,18,4,10,2,8,1,90,9,10,1,98,18,4,10,2,8,1,98,9,10,1,99,18,4,10,2,8,1,66,2,16,20],this.session_options,"c")),this._matmul}static get stft(){return this._stft||(this._stft=w([8,7,18,0,58,148,1,10,38,10,1,115,10,1,106,10,1,119,10,1,108,18,1,111,34,4,83,84,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,115,90,26,10,1,115,18,21,10,19,8,1,18,15,10,3,18,1,98,10,3,18,1,115,10,3,18,1,99,90,11,10,1,106,18,6,10,4,8,7,18,0,90,16,10,1,119,18,11,10,9,8,1,18,5,10,3,18,1,119,90,11,10,1,108,18,6,10,4,8,7,18,0,98,31,10,1,111,18,26,10,24,8,1,18,20,10,3,18,1,98,10,3,18,1,102,10,3,18,1,100,10,3,18,1,99,66,2,16,17],this.session_options,"o")),this._stft}static get rfft(){return this._rfft||(this._rfft=w([8,9,18,0,58,97,10,33,10,1,120,10,0,10,1,97,18,1,121,34,3,68,70,84,42,15,10,8,111,110,101,115,105,100,101,100,24,1,160,1,2,18,1,100,90,21,10,1,120,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,90,11,10,1,97,18,6,10,4,8,7,18,0,98,21,10,1,121,18,16,10,14,8,1,18,10,10,3,18,1,115,10,3,18,1,99,66,2,16,20],this.session_options,"y")),this._rfft}static get top_k(){return this._top_k||(this._top_k=w([8,10,18,0,58,73,10,18,10,1,120,10,1,107,18,1,118,18,1,105,34,4,84,111,112,75,18,1,116,90,9,10,1,120,18,4,10,2,8,1,90,15,10,1,107,18,10,10,8,8,7,18,4,10,2,8,1,98,9,10,1,118,18,4,10,2,8,1,98,9,10,1,105,18,4,10,2,8,7,66,2,16,21],this.session_options,["v","i"])),this._top_k}static get slice(){return this._slice||(this._slice=w([8,7,18,0,58,96,10,25,10,1,120,10,1,115,10,1,101,10,1,97,10,1,116,18,1,121,34,5,83,108,105,99,101,18,1,114,90,9,10,1,120,18,4,10,2,8,1,90,9,10,1,115,18,4,10,2,8,7,90,9,10,1,101,18,4,10,2,8,7,90,9,10,1,97,18,4,10,2,8,7,90,9,10,1,116,18,4,10,2,8,7,98,9,10,1,121,18,4,10,2,8,1,66,2,16,13],this.session_options,"y")),this._slice}}Be(E,"session_options",{})},"./src/pipelines.js":(a,n,i)=>{i.r(n),i.d(n,{AudioClassificationPipeline:()=>Ce,AutomaticSpeechRecognitionPipeline:()=>be,BackgroundRemovalPipeline:()=>De,DepthEstimationPipeline:()=>Ye,DocumentQuestionAnsweringPipeline:()=>ee,FeatureExtractionPipeline:()=>T,FillMaskPipeline:()=>V,ImageClassificationPipeline:()=>Ee,ImageFeatureExtractionPipeline:()=>O,ImageSegmentationPipeline:()=>ke,ImageToImagePipeline:()=>xe,ImageToTextPipeline:()=>he,ObjectDetectionPipeline:()=>Qe,Pipeline:()=>R,QuestionAnsweringPipeline:()=>N,SummarizationPipeline:()=>k,Text2TextGenerationPipeline:()=>d,TextClassificationPipeline:()=>K,TextGenerationPipeline:()=>y,TextToAudioPipeline:()=>de,TokenClassificationPipeline:()=>L,TranslationPipeline:()=>e,ZeroShotAudioClassificationPipeline:()=>Ae,ZeroShotClassificationPipeline:()=>$,ZeroShotImageClassificationPipeline:()=>Re,ZeroShotObjectDetectionPipeline:()=>ue,pipeline:()=>pA});var g=i("./src/tokenizers.js"),p=i("./src/models.js"),h=i("./src/models/auto/processing_auto.js");i("./src/base/processing_utils.js");var C=i("./src/utils/generic.js"),w=i("./src/utils/core.js"),E=i("./src/utils/maths.js"),v=i("./src/utils/audio.js"),D=i("./src/utils/tensor.js"),B=i("./src/utils/image.js");async function x(Le){return Array.isArray(Le)||(Le=[Le]),await Promise.all(Le.map(fe=>B.RawImage.read(fe)))}async function S(Le,fe){return Array.isArray(Le)||(Le=[Le]),await Promise.all(Le.map(ye=>typeof ye=="string"||ye instanceof URL?(0,v.read_audio)(ye,fe):ye instanceof Float64Array?new Float32Array(ye):ye))}function F(Le,fe){fe&&(Le=Le.map(sA=>sA|0));const[ye,ge,Ke,Ue]=Le;return{xmin:ye,ymin:ge,xmax:Ke,ymax:Ue}}class R extends C.Callable{constructor({task:fe,model:ye,tokenizer:ge=null,processor:Ke=null}){super(),this.task=fe,this.model=ye,this.tokenizer=ge,this.processor=Ke}async dispose(){await this.model.dispose()}}class K extends R{constructor(fe){super(fe)}async _call(fe,{top_k:ye=1}={}){const ge=this.tokenizer(fe,{padding:!0,truncation:!0}),Ke=await this.model(ge),Ue=this.model.config.problem_type==="multi_label_classification"?H=>H.sigmoid():H=>new D.Tensor("float32",(0,E.softmax)(H.data),H.dims),sA=this.model.config.id2label,AA=[];for(const H of Ke.logits){const oA=Ue(H),fA=await(0,D.topk)(oA,ye),me=fA[0].tolist(),aA=fA[1].tolist().map((kA,QA)=>({label:sA?sA[kA]:`LABEL_${kA}`,score:me[QA]}));ye===1?AA.push(...aA):AA.push(aA)}return Array.isArray(fe)||ye===1?AA:AA[0]}}class L extends R{constructor(fe){super(fe)}async _call(fe,{ignore_labels:ye=["O"]}={}){const ge=Array.isArray(fe),Ke=this.tokenizer(ge?fe:[fe],{padding:!0,truncation:!0}),sA=(await this.model(Ke)).logits,AA=this.model.config.id2label,H=[];for(let oA=0;oAnA==this.tokenizer.sep_token_id);H[me].map((nA,VA)=>nA==1&&(VA===0||VA>aA&&oA.findIndex(dt=>dt==vA[VA])===-1));const kA=Ue[me].tolist(),QA=sA[me].tolist();for(let nA=1;nAVA==vA[nA])!==-1)&&(kA[nA]=-1/0,QA[nA]=-1/0);const RA=(0,E.softmax)(kA).map((nA,VA)=>[nA,VA]),HA=(0,E.softmax)(QA).map((nA,VA)=>[nA,VA]);RA[0][0]=0,HA[0][0]=0;const mA=(0,w.product)(RA,HA).filter(nA=>nA[0][1]<=nA[1][1]).map(nA=>[nA[0][1],nA[1][1],nA[0][0]*nA[1][0]]).sort((nA,VA)=>VA[2]-nA[2]);for(let nA=0;nAkA==this.tokenizer.mask_token_id);if(oA===-1)throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`);const fA=Ke[AA][oA],me=await(0,D.topk)(new D.Tensor("float32",(0,E.softmax)(fA.data),fA.dims),ye),vA=me[0].tolist(),aA=me[1].tolist();Ue.push(aA.map((kA,QA)=>{const RA=H.slice();return RA[oA]=kA,{score:vA[QA],token:Number(kA),token_str:this.tokenizer.decode([kA]),sequence:this.tokenizer.decode(RA,{skip_special_tokens:!0})}}))}return Array.isArray(fe)?Ue:Ue[0]}}class d extends R{constructor(ye){super(ye);Be(this,"_key","generated_text")}async _call(ye,ge={}){Array.isArray(ye)||(ye=[ye]),this.model.config.prefix&&(ye=ye.map(oA=>this.model.config.prefix+oA));const Ke=this.model.config.task_specific_params;Ke&&Ke[this.task]&&Ke[this.task].prefix&&(ye=ye.map(oA=>Ke[this.task].prefix+oA));const Ue=this.tokenizer,sA={padding:!0,truncation:!0};let AA;this instanceof e&&"_build_translation_inputs"in Ue?AA=Ue._build_translation_inputs(ye,sA,ge):AA=Ue(ye,sA);const H=await this.model.generate({...AA,...ge});return Ue.batch_decode(H,{skip_special_tokens:!0}).map(oA=>({[this._key]:oA}))}}class k extends d{constructor(ye){super(ye);Be(this,"_key","summary_text")}}class e extends d{constructor(ye){super(ye);Be(this,"_key","translation_text")}}function u(Le){return Array.isArray(Le)&&Le.every(fe=>"role"in fe&&"content"in fe)}class y extends R{constructor(fe){super(fe)}async _call(fe,ye={}){let ge=!1,Ke=!1,Ue;if(typeof fe=="string")Ue=fe=[fe];else if(Array.isArray(fe)&&fe.every(aA=>typeof aA=="string"))ge=!0,Ue=fe;else{if(u(fe))fe=[fe];else if(Array.isArray(fe)&&fe.every(u))ge=!0;else throw new Error("Input must be a string, an array of strings, a Chat, or an array of Chats");Ke=!0,Ue=fe.map(aA=>this.tokenizer.apply_chat_template(aA,{tokenize:!1,add_generation_prompt:!0}))}const sA=ye.add_special_tokens??!1,AA=Ke?!1:ye.return_full_text??!0;this.tokenizer.padding_side="left";const H=this.tokenizer(Ue,{add_special_tokens:sA,padding:!0,truncation:!0}),oA=await this.model.generate({...H,...ye}),fA=this.tokenizer.batch_decode(oA,{skip_special_tokens:!0});let me;!AA&&H.input_ids.dims.at(-1)>0&&(me=this.tokenizer.batch_decode(H.input_ids,{skip_special_tokens:!0}).map(aA=>aA.length));const vA=Array.from({length:fe.length},aA=>[]);for(let aA=0;aA[ye.toLowerCase(),ge])),this.entailment_id=this.label2id.entailment,this.entailment_id===void 0&&(console.warn("Could not find 'entailment' in label2id mapping. Using 2 as entailment_id."),this.entailment_id=2),this.contradiction_id=this.label2id.contradiction??this.label2id.not_entailment,this.contradiction_id===void 0&&(console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."),this.contradiction_id=0)}async _call(fe,ye,{hypothesis_template:ge="This example is {}.",multi_label:Ke=!1}={}){const Ue=Array.isArray(fe);Ue||(fe=[fe]),Array.isArray(ye)||(ye=[ye]);const sA=ye.map(oA=>ge.replace("{}",oA)),AA=Ke||ye.length===1,H=[];for(const oA of fe){const fA=[];for(const aA of sA){const kA=this.tokenizer(oA,{text_pair:aA,padding:!0,truncation:!0}),QA=await this.model(kA);AA?fA.push([QA.logits.data[this.contradiction_id],QA.logits.data[this.entailment_id]]):fA.push(QA.logits.data[this.entailment_id])}const vA=(AA?fA.map(aA=>(0,E.softmax)(aA)[1]):(0,E.softmax)(fA)).map((aA,kA)=>[aA,kA]).sort((aA,kA)=>kA[0]-aA[0]);H.push({sequence:oA,labels:vA.map(aA=>ye[aA[1]]),scores:vA.map(aA=>aA[0])})}return Ue?H:H[0]}}class T extends R{constructor(fe){super(fe)}async _call(fe,{pooling:ye="none",normalize:ge=!1,quantize:Ke=!1,precision:Ue="binary"}={}){const sA=this.tokenizer(fe,{padding:!0,truncation:!0}),AA=await this.model(sA);let H=AA.last_hidden_state??AA.logits??AA.token_embeddings;if(ye!=="none")if(ye==="mean")H=(0,D.mean_pooling)(H,sA.attention_mask);else if(ye==="cls")H=H.slice(null,0);else throw Error(`Pooling method '${ye}' not supported.`);return ge&&(H=H.normalize(2,-1)),Ke&&(H=(0,D.quantize_embeddings)(H,Ue)),H}}class O extends R{constructor(fe){super(fe)}async _call(fe,{pool:ye=null}={}){const ge=await x(fe),{pixel_values:Ke}=await this.processor(ge),Ue=await this.model({pixel_values:Ke});let sA;if(ye){if(!("pooler_output"in Ue))throw Error("No pooled output was returned. Make sure the model has a 'pooler' layer when using the 'pool' option.");sA=Ue.pooler_output}else sA=Ue.last_hidden_state??Ue.logits??Ue.image_embeds;return sA}}class Ce extends R{constructor(fe){super(fe)}async _call(fe,{top_k:ye=5}={}){const ge=this.processor.feature_extractor.config.sampling_rate,Ke=await S(fe,ge),Ue=this.model.config.id2label,sA=[];for(const AA of Ke){const H=await this.processor(AA),fA=(await this.model(H)).logits[0],me=await(0,D.topk)(new D.Tensor("float32",(0,E.softmax)(fA.data),fA.dims),ye),vA=me[0].tolist(),kA=me[1].tolist().map((QA,RA)=>({label:Ue?Ue[QA]:`LABEL_${QA}`,score:vA[RA]}));sA.push(kA)}return Array.isArray(fe)?sA:sA[0]}}class Ae extends R{constructor(fe){super(fe)}async _call(fe,ye,{hypothesis_template:ge="This is a sound of {}."}={}){const Ke=!Array.isArray(fe);Ke&&(fe=[fe]);const Ue=ye.map(fA=>ge.replace("{}",fA)),sA=this.tokenizer(Ue,{padding:!0,truncation:!0}),AA=this.processor.feature_extractor.config.sampling_rate,H=await S(fe,AA),oA=[];for(const fA of H){const me=await this.processor(fA),vA=await this.model({...sA,...me}),aA=(0,E.softmax)(vA.logits_per_audio.data);oA.push([...aA].map((kA,QA)=>({score:kA,label:ye[QA]})))}return Ke?oA[0]:oA}}class be extends R{constructor(fe){super(fe)}async _call(fe,ye={}){switch(this.model.config.model_type){case"whisper":case"lite-whisper":return this._call_whisper(fe,ye);case"wav2vec2":case"wav2vec2-bert":case"unispeech":case"unispeech-sat":case"hubert":return this._call_wav2vec2(fe,ye);case"moonshine":return this._call_moonshine(fe,ye);default:throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`)}}async _call_wav2vec2(fe,ye){ye.language&&console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'),ye.task&&console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".');const ge=!Array.isArray(fe);ge&&(fe=[fe]);const Ke=this.processor.feature_extractor.config.sampling_rate,Ue=await S(fe,Ke),sA=[];for(const AA of Ue){const H=await this.processor(AA),fA=(await this.model(H)).logits[0],me=[];for(const aA of fA)me.push((0,E.max)(aA.data)[1]);const vA=this.tokenizer.decode(me);sA.push({text:vA})}return ge?sA[0]:sA}async _call_whisper(fe,ye){const ge=ye.return_timestamps??!1,Ke=ye.chunk_length_s??0,Ue=ye.force_full_sequences??!1;let sA=ye.stride_length_s??null;const AA={...ye};ge==="word"&&(AA.return_token_timestamps=!0,AA.return_timestamps=!1);const H=!Array.isArray(fe);H&&(fe=[fe]);const oA=this.processor.feature_extractor.config.chunk_length/this.model.config.max_source_positions,fA=this.processor.feature_extractor.config.hop_length,me=this.processor.feature_extractor.config.sampling_rate,vA=await S(fe,me),aA=[];for(const kA of vA){let QA=[];if(Ke>0){if(sA===null)sA=Ke/6;else if(Ke<=sA)throw Error("`chunk_length_s` must be larger than `stride_length_s`.");const mA=me*Ke,nA=me*sA,VA=mA-2*nA;let dt=0;for(;;){const UA=dt+mA,it=kA.subarray(dt,UA),Zt=await this.processor(it),wr=dt===0,KA=UA>=kA.length;if(QA.push({stride:[it.length,wr?0:nA,KA?0:nA],input_features:Zt.input_features,is_last:KA}),KA)break;dt+=VA}}else QA=[{stride:[kA.length,0,0],input_features:(await this.processor(kA)).input_features,is_last:!0}];for(const mA of QA){AA.num_frames=Math.floor(mA.stride[0]/fA);const nA=await this.model.generate({inputs:mA.input_features,...AA});ge==="word"?(mA.tokens=nA.sequences.tolist()[0],mA.token_timestamps=nA.token_timestamps.tolist()[0].map(VA=>(0,E.round)(VA,2))):mA.tokens=nA[0].tolist(),mA.stride=mA.stride.map(VA=>VA/me)}const[RA,HA]=this.tokenizer._decode_asr(QA,{time_precision:oA,return_timestamps:ge,force_full_sequences:Ue});aA.push({text:RA,...HA})}return H?aA[0]:aA}async _call_moonshine(fe,ye){const ge=!Array.isArray(fe);ge&&(fe=[fe]);const Ke=this.processor.feature_extractor.config.sampling_rate,Ue=await S(fe,Ke),sA=[];for(const AA of Ue){const H=await this.processor(AA),oA=Math.floor(AA.length/Ke)*6,fA=await this.model.generate({max_new_tokens:oA,...ye,...H}),me=this.processor.batch_decode(fA,{skip_special_tokens:!0})[0];sA.push({text:me})}return ge?sA[0]:sA}}class he extends R{constructor(fe){super(fe)}async _call(fe,ye={}){const ge=Array.isArray(fe),Ke=await x(fe),{pixel_values:Ue}=await this.processor(Ke),sA=[];for(const AA of Ue){AA.dims=[1,...AA.dims];const H=await this.model.generate({inputs:AA,...ye}),oA=this.tokenizer.batch_decode(H,{skip_special_tokens:!0}).map(fA=>({generated_text:fA.trim()}));sA.push(oA)}return ge?sA:sA[0]}}class Ee extends R{constructor(fe){super(fe)}async _call(fe,{top_k:ye=5}={}){const ge=await x(fe),{pixel_values:Ke}=await this.processor(ge),Ue=await this.model({pixel_values:Ke}),sA=this.model.config.id2label,AA=[];for(const H of Ue.logits){const oA=await(0,D.topk)(new D.Tensor("float32",(0,E.softmax)(H.data),H.dims),ye),fA=oA[0].tolist(),vA=oA[1].tolist().map((aA,kA)=>({label:sA?sA[aA]:`LABEL_${aA}`,score:fA[kA]}));AA.push(vA)}return Array.isArray(fe)?AA:AA[0]}}class ke extends R{constructor(fe){super(fe),this.subtasks_mapping={panoptic:"post_process_panoptic_segmentation",instance:"post_process_instance_segmentation",semantic:"post_process_semantic_segmentation"}}async _call(fe,{threshold:ye=.5,mask_threshold:ge=.5,overlap_mask_area_threshold:Ke=.8,label_ids_to_fuse:Ue=null,target_sizes:sA=null,subtask:AA=null}={}){if(Array.isArray(fe)&&fe.length!==1)throw Error("Image segmentation pipeline currently only supports a batch size of 1.");const oA=await x(fe),fA=oA.map(mA=>[mA.height,mA.width]),me=await this.processor(oA),{inputNames:vA,outputNames:aA}=this.model.sessions.model;if(!vA.includes("pixel_values")){if(vA.length!==1)throw Error(`Expected a single input name, but got ${vA.length} inputs: ${vA}.`);const mA=vA[0];if(mA in me)throw Error(`Input name ${mA} already exists in the inputs.`);me[mA]=me.pixel_values}const kA=await this.model(me);let QA=null;if(AA!==null)QA=this.subtasks_mapping[AA];else if(this.processor.image_processor){for(const[mA,nA]of Object.entries(this.subtasks_mapping))if(nA in this.processor.image_processor){QA=this.processor.image_processor[nA].bind(this.processor.image_processor),AA=mA;break}}const RA=this.model.config.id2label,HA=[];if(AA)if(AA==="panoptic"||AA==="instance"){const mA=QA(kA,ye,ge,Ke,Ue,sA??fA)[0],nA=mA.segmentation;for(const VA of mA.segments_info){const dt=new Uint8ClampedArray(nA.data.length);for(let it=0;itZt<-1e-5||Zt>1+1e-5)&&UA.sigmoid_();const it=await B.RawImage.fromTensor(UA.mul_(255).to("uint8")).resize(dt[1],dt[0]);HA.push({label:null,score:null,mask:it})}}return HA}}class De extends ke{constructor(fe){super(fe)}async _call(fe,ye={}){if(Array.isArray(fe)&&fe.length!==1)throw Error("Background removal pipeline currently only supports a batch size of 1.");const Ke=await x(fe),Ue=await super._call(fe,ye);return Ke.map((AA,H)=>{const oA=AA.clone();return oA.putAlpha(Ue[H].mask),oA})}}class Re extends R{constructor(fe){super(fe)}async _call(fe,ye,{hypothesis_template:ge="This is a photo of {}"}={}){const Ke=Array.isArray(fe),Ue=await x(fe),sA=ye.map(vA=>ge.replace("{}",vA)),AA=this.tokenizer(sA,{padding:this.model.config.model_type==="siglip"?"max_length":!0,truncation:!0}),{pixel_values:H}=await this.processor(Ue),oA=await this.model({...AA,pixel_values:H}),fA=this.model.config.model_type==="siglip"?vA=>vA.sigmoid().data:vA=>(0,E.softmax)(vA.data),me=[];for(const vA of oA.logits_per_image){const kA=[...fA(vA)].map((QA,RA)=>({score:QA,label:ye[RA]}));kA.sort((QA,RA)=>RA.score-QA.score),me.push(kA)}return Ke?me:me[0]}}class Qe extends R{constructor(fe){super(fe)}async _call(fe,{threshold:ye=.9,percentage:ge=!1}={}){const Ke=Array.isArray(fe);if(Ke&&fe.length!==1)throw Error("Object detection pipeline currently only supports a batch size of 1.");const Ue=await x(fe),sA=ge?null:Ue.map(aA=>[aA.height,aA.width]),{pixel_values:AA,pixel_mask:H}=await this.processor(Ue),oA=await this.model({pixel_values:AA,pixel_mask:H}),fA=this.processor.image_processor.post_process_object_detection(oA,ye,sA),me=this.model.config.id2label,vA=fA.map(aA=>aA.boxes.map((kA,QA)=>({score:aA.scores[QA],label:me[aA.classes[QA]],box:F(kA,!ge)})));return Ke?vA:vA[0]}}class ue extends R{constructor(fe){super(fe)}async _call(fe,ye,{threshold:ge=.1,top_k:Ke=null,percentage:Ue=!1}={}){const sA=Array.isArray(fe),AA=await x(fe),H=this.tokenizer(ye,{padding:!0,truncation:!0}),oA=await this.processor(AA),fA=[];for(let me=0;me({score:HA.scores[nA],label:HA.labels[nA],box:F(mA,!Ue)}))}else{const HA=this.processor.image_processor.post_process_object_detection(QA,ge,aA,!0)[0];RA=HA.boxes.map((mA,nA)=>({score:HA.scores[nA],label:ye[HA.classes[nA]],box:F(mA,!Ue)}))}RA.sort((HA,mA)=>mA.score-HA.score),Ke!==null&&(RA=RA.slice(0,Ke)),fA.push(RA)}return sA?fA:fA[0]}}class ee extends R{constructor(fe){super(fe)}async _call(fe,ye,ge={}){const Ke=(await x(fe))[0],{pixel_values:Ue}=await this.processor(Ke),sA=`${ye}`,AA=this.tokenizer(sA,{add_special_tokens:!1,padding:!0,truncation:!0}).input_ids,H=await this.model.generate({inputs:Ue,max_length:this.model.config.decoder.max_position_embeddings,decoder_input_ids:AA,...ge}),fA=this.tokenizer.batch_decode(H)[0].match(/(.*?)<\/s_answer>/);let me=null;return fA&&fA.length>=2&&(me=fA[1].trim()),[{answer:me}]}}class de extends R{constructor(ye){super(ye);Be(this,"DEFAULT_VOCODER_ID","Xenova/speecht5_hifigan");this.vocoder=ye.vocoder??null}async _call(ye,{speaker_embeddings:ge=null}={}){return this.processor?this._call_text_to_spectrogram(ye,{speaker_embeddings:ge}):this._call_text_to_waveform(ye)}async _call_text_to_waveform(ye){const ge=this.tokenizer(ye,{padding:!0,truncation:!0}),{waveform:Ke}=await this.model(ge),Ue=this.model.config.sampling_rate;return new v.RawAudio(Ke.data,Ue)}async _call_text_to_spectrogram(ye,{speaker_embeddings:ge}){if(this.vocoder||(console.log("No vocoder specified, using default HifiGan vocoder."),this.vocoder=await p.AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID,{dtype:"fp32"})),(typeof ge=="string"||ge instanceof URL)&&(ge=new Float32Array(await(await fetch(ge)).arrayBuffer())),ge instanceof Float32Array)ge=new D.Tensor("float32",ge,[1,ge.length]);else if(!(ge instanceof D.Tensor))throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.");const{input_ids:Ke}=this.tokenizer(ye,{padding:!0,truncation:!0}),{waveform:Ue}=await this.model.generate_speech(Ke,ge,{vocoder:this.vocoder}),sA=this.processor.feature_extractor.config.sampling_rate;return new v.RawAudio(Ue.data,sA)}}class xe extends R{constructor(fe){super(fe)}async _call(fe){const ye=await x(fe),ge=await this.processor(ye),Ke=await this.model(ge),Ue=[];for(const sA of Ke.reconstruction){const AA=sA.squeeze().clamp_(0,1).mul_(255).round_().to("uint8");Ue.push(B.RawImage.fromTensor(AA))}return Ue.length>1?Ue:Ue[0]}}class Ye extends R{constructor(fe){super(fe)}async _call(fe){const ye=await x(fe),ge=await this.processor(ye),{predicted_depth:Ke}=await this.model(ge),Ue=[];for(let sA=0;sA1?Ue:Ue[0]}}const Fe=Object.freeze({"text-classification":{tokenizer:g.AutoTokenizer,pipeline:K,model:p.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-finetuned-sst-2-english"},type:"text"},"token-classification":{tokenizer:g.AutoTokenizer,pipeline:L,model:p.AutoModelForTokenClassification,default:{model:"Xenova/bert-base-multilingual-cased-ner-hrl"},type:"text"},"question-answering":{tokenizer:g.AutoTokenizer,pipeline:N,model:p.AutoModelForQuestionAnswering,default:{model:"Xenova/distilbert-base-cased-distilled-squad"},type:"text"},"fill-mask":{tokenizer:g.AutoTokenizer,pipeline:V,model:p.AutoModelForMaskedLM,default:{model:"Xenova/bert-base-uncased"},type:"text"},summarization:{tokenizer:g.AutoTokenizer,pipeline:k,model:p.AutoModelForSeq2SeqLM,default:{model:"Xenova/distilbart-cnn-6-6"},type:"text"},translation:{tokenizer:g.AutoTokenizer,pipeline:e,model:p.AutoModelForSeq2SeqLM,default:{model:"Xenova/t5-small"},type:"text"},"text2text-generation":{tokenizer:g.AutoTokenizer,pipeline:d,model:p.AutoModelForSeq2SeqLM,default:{model:"Xenova/flan-t5-small"},type:"text"},"text-generation":{tokenizer:g.AutoTokenizer,pipeline:y,model:p.AutoModelForCausalLM,default:{model:"Xenova/gpt2"},type:"text"},"zero-shot-classification":{tokenizer:g.AutoTokenizer,pipeline:$,model:p.AutoModelForSequenceClassification,default:{model:"Xenova/distilbert-base-uncased-mnli"},type:"text"},"audio-classification":{pipeline:Ce,model:p.AutoModelForAudioClassification,processor:h.AutoProcessor,default:{model:"Xenova/wav2vec2-base-superb-ks"},type:"audio"},"zero-shot-audio-classification":{tokenizer:g.AutoTokenizer,pipeline:Ae,model:p.AutoModel,processor:h.AutoProcessor,default:{model:"Xenova/clap-htsat-unfused"},type:"multimodal"},"automatic-speech-recognition":{tokenizer:g.AutoTokenizer,pipeline:be,model:[p.AutoModelForSpeechSeq2Seq,p.AutoModelForCTC],processor:h.AutoProcessor,default:{model:"Xenova/whisper-tiny.en"},type:"multimodal"},"text-to-audio":{tokenizer:g.AutoTokenizer,pipeline:de,model:[p.AutoModelForTextToWaveform,p.AutoModelForTextToSpectrogram],processor:[h.AutoProcessor,null],default:{model:"Xenova/speecht5_tts"},type:"text"},"image-to-text":{tokenizer:g.AutoTokenizer,pipeline:he,model:p.AutoModelForVision2Seq,processor:h.AutoProcessor,default:{model:"Xenova/vit-gpt2-image-captioning"},type:"multimodal"},"image-classification":{pipeline:Ee,model:p.AutoModelForImageClassification,processor:h.AutoProcessor,default:{model:"Xenova/vit-base-patch16-224"},type:"multimodal"},"image-segmentation":{pipeline:ke,model:[p.AutoModelForImageSegmentation,p.AutoModelForSemanticSegmentation,p.AutoModelForUniversalSegmentation],processor:h.AutoProcessor,default:{model:"Xenova/detr-resnet-50-panoptic"},type:"multimodal"},"background-removal":{pipeline:De,model:[p.AutoModelForImageSegmentation,p.AutoModelForSemanticSegmentation,p.AutoModelForUniversalSegmentation],processor:h.AutoProcessor,default:{model:"Xenova/modnet"},type:"image"},"zero-shot-image-classification":{tokenizer:g.AutoTokenizer,pipeline:Re,model:p.AutoModel,processor:h.AutoProcessor,default:{model:"Xenova/clip-vit-base-patch32"},type:"multimodal"},"object-detection":{pipeline:Qe,model:p.AutoModelForObjectDetection,processor:h.AutoProcessor,default:{model:"Xenova/detr-resnet-50"},type:"multimodal"},"zero-shot-object-detection":{tokenizer:g.AutoTokenizer,pipeline:ue,model:p.AutoModelForZeroShotObjectDetection,processor:h.AutoProcessor,default:{model:"Xenova/owlvit-base-patch32"},type:"multimodal"},"document-question-answering":{tokenizer:g.AutoTokenizer,pipeline:ee,model:p.AutoModelForDocumentQuestionAnswering,processor:h.AutoProcessor,default:{model:"Xenova/donut-base-finetuned-docvqa"},type:"multimodal"},"image-to-image":{pipeline:xe,model:p.AutoModelForImageToImage,processor:h.AutoProcessor,default:{model:"Xenova/swin2SR-classical-sr-x2-64"},type:"image"},"depth-estimation":{pipeline:Ye,model:p.AutoModelForDepthEstimation,processor:h.AutoProcessor,default:{model:"Xenova/dpt-large"},type:"image"},"feature-extraction":{tokenizer:g.AutoTokenizer,pipeline:T,model:p.AutoModel,default:{model:"Xenova/all-MiniLM-L6-v2"},type:"text"},"image-feature-extraction":{processor:h.AutoProcessor,pipeline:O,model:[p.AutoModelForImageFeatureExtraction,p.AutoModel],default:{model:"Xenova/vit-base-patch16-224-in21k"},type:"image"}}),qe=Object.freeze({"sentiment-analysis":"text-classification",ner:"token-classification",asr:"automatic-speech-recognition","text-to-speech":"text-to-audio",embeddings:"feature-extraction"});async function pA(Le,fe=null,{progress_callback:ye=null,config:ge=null,cache_dir:Ke=null,local_files_only:Ue=!1,revision:sA="main",device:AA=null,dtype:H=null,subfolder:oA="onnx",use_external_data_format:fA=null,model_file_name:me=null,session_options:vA={}}={}){Le=qe[Le]??Le;const aA=Fe[Le.split("_",1)[0]];if(!aA)throw Error(`Unsupported pipeline: ${Le}. Must be one of [${Object.keys(Fe)}]`);fe||(fe=aA.default.model,console.log(`No model specified. Using default model: "${fe}".`));const kA={progress_callback:ye,config:ge,cache_dir:Ke,local_files_only:Ue,revision:sA,device:AA,dtype:H,subfolder:oA,use_external_data_format:fA,model_file_name:me,session_options:vA},QA=new Map([["tokenizer",aA.tokenizer],["model",aA.model],["processor",aA.processor]]),RA=await MA(QA,fe,kA);RA.task=Le,(0,w.dispatchCallback)(ye,{status:"ready",task:Le,model:fe});const HA=aA.pipeline;return new HA(RA)}async function MA(Le,fe,ye){const ge=Object.create(null),Ke=[];for(const[Ue,sA]of Le.entries()){if(!sA)continue;let AA;Array.isArray(sA)?AA=new Promise(async(H,oA)=>{var me,vA;let fA;for(const aA of sA){if(aA===null){H(null);return}try{H(await aA.from_pretrained(fe,ye));return}catch(kA){if((me=kA.message)!=null&&me.includes("Unsupported model type"))fA=kA;else if((vA=kA.message)!=null&&vA.includes("Could not locate file"))fA=kA;else{oA(kA);return}}}oA(fA)}):AA=sA.from_pretrained(fe,ye),ge[Ue]=AA,Ke.push(AA)}await Promise.all(Ke);for(const[Ue,sA]of Object.entries(ge))ge[Ue]=await sA;return ge}},"./src/tokenizers.js":(a,n,i)=>{i.r(n),i.d(n,{AlbertTokenizer:()=>Tt,AutoTokenizer:()=>Ss,BartTokenizer:()=>bs,BertTokenizer:()=>At,BlenderbotSmallTokenizer:()=>Aa,BlenderbotTokenizer:()=>Fs,BloomTokenizer:()=>$s,CLIPTokenizer:()=>es,CamembertTokenizer:()=>Gs,CodeGenTokenizer:()=>Gr,CodeLlamaTokenizer:()=>Yr,CohereTokenizer:()=>ja,ConvBertTokenizer:()=>Ot,DebertaTokenizer:()=>LA,DebertaV2Tokenizer:()=>St,DistilBertTokenizer:()=>cr,ElectraTokenizer:()=>Cs,EsmTokenizer:()=>jA,FalconTokenizer:()=>iA,GPT2Tokenizer:()=>ds,GPTNeoXTokenizer:()=>IA,GemmaTokenizer:()=>Qs,Grok1Tokenizer:()=>Is,HerbertTokenizer:()=>Vt,LlamaTokenizer:()=>ea,M2M100Tokenizer:()=>mr,MBart50Tokenizer:()=>Ps,MBartTokenizer:()=>Ms,MPNetTokenizer:()=>Lr,MarianTokenizer:()=>ba,MgpstrTokenizer:()=>Wa,MobileBertTokenizer:()=>XA,NllbTokenizer:()=>ws,NougatTokenizer:()=>Ia,PreTrainedTokenizer:()=>je,Qwen2Tokenizer:()=>Gt,RoFormerTokenizer:()=>FA,RobertaTokenizer:()=>Ws,SiglipTokenizer:()=>La,SpeechT5Tokenizer:()=>ta,SqueezeBertTokenizer:()=>WA,T5Tokenizer:()=>qs,TokenizerModel:()=>O,VitsTokenizer:()=>Ra,Wav2Vec2CTCTokenizer:()=>_a,WhisperTokenizer:()=>SA,XLMRobertaTokenizer:()=>Ys,XLMTokenizer:()=>js,is_chinese_char:()=>V});var g=i("./src/utils/generic.js"),p=i("./src/utils/core.js"),h=i("./src/utils/hub.js"),C=i("./src/utils/maths.js"),w=i("./src/utils/tensor.js"),E=i("./src/utils/data-structures.js"),v=i("./node_modules/@huggingface/jinja/dist/index.js"),D=i("./src/models/whisper/common_whisper.js");async function B(Ne,Z){const le=await Promise.all([(0,h.getModelJSON)(Ne,"tokenizer.json",!0,Z),(0,h.getModelJSON)(Ne,"tokenizer_config.json",!0,Z)]);return Z.legacy!==null&&(le[1].legacy=Z.legacy),le}function x(Ne,Z){const le=[];let we=0;for(const Me of Ne.matchAll(Z)){const ze=Me[0];we0&&le.push(ze),we=Me.index+ze.length}return we=19968&&Ne<=40959||Ne>=13312&&Ne<=19903||Ne>=131072&&Ne<=173791||Ne>=173824&&Ne<=177983||Ne>=177984&&Ne<=178207||Ne>=178208&&Ne<=183983||Ne>=63744&&Ne<=64255||Ne>=194560&&Ne<=195103}function d(Ne,Z,le){const we=[];let Me=0;for(;Methis.tokens_to_ids.get(le)??this.unk_token_id)}convert_ids_to_tokens(Z){return Z.map(le=>this.vocab[le]??this.unk_token)}}class Ce extends O{constructor(Z){super(Z),this.tokens_to_ids=F(Z.vocab),this.unk_token_id=this.tokens_to_ids.get(Z.unk_token),this.unk_token=Z.unk_token,this.max_input_chars_per_word=Z.max_input_chars_per_word??100,this.vocab=new Array(this.tokens_to_ids.size);for(const[le,we]of this.tokens_to_ids)this.vocab[we]=le}encode(Z){const le=[];for(const we of Z){const Me=[...we];if(Me.length>this.max_input_chars_per_word){le.push(this.unk_token);continue}let ze=!1,$e=0;const hA=[];for(;$e0&&(eA=this.config.continuing_subword_prefix+eA),this.tokens_to_ids.has(eA)){wA=eA;break}--yA}if(wA===null){ze=!0;break}hA.push(wA),$e=yA}ze?le.push(this.unk_token):le.push(...hA)}return le}}class Ae extends O{constructor(Z,le){super(Z);const we=Z.vocab.length;this.vocab=new Array(we),this.scores=new Array(we);for(let Me=0;Me[Me,ze])),this.bos_token=" ",this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=le.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.unk_token=this.vocab[this.unk_token_id],this.minScore=(0,C.min)(this.scores)[0],this.unk_score=this.minScore-10,this.scores[this.unk_token_id]=this.unk_score,this.trie=new E.CharTrie,this.trie.extend(this.vocab),this.fuse_unk=!0}populateNodes(Z){const le=Z.chars,we=1;let Me=0;for(;Me{const Ne=[...Array.from({length:94},(Me,ze)=>ze+33),...Array.from({length:12},(Me,ze)=>ze+161),...Array.from({length:82},(Me,ze)=>ze+174)],Z=Ne.slice();let le=0;for(let Me=0;Me<256;++Me)Ne.includes(Me)||(Ne.push(Me),Z.push(256+le),le+=1);const we=Z.map(Me=>String.fromCharCode(Me));return Object.fromEntries(Ne.map((Me,ze)=>[Me,we[ze]]))})(),he=(0,p.reverseDictionary)(be);class Ee extends O{constructor(Z){super(Z),this.tokens_to_ids=F(Z.vocab),this.unk_token_id=this.tokens_to_ids.get(Z.unk_token),this.unk_token=Z.unk_token,this.vocab=new Array(this.tokens_to_ids.size);for(const[we,Me]of this.tokens_to_ids)this.vocab[Me]=we;const le=Array.isArray(Z.merges[0]);this.merges=le?Z.merges:Z.merges.map(we=>we.split(" ",2)),this.bpe_ranks=new Map(this.merges.map((we,Me)=>[JSON.stringify(we),Me])),this.end_of_word_suffix=Z.end_of_word_suffix,this.continuing_subword_suffix=Z.continuing_subword_suffix??null,this.byte_fallback=this.config.byte_fallback??!1,this.byte_fallback&&(this.text_encoder=new TextEncoder),this.ignore_merges=this.config.ignore_merges??!1,this.max_length_to_cache=256,this.cache_capacity=1e4,this.cache=new E.LRUCache(this.cache_capacity)}clear_cache(){this.cache.clear()}bpe(Z){if(Z.length===0)return[];const le=this.cache.get(Z);if(le!==void 0)return le;const we=Array.from(Z);this.end_of_word_suffix&&(we[we.length-1]+=this.end_of_word_suffix);let Me=[];if(we.length>1){const ze=new E.PriorityQueue((yA,wA)=>yA.score`<0x${hA.toString(16).toUpperCase().padStart(2,"0")}>`);$e.every(hA=>this.tokens_to_ids.has(hA))?le.push(...$e):le.push(this.unk_token)}else le.push(this.unk_token)}return le}}class ke extends O{constructor(Z,le){super(Z),this.tokens_to_ids=F(le.target_lang?Z.vocab[le.target_lang]:Z.vocab),this.bos_token=le.bos_token,this.bos_token_id=this.tokens_to_ids.get(this.bos_token),this.eos_token=le.eos_token,this.eos_token_id=this.tokens_to_ids.get(this.eos_token),this.pad_token=le.pad_token,this.pad_token_id=this.tokens_to_ids.get(this.pad_token),this.unk_token=le.unk_token,this.unk_token_id=this.tokens_to_ids.get(this.unk_token),this.vocab=new Array(this.tokens_to_ids.size);for(const[we,Me]of this.tokens_to_ids)this.vocab[Me]=we}encode(Z){return Z}}class De extends g.Callable{constructor(Z){super(),this.config=Z}static fromConfig(Z){if(Z===null)return null;switch(Z.type){case"BertNormalizer":return new Le(Z);case"Precompiled":return new KA(Z);case"Sequence":return new MA(Z);case"Replace":return new Re(Z);case"NFC":return new ue(Z);case"NFD":return new ee(Z);case"NFKC":return new de(Z);case"NFKD":return new xe(Z);case"Strip":return new Ye(Z);case"StripAccents":return new Fe(Z);case"Lowercase":return new qe(Z);case"Prepend":return new pA(Z);default:throw new Error(`Unknown Normalizer type: ${Z.type}`)}}normalize(Z){throw Error("normalize should be implemented in subclass.")}_call(Z){return this.normalize(Z)}}class Re extends De{normalize(Z){const le=S(this.config.pattern);return le===null?Z:Z.replaceAll(le,this.config.content)}}class Qe extends De{constructor(){super(...arguments);Be(this,"form")}normalize(le){return le=le.normalize(this.form),le}}class ue extends Qe{constructor(){super(...arguments);Be(this,"form","NFC")}}class ee extends Qe{constructor(){super(...arguments);Be(this,"form","NFD")}}class de extends Qe{constructor(){super(...arguments);Be(this,"form","NFKC")}}class xe extends Qe{constructor(){super(...arguments);Be(this,"form","NFKD")}}class Ye extends De{normalize(Z){return this.config.strip_left&&this.config.strip_right?Z=Z.trim():(this.config.strip_left&&(Z=Z.trimStart()),this.config.strip_right&&(Z=Z.trimEnd())),Z}}class Fe extends De{normalize(Z){return Z=L(Z),Z}}class qe extends De{normalize(Z){return Z=Z.toLowerCase(),Z}}class pA extends De{normalize(Z){return Z=this.config.prepend+Z,Z}}class MA extends De{constructor(Z){super(Z),this.normalizers=Z.normalizers.map(le=>De.fromConfig(le))}normalize(Z){return this.normalizers.reduce((le,we)=>we.normalize(le),Z)}}class Le extends De{_tokenize_chinese_chars(Z){const le=[];for(let we=0;wethis.pre_tokenize_text(we,le)):this.pre_tokenize_text(Z,le)).flat()}_call(Z,le){return this.pre_tokenize(Z,le)}}class ye extends fe{constructor(Z){super(),this.pattern=new RegExp(`[^\\s${e}]+|[${e}]`,"gu")}pre_tokenize_text(Z,le){return Z.trim().match(this.pattern)||[]}}class ge extends fe{constructor(Z){super(),this.config=Z,this.add_prefix_space=this.config.add_prefix_space,this.trim_offsets=this.config.trim_offsets,this.use_regex=this.config.use_regex??!0,this.pattern=new RegExp("'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+","gu"),this.byte_encoder=be,this.text_encoder=new TextEncoder}pre_tokenize_text(Z,le){return this.add_prefix_space&&!Z.startsWith(" ")&&(Z=" "+Z),(this.use_regex?Z.match(this.pattern)||[]:[Z]).map(Me=>Array.from(this.text_encoder.encode(Me),ze=>this.byte_encoder[ze]).join(""))}}class Ke extends fe{constructor(Z){super(),this.config=Z,this.pattern=S(this.config.pattern,this.config.invert)}pre_tokenize_text(Z,le){var we;return this.pattern===null?[]:this.config.invert?Z.match(this.pattern)||[]:((we=this.config.behavior)==null?void 0:we.toLowerCase())==="removed"?Z.split(this.pattern).filter(Me=>Me):x(Z,this.pattern)}}class Ue extends fe{constructor(Z){super(),this.config=Z,this.pattern=new RegExp(`[^${e}]+|[${e}]+`,"gu")}pre_tokenize_text(Z,le){return Z.match(this.pattern)||[]}}class sA extends fe{constructor(Z){super(),this.config=Z;const le=`[^\\d]+|\\d${this.config.individual_digits?"":"+"}`;this.pattern=new RegExp(le,"gu")}pre_tokenize_text(Z,le){return Z.match(this.pattern)||[]}}class AA extends g.Callable{constructor(Z){super(),this.config=Z}static fromConfig(Z){if(Z===null)return null;switch(Z.type){case"TemplateProcessing":return new fA(Z);case"ByteLevel":return new me(Z);case"RobertaProcessing":return new oA(Z);case"BertProcessing":return new H(Z);case"Sequence":return new vA(Z);default:throw new Error(`Unknown PostProcessor type: ${Z.type}`)}}post_process(Z,...le){throw Error("post_process should be implemented in subclass.")}_call(Z,...le){return this.post_process(Z,...le)}}class H extends AA{constructor(Z){super(Z),this.cls=Z.cls[0],this.sep=Z.sep[0]}post_process(Z,le=null,{add_special_tokens:we=!0}={}){we&&(Z=(0,p.mergeArrays)([this.cls],Z,[this.sep]));let Me=new Array(Z.length).fill(0);if(le!==null){const ze=we&&this instanceof oA?[this.sep]:[],$e=we?[this.sep]:[];Z=(0,p.mergeArrays)(Z,ze,le,$e),Me=(0,p.mergeArrays)(Me,new Array(le.length+ze.length+$e.length).fill(1))}return{tokens:Z,token_type_ids:Me}}}class oA extends H{}class fA extends AA{constructor(Z){super(Z),this.single=Z.single,this.pair=Z.pair}post_process(Z,le=null,{add_special_tokens:we=!0}={}){const Me=le===null?this.single:this.pair;let ze=[],$e=[];for(const hA of Me)"SpecialToken"in hA?we&&(ze.push(hA.SpecialToken.id),$e.push(hA.SpecialToken.type_id)):"Sequence"in hA&&(hA.Sequence.id==="A"?(ze=(0,p.mergeArrays)(ze,Z),$e=(0,p.mergeArrays)($e,new Array(Z.length).fill(hA.Sequence.type_id))):hA.Sequence.id==="B"&&(ze=(0,p.mergeArrays)(ze,le),$e=(0,p.mergeArrays)($e,new Array(le.length).fill(hA.Sequence.type_id))));return{tokens:ze,token_type_ids:$e}}}class me extends AA{post_process(Z,le=null){return le&&(Z=(0,p.mergeArrays)(Z,le)),{tokens:Z}}}class vA extends AA{constructor(Z){super(Z),this.processors=Z.processors.map(le=>AA.fromConfig(le))}post_process(Z,le=null,we={}){let Me;for(const ze of this.processors)if(ze instanceof me)Z=ze.post_process(Z).tokens,le&&(le=ze.post_process(le).tokens);else{const $e=ze.post_process(Z,le,we);Z=$e.tokens,Me=$e.token_type_ids}return{tokens:Z,token_type_ids:Me}}}class aA extends g.Callable{constructor(Z){super(),this.config=Z,this.added_tokens=[],this.end_of_word_suffix=null,this.trim_offsets=Z.trim_offsets}static fromConfig(Z){if(Z===null)return null;switch(Z.type){case"WordPiece":return new mA(Z);case"Metaspace":return new wr(Z);case"ByteLevel":return new nA(Z);case"Replace":return new kA(Z);case"ByteFallback":return new QA(Z);case"Fuse":return new RA(Z);case"Strip":return new HA(Z);case"Sequence":return new dt(Z);case"CTC":return new VA(Z);case"BPEDecoder":return new UA(Z);default:throw new Error(`Unknown Decoder type: ${Z.type}`)}}_call(Z){return this.decode(Z)}decode(Z){return this.decode_chain(Z).join("")}decode_chain(Z){throw Error("`decode_chain` should be implemented in subclass.")}}class kA extends aA{decode_chain(Z){const le=S(this.config.pattern);return le===null?Z:Z.map(we=>we.replaceAll(le,this.config.content))}}class QA extends aA{constructor(Z){super(Z),this.text_decoder=new TextDecoder}decode_chain(Z){const le=[];let we=[];for(const Me of Z){let ze=null;if(Me.length===6&&Me.startsWith("<0x")&&Me.endsWith(">")){const $e=parseInt(Me.slice(3,5),16);isNaN($e)||(ze=$e)}if(ze!==null)we.push(ze);else{if(we.length>0){const $e=this.text_decoder.decode(Uint8Array.from(we));le.push($e),we=[]}le.push(Me)}}if(we.length>0){const Me=this.text_decoder.decode(Uint8Array.from(we));le.push(Me),we=[]}return le}}class RA extends aA{decode_chain(Z){return[Z.join("")]}}class HA extends aA{constructor(Z){super(Z),this.content=this.config.content,this.start=this.config.start,this.stop=this.config.stop}decode_chain(Z){return Z.map(le=>{let we=0;for(let ze=0;ze(we!==0&&(le.startsWith(this.config.prefix)?le=le.replace(this.config.prefix,""):le=" "+le),this.cleanup&&(le=K(le)),le))}}class nA extends aA{constructor(Z){super(Z),this.byte_decoder=he,this.text_decoder=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0}),this.end_of_word_suffix=null}convert_tokens_to_string(Z){const le=Z.join(""),we=new Uint8Array([...le].map(ze=>this.byte_decoder[ze]));return this.text_decoder.decode(we)}decode_chain(Z){const le=[];let we=[];for(const Me of Z)this.added_tokens.find(ze=>ze.content===Me)!==void 0?(we.length>0&&(le.push(this.convert_tokens_to_string(we)),we=[]),le.push(Me)):we.push(Me);return we.length>0&&le.push(this.convert_tokens_to_string(we)),le}}class VA extends aA{constructor(Z){super(Z),this.pad_token=this.config.pad_token,this.word_delimiter_token=this.config.word_delimiter_token,this.cleanup=this.config.cleanup}convert_tokens_to_string(Z){if(Z.length===0)return"";const le=[Z[0]];for(let ze=1;zeze!==this.pad_token).join("");return this.cleanup&&(Me=K(Me).replaceAll(this.word_delimiter_token," ").trim()),Me}decode_chain(Z){return[this.convert_tokens_to_string(Z)]}}class dt extends aA{constructor(Z){super(Z),this.decoders=Z.decoders.map(le=>aA.fromConfig(le))}decode_chain(Z){return this.decoders.reduce((le,we)=>we.decode_chain(le),Z)}}class UA extends aA{constructor(Z){super(Z),this.suffix=this.config.suffix}decode_chain(Z){return Z.map((le,we)=>le.replaceAll(this.suffix,we===Z.length-1?"":" "))}}class it extends aA{decode_chain(Z){let le="";for(let we=1;wewe.normalize("NFKC")).join("~"):Z=Z.normalize("NFKC"),Z}}class Ts extends fe{constructor(Z){super(),this.tokenizers=Z.pretokenizers.map(le=>fe.fromConfig(le))}pre_tokenize_text(Z,le){return this.tokenizers.reduce((we,Me)=>Me.pre_tokenize(we,le),[Z])}}class se extends fe{constructor(Z){super()}pre_tokenize_text(Z,le){return Z.match(/\w+|[^\w\s]+/g)||[]}}class Te extends fe{constructor(Z){super()}pre_tokenize_text(Z,le){return k(Z)}}class ne extends fe{constructor(Z){super(),this.config=Z,this.pattern=S(this.config.pattern),this.content=this.config.content}pre_tokenize_text(Z,le){return this.pattern===null?[Z]:[Z.replaceAll(this.pattern,this.config.content)]}}const ve=["bos_token","eos_token","unk_token","sep_token","pad_token","cls_token","mask_token"];function _e(Ne,Z,le,we){for(const Me of Object.keys(Ne)){const ze=Z-Ne[Me].length,$e=le(Me),hA=new Array(ze).fill($e);Ne[Me]=we==="right"?(0,p.mergeArrays)(Ne[Me],hA):(0,p.mergeArrays)(hA,Ne[Me])}}function lA(Ne,Z){for(const le of Object.keys(Ne))Ne[le].length=Z}class je extends g.Callable{constructor(le,we){super();Be(this,"return_token_type_ids",!1);Be(this,"padding_side","right");this._tokenizer_config=we,this.normalizer=De.fromConfig(le.normalizer),this.pre_tokenizer=fe.fromConfig(le.pre_tokenizer),this.model=O.fromConfig(le.model,we),this.post_processor=AA.fromConfig(le.post_processor),this.decoder=aA.fromConfig(le.decoder),this.special_tokens=[],this.all_special_ids=[],this.added_tokens=[];for(const Me of le.added_tokens){const ze=new T(Me);this.added_tokens.push(ze),this.model.tokens_to_ids.set(ze.content,ze.id),this.model.vocab[ze.id]=ze.content,ze.special&&(this.special_tokens.push(ze.content),this.all_special_ids.push(ze.id))}if(this.additional_special_tokens=we.additional_special_tokens??[],this.special_tokens.push(...this.additional_special_tokens),this.special_tokens=[...new Set(this.special_tokens)],this.decoder&&(this.decoder.added_tokens=this.added_tokens,this.decoder.end_of_word_suffix=this.model.end_of_word_suffix),this.added_tokens_splitter=new E.DictionarySplitter(this.added_tokens.map(Me=>Me.content)),this.added_tokens_map=new Map(this.added_tokens.map(Me=>[Me.content,Me])),this.mask_token=this.getToken("mask_token"),this.mask_token_id=this.model.tokens_to_ids.get(this.mask_token),this.pad_token=this.getToken("pad_token","eos_token"),this.pad_token_id=this.model.tokens_to_ids.get(this.pad_token),this.sep_token=this.getToken("sep_token"),this.sep_token_id=this.model.tokens_to_ids.get(this.sep_token),this.unk_token=this.getToken("unk_token"),this.unk_token_id=this.model.tokens_to_ids.get(this.unk_token),this.bos_token=this.getToken("bos_token"),this.bos_token_id=this.model.tokens_to_ids.get(this.bos_token),this.eos_token=this.getToken("eos_token"),this.eos_token_id=this.model.tokens_to_ids.get(this.eos_token),this.model_max_length=we.model_max_length,this.remove_space=we.remove_space,this.clean_up_tokenization_spaces=we.clean_up_tokenization_spaces??!0,this.do_lowercase_and_remove_accent=we.do_lowercase_and_remove_accent??!1,we.padding_side&&(this.padding_side=we.padding_side),this.legacy=!1,this.chat_template=we.chat_template??null,Array.isArray(this.chat_template)){const Me=Object.create(null);for(const{name:ze,template:$e}of this.chat_template){if(typeof ze!="string"||typeof $e!="string")throw new Error('Chat template must be a list of objects with "name" and "template" properties');Me[ze]=$e}this.chat_template=Me}this._compiled_template_cache=new Map}getToken(...le){for(const we of le){const Me=this._tokenizer_config[we];if(Me)if(typeof Me=="object"){if(Me.__type==="AddedToken")return Me.content;throw Error(`Unknown token: ${Me}`)}else return Me}return null}static async from_pretrained(le,{progress_callback:we=null,config:Me=null,cache_dir:ze=null,local_files_only:$e=!1,revision:hA="main",legacy:yA=null}={}){const wA=await B(le,{progress_callback:we,config:Me,cache_dir:ze,local_files_only:$e,revision:hA,legacy:yA});return new this(...wA)}_call(le,{text_pair:we=null,add_special_tokens:Me=!0,padding:ze=!1,truncation:$e=null,max_length:hA=null,return_tensor:yA=!0,return_token_type_ids:wA=null}={}){const eA=Array.isArray(le);let nt;if(eA){if(le.length===0)throw Error("text array must be non-empty");if(we!==null){if(Array.isArray(we)){if(le.length!==we.length)throw Error("text and text_pair must have the same length")}else throw Error("text_pair must also be an array");nt=le.map((vt,nr)=>this._encode_plus(vt,{text_pair:we[nr],add_special_tokens:Me,return_token_type_ids:wA}))}else nt=le.map(vt=>this._encode_plus(vt,{add_special_tokens:Me,return_token_type_ids:wA}))}else{if(le==null)throw Error("text may not be null or undefined");if(Array.isArray(we))throw Error("When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).");nt=[this._encode_plus(le,{text_pair:we,add_special_tokens:Me,return_token_type_ids:wA})]}if(hA===null?hA=this.model_max_length:$e===null&&(ze===!0?(console.warn("`max_length` is ignored when `padding: true` and there is no truncation strategy. To pad to max length, use `padding: 'max_length'`."),hA=this.model_max_length):ze===!1&&(console.warn("Truncation was not explicitly activated but `max_length` is provided a specific value, please use `truncation: true` to explicitly truncate examples to max length."),$e=!0)),ze===!0&&(hA=Math.min((0,C.max)(nt.map(vt=>vt.input_ids.length))[0],hA??1/0)),hA=Math.min(hA,this.model_max_length??1/0),ze||$e)for(let vt=0;vthA?$e&&lA(nt[vt],hA):ze&&_e(nt[vt],hA,nr=>nr==="input_ids"?this.pad_token_id:0,this.padding_side));const Bt={};if(yA){if(!(ze&&$e)&&nt.some(nr=>{var Lt;for(const Pr of Object.keys(nr))if(nr[Pr].length!==((Lt=nt[0][Pr])==null?void 0:Lt.length))return!0;return!1}))throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=true' and 'truncation=true' to have batched tensors with the same length.");const vt=[nt.length,nt[0].input_ids.length];for(const nr of Object.keys(nt[0]))Bt[nr]=new w.Tensor("int64",BigInt64Array.from(nt.flatMap(Lt=>Lt[nr]).map(BigInt)),vt)}else{for(const vt of Object.keys(nt[0]))Bt[vt]=nt.map(nr=>nr[vt]);if(!eA)for(const vt of Object.keys(Bt))Bt[vt]=Bt[vt][0]}return Bt}_encode_text(le){if(le===null)return null;const we=this.added_tokens_splitter.split(le);for(let ze=0;ze0&&(we[ze-1]=we[ze-1].trimEnd()),$e.rstrip&&ze{if(ze.length===0)return[];if(this.added_tokens_map.has(ze))return[ze];if(this.remove_space===!0&&(ze=ze.trim().split(/\s+/).join(" ")),this.do_lowercase_and_remove_accent&&(ze=N(ze)),this.normalizer!==null&&(ze=this.normalizer(ze)),ze.length===0)return[];const hA=this.pre_tokenizer!==null?this.pre_tokenizer(ze,{section_index:$e}):[ze];return this.model(hA)})}_encode_plus(le,{text_pair:we=null,add_special_tokens:Me=!0,return_token_type_ids:ze=null}={}){const{tokens:$e,token_type_ids:hA}=this._tokenize_helper(le,{pair:we,add_special_tokens:Me}),yA=this.model.convert_tokens_to_ids($e),wA={input_ids:yA,attention_mask:new Array(yA.length).fill(1)};return(ze??this.return_token_type_ids)&&hA&&(wA.token_type_ids=hA),wA}_tokenize_helper(le,{pair:we=null,add_special_tokens:Me=!1}={}){const ze=this._encode_text(le),$e=this._encode_text(we);return this.post_processor?this.post_processor(ze,$e,{add_special_tokens:Me}):{tokens:(0,p.mergeArrays)(ze??[],$e??[])}}tokenize(le,{pair:we=null,add_special_tokens:Me=!1}={}){return this._tokenize_helper(le,{pair:we,add_special_tokens:Me}).tokens}encode(le,{text_pair:we=null,add_special_tokens:Me=!0,return_token_type_ids:ze=null}={}){return this._encode_plus(le,{text_pair:we,add_special_tokens:Me,return_token_type_ids:ze}).input_ids}batch_decode(le,we={}){return le instanceof w.Tensor&&(le=le.tolist()),le.map(Me=>this.decode(Me,we))}decode(le,we={}){if(le instanceof w.Tensor&&(le=R(le)),!Array.isArray(le)||le.length===0||!(0,p.isIntegralNumber)(le[0]))throw Error("token_ids must be a non-empty array of integers.");return this.decode_single(le,we)}decode_single(le,{skip_special_tokens:we=!1,clean_up_tokenization_spaces:Me=null}){let ze=this.model.convert_ids_to_tokens(le);we&&(ze=ze.filter(hA=>!this.special_tokens.includes(hA)));let $e=this.decoder?this.decoder(ze):ze.join(" ");return this.decoder&&this.decoder.end_of_word_suffix&&($e=$e.replaceAll(this.decoder.end_of_word_suffix," "),we&&($e=$e.trim())),(Me??this.clean_up_tokenization_spaces)&&($e=K($e)),$e}get_chat_template({chat_template:le=null,tools:we=null}={}){if(this.chat_template&&typeof this.chat_template=="object"){const Me=this.chat_template;if(le!==null&&Object.hasOwn(Me,le))le=Me[le];else if(le===null)if(we!==null&&"tool_use"in Me)le=Me.tool_use;else if("default"in Me)le=Me.default;else throw Error(`This model has multiple chat templates with no default specified! Please either pass a chat template or the name of the template you wish to use to the 'chat_template' argument. Available template names are ${Object.keys(Me).sort()}.`)}else if(le===null)if(this.chat_template)le=this.chat_template;else throw Error("Cannot use apply_chat_template() because tokenizer.chat_template is not set and no template argument was passed! For information about writing templates and setting the tokenizer.chat_template attribute, please see the documentation at https://huggingface.co/docs/transformers/main/en/chat_templating");return le}apply_chat_template(le,{tools:we=null,documents:Me=null,chat_template:ze=null,add_generation_prompt:$e=!1,tokenize:hA=!0,padding:yA=!1,truncation:wA=!1,max_length:eA=null,return_tensor:nt=!0,return_dict:Bt=!1,tokenizer_kwargs:vt={},...nr}={}){if(ze=this.get_chat_template({chat_template:ze,tools:we}),typeof ze!="string")throw Error(`chat_template must be a string, but got ${typeof ze}`);let Lt=this._compiled_template_cache.get(ze);Lt===void 0&&(Lt=new v.Template(ze),this._compiled_template_cache.set(ze,Lt));const Pr=Object.create(null);for(const hr of ve){const dr=this.getToken(hr);dr&&(Pr[hr]=dr)}const qt=Lt.render({messages:le,add_generation_prompt:$e,tools:we,documents:Me,...Pr,...nr});if(hA){const hr=this._call(qt,{add_special_tokens:!1,padding:yA,truncation:wA,max_length:eA,return_tensor:nt,...vt});return Bt?hr:hr.input_ids}return qt}}class At extends je{constructor(){super(...arguments);Be(this,"return_token_type_ids",!0)}}class Tt extends je{constructor(){super(...arguments);Be(this,"return_token_type_ids",!0)}}class XA extends je{constructor(){super(...arguments);Be(this,"return_token_type_ids",!0)}}class WA extends je{constructor(){super(...arguments);Be(this,"return_token_type_ids",!0)}}class LA extends je{constructor(){super(...arguments);Be(this,"return_token_type_ids",!0)}}class St extends je{constructor(){super(...arguments);Be(this,"return_token_type_ids",!0)}}class Vt extends je{constructor(){super(...arguments);Be(this,"return_token_type_ids",!0)}}class Ot extends je{constructor(){super(...arguments);Be(this,"return_token_type_ids",!0)}}class FA extends je{constructor(){super(...arguments);Be(this,"return_token_type_ids",!0)}}class cr extends je{}class Gs extends je{}class js extends je{constructor(le,we){super(le,we);Be(this,"return_token_type_ids",!0);console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}}class Cs extends je{constructor(){super(...arguments);Be(this,"return_token_type_ids",!0)}}class qs extends je{}class ds extends je{}class bs extends je{}class Ms extends je{constructor(Z,le){super(Z,le),this.languageRegex=/^[a-z]{2}_[A-Z]{2}$/,this.language_codes=this.special_tokens.filter(we=>this.languageRegex.test(we)),this.lang_to_token=we=>we}_build_translation_inputs(Z,le,we){return vr(this,Z,le,we)}}class Ps extends Ms{}class Ws extends je{}class $s extends je{}const Ut="▁";class ea extends je{constructor(le,we){super(le,we);Be(this,"padding_side","left");this.legacy=we.legacy??!0,this.legacy||(this.normalizer=null,this.pre_tokenizer=new Zt({replacement:Ut,add_prefix_space:!0,prepend_scheme:"first"}))}_encode_text(le){if(le===null)return null;if(this.legacy||le.length===0)return super._encode_text(le);let we=super._encode_text(Ut+le.replaceAll(Ut," "));return we.length>1&&we[0]===Ut&&this.special_tokens.includes(we[1])&&(we=we.slice(1)),we}}class Yr extends je{}class Ys extends je{}class Lr extends je{}class iA extends je{}class IA extends je{}class jA extends je{}class Gt extends je{}class Qs extends je{}class Is extends je{}function vr(Ne,Z,le,we){if(!("language_codes"in Ne)||!Array.isArray(Ne.language_codes))throw new Error("Tokenizer must have `language_codes` attribute set and it should be an array of language ids.");if(!("languageRegex"in Ne)||!(Ne.languageRegex instanceof RegExp))throw new Error("Tokenizer must have `languageRegex` attribute set and it should be a regular expression.");if(!("lang_to_token"in Ne)||typeof Ne.lang_to_token!="function")throw new Error("Tokenizer must have `lang_to_token` attribute set and it should be a function.");const Me=we.src_lang,ze=we.tgt_lang;if(!Ne.language_codes.includes(ze))throw new Error(`Target language code "${ze}" is not valid. Must be one of: {${Ne.language_codes.join(", ")}}`);if(Me!==void 0){if(!Ne.language_codes.includes(Me))throw new Error(`Source language code "${Me}" is not valid. Must be one of: {${Ne.language_codes.join(", ")}}`);for(const $e of Ne.post_processor.config.single)if("SpecialToken"in $e&&Ne.languageRegex.test($e.SpecialToken.id)){$e.SpecialToken.id=Ne.lang_to_token(Me);break}}return we.forced_bos_token_id=Ne.model.convert_tokens_to_ids([Ne.lang_to_token(ze)])[0],Ne._call(Z,le)}class ws extends je{constructor(Z,le){super(Z,le),this.languageRegex=/^[a-z]{3}_[A-Z][a-z]{3}$/,this.language_codes=this.special_tokens.filter(we=>this.languageRegex.test(we)),this.lang_to_token=we=>we}_build_translation_inputs(Z,le,we){return vr(this,Z,le,we)}}class mr extends je{constructor(Z,le){super(Z,le),this.languageRegex=/^__[a-z]{2,3}__$/,this.language_codes=this.special_tokens.filter(we=>this.languageRegex.test(we)).map(we=>we.slice(2,-2)),this.lang_to_token=we=>`__${we}__`}_build_translation_inputs(Z,le,we){return vr(this,Z,le,we)}}class SA extends je{get timestamp_begin(){return this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0]+1}_decode_asr(Z,{return_timestamps:le=!1,return_language:we=!1,time_precision:Me=null,force_full_sequences:ze=!0}={}){if(Me===null)throw Error("Must specify time_precision");let $e=null;const hA=le==="word";function yA(){return{language:$e,timestamp:[null,null],text:""}}const wA=[];let eA=yA(),nt=0;const Bt=this.timestamp_begin,nr=Bt+1500;let Lt=[],Pr=[],qt=!1,hr=null;const dr=new Set(this.all_special_ids);for(const jt of Z){const kr=jt.tokens,Qr=hA?jt.token_timestamps:null;let _t=null,fr=Bt;if("stride"in jt){const[yr,er,Cr]=jt.stride;if(nt-=er,hr=yr-Cr,er&&(fr=er/Me+Bt),Cr)for(let zA=kr.length-1;zA>=0;--zA){const Pt=Number(kr[zA]);if(Pt>=Bt){if(_t!==null&&(Pt-Bt)*Me=Bt&&er<=nr){const Cr=(er-Bt)*Me+nt,zA=(0,C.round)(Cr,2);if(_t!==null&&er>=_t)qt=!0;else if(qt||Lt.length>0&&er0?(Lt.push(Kr),hA&&Pr.push(xr)):Lt.every(yr=>yr.length===0)&&(eA=yA(),Lt=[],Kr=[],Pr=[],xr=[])}if(Lt.length>0){if(ze&&le)throw new Error("Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. Also make sure WhisperTimeStampLogitsProcessor was used during generation.");const[jt,kr]=this.findLongestCommonSequence(Lt,Pr),Qr=this.decode(jt);eA.text=Qr,hA&&(eA.words=this.collateWordTimestamps(jt,kr,$e)),wA.push(eA)}let $t=Object.create(null);const Hr=wA.map(jt=>jt.text).join("");if(le||we){for(let jt=0;jt0;let hA=$e?[]:null,yA=$e?le[0]:null;for(let wA=1;wAer===fr[Cr]&&yA[Hr+Cr]<=le[wA][Qr+Cr]).length:Kr=kr.filter((er,Cr)=>er===fr[Cr]).length;const xr=$t/1e4,yr=Kr/$t+xr;Kr>1&&yr>nt&&(nt=yr,Bt=[Hr,jt,Qr,_t])}const[nr,Lt,Pr,qt]=Bt,hr=Math.floor((Lt+nr)/2),dr=Math.floor((qt+Pr)/2);ze.push(...we.slice(0,hr)),we=eA.slice(dr),Me=we.length,$e&&(hA.push(...yA.slice(0,hr)),yA=le[wA].slice(dr))}return ze.push(...we),$e?(hA.push(...yA),[ze,hA]):[ze,[]]}collateWordTimestamps(Z,le,we){const[Me,ze,$e]=this.combineTokensIntoWords(Z,we),hA=[];for(let yA=0;yA=Me){const hA=(($e-Me)*we).toFixed(2);ze.push(`<|${hA}|>`),ze.push([])}else ze[ze.length-1].push($e);return ze=ze.map($e=>typeof $e=="string"?$e:super.decode($e,le)),ze.join("")}splitTokensOnUnicode(Z){const le=this.decode(Z,{decode_with_timestamps:!0}),we="�",Me=[],ze=[],$e=[];let hA=[],yA=[],wA=0;for(let eA=0;eA=this.model.tokens_to_ids.get("<|endoftext|>"),nr=eA.startsWith(" "),Lt=eA.trim(),Pr=yA.test(Lt);if(vt||nr||Pr||ze.length===0)ze.push(eA),$e.push(nt),hA.push(Bt);else{const qt=ze.length-1;ze[qt]+=eA,$e[qt].push(...nt),hA[qt].push(...Bt)}}return[ze,$e,hA]}mergePunctuations(Z,le,we,Me,ze){const $e=structuredClone(Z),hA=structuredClone(le),yA=structuredClone(we);let wA=$e.length-2,eA=$e.length-1;for(;wA>=0;)$e[wA].startsWith(" ")&&Me.includes($e[wA].trim())?($e[eA]=$e[wA]+$e[eA],hA[eA]=(0,p.mergeArrays)(hA[wA],hA[eA]),yA[eA]=(0,p.mergeArrays)(yA[wA],yA[eA]),$e[wA]="",hA[wA]=[],yA[wA]=[]):eA=wA,--wA;for(wA=0,eA=1;eA<$e.length;)!$e[wA].endsWith(" ")&&ze.includes($e[eA])?($e[wA]+=$e[eA],hA[wA]=(0,p.mergeArrays)(hA[wA],hA[eA]),yA[wA]=(0,p.mergeArrays)(yA[wA],yA[eA]),$e[eA]="",hA[eA]=[],yA[eA]=[]):wA=eA,++eA;return[$e.filter(nt=>nt),hA.filter(nt=>nt.length>0),yA.filter(nt=>nt.length>0)]}}class Gr extends je{}class es extends je{}class La extends je{}class ba extends je{constructor(Z,le){super(Z,le),this.languageRegex=/^(>>\w+<<)\s*/g,this.supported_language_codes=this.model.vocab.filter(we=>this.languageRegex.test(we)),console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.')}_encode_text(Z){if(Z===null)return null;const[le,...we]=Z.trim().split(this.languageRegex);if(we.length===0)return super._encode_text(le);if(we.length===2){const[Me,ze]=we;return this.supported_language_codes.includes(Me)||console.warn(`Unsupported language code "${Me}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`),(0,p.mergeArrays)([Me],super._encode_text(ze))}}}class _a extends je{}class Fs extends je{}class Aa extends je{}class ta extends je{}class Ia extends je{}class Ra extends je{constructor(Z,le){super(Z,le),this.decoder=new it({})}}class ja extends je{}class Wa extends je{}class Ss{static async from_pretrained(Z,{progress_callback:le=null,config:we=null,cache_dir:Me=null,local_files_only:ze=!1,revision:$e="main",legacy:hA=null}={}){var Bt;const[yA,wA]=await B(Z,{progress_callback:le,config:we,cache_dir:Me,local_files_only:ze,revision:$e,legacy:hA}),eA=((Bt=wA.tokenizer_class)==null?void 0:Bt.replace(/Fast$/,""))??"PreTrainedTokenizer";let nt=this.TOKENIZER_CLASS_MAPPING[eA];return nt||(console.warn(`Unknown tokenizer class "${eA}", attempting to construct from base class.`),nt=je),new nt(yA,wA)}}Be(Ss,"TOKENIZER_CLASS_MAPPING",{T5Tokenizer:qs,DistilBertTokenizer:cr,CamembertTokenizer:Gs,DebertaTokenizer:LA,DebertaV2Tokenizer:St,BertTokenizer:At,HerbertTokenizer:Vt,ConvBertTokenizer:Ot,RoFormerTokenizer:FA,XLMTokenizer:js,ElectraTokenizer:Cs,MobileBertTokenizer:XA,SqueezeBertTokenizer:WA,AlbertTokenizer:Tt,GPT2Tokenizer:ds,BartTokenizer:bs,MBartTokenizer:Ms,MBart50Tokenizer:Ps,RobertaTokenizer:Ws,WhisperTokenizer:SA,CodeGenTokenizer:Gr,CLIPTokenizer:es,SiglipTokenizer:La,MarianTokenizer:ba,BloomTokenizer:$s,NllbTokenizer:ws,M2M100Tokenizer:mr,LlamaTokenizer:ea,CodeLlamaTokenizer:Yr,XLMRobertaTokenizer:Ys,MPNetTokenizer:Lr,FalconTokenizer:iA,GPTNeoXTokenizer:IA,EsmTokenizer:jA,Wav2Vec2CTCTokenizer:_a,BlenderbotTokenizer:Fs,BlenderbotSmallTokenizer:Aa,SpeechT5Tokenizer:ta,NougatTokenizer:Ia,VitsTokenizer:Ra,Qwen2Tokenizer:Gt,GemmaTokenizer:Qs,Grok1Tokenizer:Is,CohereTokenizer:ja,MgpstrTokenizer:Wa,PreTrainedTokenizer:je})},"./src/utils/audio.js":(a,n,i)=>{i.r(n),i.d(n,{RawAudio:()=>Ce,hamming:()=>x,hanning:()=>B,mel_filter_bank:()=>V,read_audio:()=>v,spectrogram:()=>y,window_function:()=>$});var g=i("./src/utils/hub.js"),p=i("./src/utils/maths.js"),h=i("./src/utils/core.js"),C=i("./src/env.js"),w=i("?7a2c"),E=i("./src/utils/tensor.js");async function v(Ae,be){if(typeof AudioContext>"u")throw Error("Unable to load audio from path/URL since `AudioContext` is not available in your environment. Instead, audio data should be passed directly to the pipeline/processor. For more information and some example code, see https://huggingface.co/docs/transformers.js/guides/node-audio-processing.");const he=await(await(0,g.getFile)(Ae)).arrayBuffer(),Ee=new AudioContext({sampleRate:be});typeof be>"u"&&console.warn(`No sampling rate provided, using default of ${Ee.sampleRate}Hz.`);const ke=await Ee.decodeAudioData(he);let De;if(ke.numberOfChannels===2){const Re=Math.sqrt(2),Qe=ke.getChannelData(0),ue=ke.getChannelData(1);De=new Float32Array(Qe.length);for(let ee=0;ee2595*Math.log10(1+Ae/700),kaldi:Ae=>1127*Math.log(1+Ae/700),slaney:(Ae,be=1e3,he=15,Ee=27/Math.log(6.4))=>Ae>=be?he+Math.log(Ae/be)*Ee:3*Ae/200};function F(Ae,be="htk"){const he=S[be];if(!he)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof Ae=="number"?he(Ae):Ae.map(Ee=>he(Ee))}const R={htk:Ae=>700*(10**(Ae/2595)-1),kaldi:Ae=>700*(Math.exp(Ae/1127)-1),slaney:(Ae,be=1e3,he=15,Ee=Math.log(6.4)/27)=>Ae>=he?be*Math.exp(Ee*(Ae-he)):200*Ae/3};function K(Ae,be="htk"){const he=R[be];if(!he)throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".');return typeof Ae=="number"?he(Ae):Ae.map(Ee=>he(Ee))}function L(Ae,be){const he=Float64Array.from({length:be.length-1},(Re,Qe)=>be[Qe+1]-be[Qe]),Ee=Array.from({length:Ae.length},()=>new Array(be.length));for(let Re=0;Renew Array(Ae.length));for(let Re=0;ReAe+Ee*De)}function V(Ae,be,he,Ee,ke,De=null,Re="htk",Qe=!1){if(De!==null&&De!=="slaney")throw new Error('norm must be one of null or "slaney"');if(Ae<2)throw new Error(`Require num_frequency_bins: ${Ae} >= 2`);if(he>Ee)throw new Error(`Require min_frequency: ${he} <= max_frequency: ${Ee}`);const ue=F(he,Re),ee=F(Ee,Re),de=N(ue,ee,be+2);let xe=K(de,Re),Ye;if(Qe){const qe=ke/((Ae-1)*2);Ye=F(Float64Array.from({length:Ae},(pA,MA)=>MA*qe),Re),xe=de}else Ye=N(0,Math.floor(ke/2),Ae);const Fe=L(Ye,xe);if(De!==null&&De==="slaney")for(let qe=0;qeke)throw Error(`frame_length (${he}) may not be larger than fft_length (${ke})`);if(Ke!==he)throw new Error(`Length of the window (${Ke}) must equal frame_length (${he})`);if(Ee<=0)throw new Error("hop_length must be greater than zero");if(De===null&&de!==null)throw new Error("You have provided `mel_filters` but `power` is `None`. Mel spectrogram computation is not yet supported for complex-valued spectrogram. Specify `power` to fix this issue.");if(Re){if(Qe!=="reflect")throw new Error(`pad_mode="${Qe}" not implemented yet.`);const RA=Math.floor((ke-1)/2)+1;Ae=d(Ae,RA,RA)}let Ue=Math.floor(1+Math.floor((Ae.length-he)/Ee));Le!==null&&UeUe?ye&&(H=fe):H=AA=fe);const oA=new p.FFT(ke),fA=new Float64Array(ke),me=new Float64Array(oA.outputBufferSize),vA=new Float32Array(sA*H);for(let RA=0;RA=1;--nA)fA[nA]-=ee*fA[nA-1];fA[0]*=1-ee}for(let nA=0;nAMath.pow(Qe,.85));break;default:throw new Error(`Unknown window type ${be}.`)}if(he&&(Re=Re.subarray(0,Ae)),Ee===null)return Re;if(Ae>Ee)throw new Error(`Length of the window (${Ae}) may not be larger than frame_length (${Ee})`);return Re}function T(Ae,be){let he=44;const Ee=new ArrayBuffer(he+Ae.length*4),ke=new DataView(Ee);O(ke,0,"RIFF"),ke.setUint32(4,36+Ae.length*4,!0),O(ke,8,"WAVE"),O(ke,12,"fmt "),ke.setUint32(16,16,!0),ke.setUint16(20,3,!0),ke.setUint16(22,1,!0),ke.setUint32(24,be,!0),ke.setUint32(28,be*4,!0),ke.setUint16(32,4,!0),ke.setUint16(34,32,!0),O(ke,36,"data"),ke.setUint32(40,Ae.length*4,!0);for(let De=0;De{let De=await ke.arrayBuffer();w.writeFileSync(Ee,Buffer.from(De))};else throw new Error("Unable to save because filesystem is disabled in this environment.");await he(be,this.toBlob())}}},"./src/utils/constants.js":(a,n,i)=>{i.r(n),i.d(n,{CHAT_TEMPLATE_NAME:()=>E,CONFIG_NAME:()=>p,FEATURE_EXTRACTOR_NAME:()=>h,GENERATION_CONFIG_NAME:()=>v,GITHUB_ISSUE_URL:()=>g,IMAGE_PROCESSOR_NAME:()=>C,PROCESSOR_NAME:()=>w});const g="https://github.com/huggingface/transformers.js/issues/new/choose",p="config.json",h="preprocessor_config.json",C=h,w="processor_config.json",E="chat_template.json",v="generation_config.json"},"./src/utils/core.js":(a,n,i)=>{i.r(n),i.d(n,{calculateDimensions:()=>v,calculateReflectOffset:()=>S,count:()=>L,dispatchCallback:()=>g,escapeRegExp:()=>h,isIntegralNumber:()=>w,isNullishDimension:()=>E,isTypedArray:()=>C,len:()=>K,mergeArrays:()=>B,pick:()=>R,pop:()=>D,product:()=>x,reverseDictionary:()=>p,saveBlob:()=>F});function g(N,V){N&&N(V)}function p(N){return Object.fromEntries(Object.entries(N).map(([V,d])=>[d,V]))}function h(N){return N.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function C(N){var V,d,k;return((k=(d=(V=N==null?void 0:N.prototype)==null?void 0:V.__proto__)==null?void 0:d.constructor)==null?void 0:k.name)==="TypedArray"}function w(N){return Number.isInteger(N)||typeof N=="bigint"}function E(N){return N==null||N===-1}function v(N){const V=[];let d=N;for(;Array.isArray(d);)V.push(d.length),d=d[0];return V}function D(N,V,d=void 0){const k=N[V];if(k!==void 0)return delete N[V],k;if(d===void 0)throw Error(`Key ${V} does not exist in object.`);return d}function B(...N){return Array.prototype.concat.apply([],N)}function x(...N){return N.reduce((V,d)=>V.flatMap(k=>d.map(e=>[k,e])))}function S(N,V){return Math.abs((N+V)%(2*V)-V)}function F(N,V){const d=URL.createObjectURL(V),k=document.createElement("a");k.href=d,k.download=N,k.click(),k.remove(),URL.revokeObjectURL(d)}function R(N,V){return Object.assign({},...V.map(d=>{if(N[d]!==void 0)return{[d]:N[d]}}))}function K(N){let V=0;for(const d of N)++V;return V}function L(N,V){let d=0;for(const k of N)k===V&&++d;return d}},"./src/utils/data-structures.js":(a,n,i)=>{i.r(n),i.d(n,{CharTrie:()=>p,DictionarySplitter:()=>E,LRUCache:()=>v,PriorityQueue:()=>g,TokenLattice:()=>C});class g{constructor(B=(S,F)=>S>F,x=1/0){this._heap=[],this._comparator=B,this._maxSize=x}get size(){return this._heap.length}isEmpty(){return this.size===0}peek(){return this._heap[0]}push(...B){return this.extend(B)}extend(B){for(const x of B)if(this.size0&&this._swap(0,x),this._heap.pop(),this._siftDown(),B}replace(B){const x=this.peek();return this._heap[0]=B,this._siftDown(),x}_parent(B){return(B+1>>>1)-1}_left(B){return(B<<1)+1}_right(B){return B+1<<1}_greater(B,x){return this._comparator(this._heap[B],this._heap[x])}_swap(B,x){const S=this._heap[B];this._heap[B]=this._heap[x],this._heap[x]=S}_siftUp(){this._siftUpFrom(this.size-1)}_siftUpFrom(B){for(;B>0&&this._greater(B,this._parent(B));)this._swap(B,this._parent(B)),B=this._parent(B)}_siftDown(){let B=0;for(;this._left(B)[]),this.endNodes=Array.from({length:this.len+1},()=>[]);const F=new w(this.bosTokenId,0,0,0,0),R=new w(this.eosTokenId,1,this.len,0,0);this.nodes.push(F.clone()),this.nodes.push(R.clone()),this.beginNodes[this.len].push(R),this.endNodes[0].push(F)}insert(B,x,S,F){const R=this.nodes.length,K=new w(F,R,B,x,S);this.beginNodes[B].push(K),this.endNodes[B+x].push(K),this.nodes.push(K)}viterbi(){const B=this.len;let x=0;for(;x<=B;){if(this.beginNodes[x].length==0)return[];for(let L of this.beginNodes[x]){L.prev=null;let N=0,V=null;for(let d of this.endNodes[x]){const k=d.backtraceScore+L.score;(V===null||k>N)&&(V=d.clone(),N=k)}if(V!==null)L.prev=V,L.backtraceScore=N;else return[]}++x}const S=[],R=this.beginNodes[B][0].prev;if(R===null)return[];let K=R.clone();for(;K.prev!==null;)S.push(K.clone()),K=K.clone().prev.clone();return S.reverse(),S}piece(B){return this.chars.slice(B.pos,B.pos+B.length).join("")}tokens(){return this.viterbi().map(x=>this.piece(x))}tokenIds(){return this.viterbi().map(x=>x.tokenId)}}class w{constructor(B,x,S,F,R){this.tokenId=B,this.nodeId=x,this.pos=S,this.length=F,this.score=R,this.prev=null,this.backtraceScore=0}clone(){const B=new w(this.tokenId,this.nodeId,this.pos,this.length,this.score);return B.prev=this.prev,B.backtraceScore=this.backtraceScore,B}}class E{constructor(B){this.trie=this._buildTrie(B)}_buildTrie(B){var S;const x=Object.create(null);for(const F of B){let R=x;for(let K=0;KF&&x.push(B.slice(F,R)),x.push(L),R+=L.length,F=R):++R}return Fthis.capacity&&this.cache.delete(this.cache.keys().next().value)}clear(){this.cache.clear()}}},"./src/utils/devices.js":(a,n,i)=>{i.r(n),i.d(n,{DEVICE_TYPES:()=>g});const g=Object.freeze({auto:"auto",gpu:"gpu",cpu:"cpu",wasm:"wasm",webgpu:"webgpu",cuda:"cuda",dml:"dml",webnn:"webnn","webnn-npu":"webnn-npu","webnn-gpu":"webnn-gpu","webnn-cpu":"webnn-cpu"})},"./src/utils/dtypes.js":(a,n,i)=>{i.r(n),i.d(n,{DATA_TYPES:()=>C,DEFAULT_DEVICE_DTYPE_MAPPING:()=>w,DEFAULT_DTYPE_SUFFIX_MAPPING:()=>E,isWebGpuFp16Supported:()=>h});var g=i("./src/env.js"),p=i("./src/utils/devices.js");const h=function(){let v;return async function(){if(v===void 0)if(!g.apis.IS_WEBGPU_AVAILABLE)v=!1;else try{v=(await navigator.gpu.requestAdapter()).features.has("shader-f16")}catch{v=!1}return v}}(),C=Object.freeze({auto:"auto",fp32:"fp32",fp16:"fp16",q8:"q8",int8:"int8",uint8:"uint8",q4:"q4",bnb4:"bnb4",q4f16:"q4f16"}),w=Object.freeze({[p.DEVICE_TYPES.wasm]:C.q8}),E=Object.freeze({[C.fp32]:"",[C.fp16]:"_fp16",[C.int8]:"_int8",[C.uint8]:"_uint8",[C.q8]:"_quantized",[C.q4]:"_q4",[C.q4f16]:"_q4f16",[C.bnb4]:"_bnb4"})},"./src/utils/generic.js":(a,n,i)=>{i.r(n),i.d(n,{Callable:()=>g});const g=class{constructor(){let p=function(...h){return p._call(...h)};return Object.setPrototypeOf(p,new.target.prototype)}_call(...p){throw Error("Must implement _call method in subclass")}}},"./src/utils/hub.js":(a,n,i)=>{i.r(n),i.d(n,{MAX_EXTERNAL_DATA_CHUNKS:()=>w,getFile:()=>S,getModelFile:()=>N,getModelJSON:()=>V});var g=i("?7a2c"),p=i("?a42a"),h=i("./src/env.js"),C=i("./src/utils/core.js");const w=100,E={txt:"text/plain",html:"text/html",css:"text/css",js:"text/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif"};class v{constructor(u){if(this.filePath=u,this.headers=new Headers,this.exists=g.existsSync(u),this.exists){this.status=200,this.statusText="OK";let y=g.statSync(u);this.headers.set("content-length",y.size.toString()),this.updateContentType();const $=g.createReadStream(u);this.body=new ReadableStream({start(T){$.on("data",O=>T.enqueue(O)),$.on("end",()=>T.close()),$.on("error",O=>T.error(O))},cancel(){$.destroy()}})}else this.status=404,this.statusText="Not Found",this.body=null}updateContentType(){const u=this.filePath.toString().split(".").pop().toLowerCase();this.headers.set("content-type",E[u]??"application/octet-stream")}clone(){let u=new v(this.filePath);return u.exists=this.exists,u.status=this.status,u.statusText=this.statusText,u.headers=new Headers(this.headers),u}async arrayBuffer(){return(await g.promises.readFile(this.filePath)).buffer}async blob(){const u=await g.promises.readFile(this.filePath);return new Blob([u],{type:this.headers.get("content-type")})}async text(){return await g.promises.readFile(this.filePath,"utf8")}async json(){return JSON.parse(await this.text())}}function D(e,u=null,y=null){let $;try{$=new URL(e)}catch{return!1}return!(u&&!u.includes($.protocol)||y&&!y.includes($.hostname))}const B=/^(\b[\w\-.]+\b\/)?\b[\w\-.]{1,96}\b$/;function x(e){return!(!B.test(e)||e.includes("..")||e.includes("--")||e.endsWith(".git")||e.endsWith(".ipynb"))}async function S(e){var u;if(h.env.useFS&&!D(e,["http:","https:","blob:"]))return new v(e instanceof URL?e.protocol==="file:"?e.pathname:e.toString():e);if(typeof process<"u"&&((u=process==null?void 0:process.release)==null?void 0:u.name)==="node"){const y=!!(kn!=null&&kn.TESTING_REMOTELY),$=h.env.version,T=new Headers;if(T.set("User-Agent",`transformers.js/${$}; is_ci/${y};`),D(e,["http:","https:"],["huggingface.co","hf.co"])){const Ce=(kn==null?void 0:kn.HF_TOKEN)??(kn==null?void 0:kn.HF_ACCESS_TOKEN);Ce&&T.set("Authorization",`Bearer ${Ce}`)}return fetch(e,{headers:T})}else return fetch(e)}const F={400:"Bad request error occurred while trying to load file",401:"Unauthorized access to file",403:"Forbidden access to file",404:"Could not locate file",408:"Request timeout error occurred while trying to load file",500:"Internal server error error occurred while trying to load file",502:"Bad gateway error occurred while trying to load file",503:"Service unavailable error occurred while trying to load file",504:"Gateway timeout error occurred while trying to load file"};function R(e,u,y){if(!y)return null;const $=F[e]??`Error (${e}) occurred while trying to load file`;throw Error(`${$}: "${u}".`)}class K{constructor(u){this.path=u}async match(u){let y=p.join(this.path,u),$=new v(y);if($.exists)return $}async put(u,y,$=void 0){let T=p.join(this.path,u);try{const O=y.headers.get("Content-Length"),Ce=parseInt(O??"0");let Ae=0;await g.promises.mkdir(p.dirname(T),{recursive:!0});const be=g.createWriteStream(T),he=y.body.getReader();for(;;){const{done:Ee,value:ke}=await he.read();if(Ee)break;await new Promise((Re,Qe)=>{be.write(ke,ue=>{if(ue){Qe(ue);return}Re()})}),Ae+=ke.length;const De=Ce?Ae/Ce*100:0;$==null||$({progress:De,loaded:Ae,total:Ce})}be.close()}catch(O){try{await g.promises.unlink(T)}catch{}throw O}}}async function L(e,...u){for(let y of u)try{let $=await e.match(y);if($)return $}catch{continue}}async function N(e,u,y=!0,$={},T=!1){if(!h.env.allowLocalModels){if($.local_files_only)throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).");if(!h.env.allowRemoteModels)throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.")}(0,C.dispatchCallback)($.progress_callback,{status:"initiate",name:e,file:u});let O;if(!O&&h.env.useCustomCache){if(!h.env.customCache)throw Error("`env.useCustomCache=true`, but `env.customCache` is not defined.");if(!h.env.customCache.match||!h.env.customCache.put)throw new Error("`env.customCache` must be an object which implements the `match` and `put` functions of the Web Cache API. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache");O=h.env.customCache}if(!O&&h.env.useBrowserCache){if(typeof caches>"u")throw Error("Browser cache is not available in this environment.");try{O=await caches.open("transformers-cache")}catch(xe){console.warn("An error occurred while opening the browser cache:",xe)}}if(!O&&h.env.useFSCache){if(!h.apis.IS_FS_AVAILABLE)throw Error("File System Cache is not available in this environment.");O=new K($.cache_dir??h.env.cacheDir)}const Ce=$.revision??"main",Ae=k(e,u),be=x(e),he=be?k(h.env.localModelPath,Ae):Ae,Ee=k(h.env.remoteHost,h.env.remotePathTemplate.replaceAll("{model}",e).replaceAll("{revision}",encodeURIComponent(Ce)),u);let ke;const De=O instanceof K?Ce==="main"?Ae:k(e,Ce,u):Ee;let Re=!1,Qe;O&&(Qe=await L(O,he,De));const ue=Qe!==void 0;if(Qe===void 0){if(h.env.allowLocalModels)if(D(Ae,["http:","https:"])){if($.local_files_only)throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${Ae}.`);if(!h.env.allowRemoteModels)throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${Ae}.`)}else try{Qe=await S(he),ke=he}catch(Ye){console.warn(`Unable to load from local path "${he}": "${Ye}"`)}if(Qe===void 0||Qe.status===404){if($.local_files_only||!h.env.allowRemoteModels){if(y)throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${he}".`);return null}if(!be)throw Error(`Local file missing at "${he}" and download aborted due to invalid model ID "${e}".`);if(Qe=await S(Ee),Qe.status!==200)return R(Qe.status,Ee,y);ke=De}Re=O&&typeof Response<"u"&&Qe instanceof Response&&Qe.status===200}(0,C.dispatchCallback)($.progress_callback,{status:"download",name:e,file:u});let ee;if(!(h.apis.IS_NODE_ENV&&T)){let xe;$.progress_callback?ue&&typeof navigator<"u"&&/firefox/i.test(navigator.userAgent)?(xe=new Uint8Array(await Qe.arrayBuffer()),(0,C.dispatchCallback)($.progress_callback,{status:"progress",name:e,file:u,progress:100,loaded:xe.length,total:xe.length})):xe=await d(Qe,Ye=>{(0,C.dispatchCallback)($.progress_callback,{status:"progress",name:e,file:u,...Ye})}):xe=new Uint8Array(await Qe.arrayBuffer()),ee=xe}if(Re&&ke&&await O.match(ke)===void 0&&(ee?await O.put(ke,new Response(ee,{headers:Qe.headers})).catch(xe=>{console.warn(`Unable to add response to browser cache: ${xe}.`)}):await O.put(ke,Qe,$.progress_callback)),(0,C.dispatchCallback)($.progress_callback,{status:"done",name:e,file:u}),ee){if(!h.apis.IS_NODE_ENV&&T)throw new Error("Cannot return path in a browser environment.");return ee}if(Qe instanceof v)return Qe.filePath;const de=await(O==null?void 0:O.match(ke));if(de instanceof v)return de.filePath;if(de instanceof Response)return new Uint8Array(await de.arrayBuffer());if(typeof de=="string")return de;throw new Error("Unable to get model file path or buffer.")}async function V(e,u,y=!0,$={}){const T=await N(e,u,y,$,!1);if(T===null)return{};const Ce=new TextDecoder("utf-8").decode(T);return JSON.parse(Ce)}async function d(e,u){const y=e.headers.get("Content-Length");y===null&&console.warn("Unable to determine content-length from response headers. Will expand buffer when needed.");let $=parseInt(y??"0"),T=new Uint8Array($),O=0;const Ce=e.body.getReader();async function Ae(){const{done:be,value:he}=await Ce.read();if(be)return;const Ee=O+he.length;if(Ee>$){$=Ee;const De=new Uint8Array($);De.set(T),T=De}T.set(he,O),O=Ee;const ke=O/$*100;return u({progress:ke,loaded:O,total:$}),Ae()}return await Ae(),T}function k(...e){return e=e.map((u,y)=>(y&&(u=u.replace(new RegExp("^/"),"")),y!==e.length-1&&(u=u.replace(new RegExp("/$"),"")),u)),e.join("/")}},"./src/utils/image.js":(a,n,i)=>{i.r(n),i.d(n,{RawImage:()=>F,load_image:()=>R});var g=i("./src/utils/core.js"),p=i("./src/utils/hub.js"),h=i("./src/env.js"),C=i("./src/utils/tensor.js"),w=i("?2b25");let E,v,D;const B=h.apis.IS_BROWSER_ENV||h.apis.IS_WEBWORKER_ENV;if(B)E=(K,L)=>{if(!self.OffscreenCanvas)throw new Error("OffscreenCanvas not supported by this browser.");return new self.OffscreenCanvas(K,L)},D=self.createImageBitmap,v=self.ImageData;else if(w)D=async K=>{const N=(await K.metadata()).channels,{data:V,info:d}=await K.rotate().raw().toBuffer({resolveWithObject:!0}),k=new F(new Uint8ClampedArray(V),d.width,d.height,d.channels);return N!==void 0&&N!==d.channels&&k.convert(N),k};else throw new Error("Unable to load image processing library.");const x={0:"nearest",1:"lanczos",2:"bilinear",3:"bicubic",4:"box",5:"hamming"},S=new Map([["png","image/png"],["jpg","image/jpeg"],["jpeg","image/jpeg"],["gif","image/gif"]]);class F{constructor(L,N,V,d){this.data=L,this.width=N,this.height=V,this.channels=d}get size(){return[this.width,this.height]}static async read(L){if(L instanceof F)return L;if(typeof L=="string"||L instanceof URL)return await this.fromURL(L);if(L instanceof Blob)return await this.fromBlob(L);if(typeof HTMLCanvasElement<"u"&&L instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&L instanceof OffscreenCanvas)return this.fromCanvas(L);throw new Error(`Unsupported input type: ${typeof L}`)}static fromCanvas(L){if(!B)throw new Error("fromCanvas() is only supported in browser environments.");const V=L.getContext("2d").getImageData(0,0,L.width,L.height).data;return new F(V,L.width,L.height,4)}static async fromURL(L){const N=await(0,p.getFile)(L);if(N.status!==200)throw new Error(`Unable to read image from "${L}" (${N.status} ${N.statusText})`);const V=await N.blob();return this.fromBlob(V)}static async fromBlob(L){if(B){const N=await D(L),V=E(N.width,N.height).getContext("2d");return V.drawImage(N,0,0),new this(V.getImageData(0,0,N.width,N.height).data,N.width,N.height,4)}else{const N=w(await L.arrayBuffer());return await D(N)}}static fromTensor(L,N="CHW"){if(L.dims.length!==3)throw new Error(`Tensor should have 3 dimensions, but has ${L.dims.length} dimensions.`);if(N==="CHW")L=L.transpose(1,2,0);else if(N!=="HWC")throw new Error(`Unsupported channel format: ${N}`);if(!(L.data instanceof Uint8ClampedArray||L.data instanceof Uint8Array))throw new Error(`Unsupported tensor type: ${L.type}`);switch(L.dims[2]){case 1:case 2:case 3:case 4:return new F(L.data,L.dims[1],L.dims[0],L.dims[2]);default:throw new Error(`Unsupported number of channels: ${L.dims[2]}`)}}grayscale(){if(this.channels===1)return this;const L=new Uint8ClampedArray(this.width*this.height*1);switch(this.channels){case 3:case 4:for(let N=0,V=0;N=0?y=V:T=-V,d>=0?$=d:O=-d,u.drawImage(e,y,$,L,N,T,O,L,N),new F(u.getImageData(0,0,L,N).data,L,N,4).convert(k)}else{let k=this.toSharp();if(V>=0&&d>=0)k=k.extract({left:Math.floor(V),top:Math.floor(d),width:L,height:N});else if(V<=0&&d<=0){const e=Math.floor(-d),u=Math.floor(-V);k=k.extend({top:e,left:u,right:L-this.width-u,bottom:N-this.height-e})}else{let e=[0,0],u=0;d<0?(e[0]=Math.floor(-d),e[1]=N-this.height-e[0]):u=Math.floor(d);let y=[0,0],$=0;V<0?(y[0]=Math.floor(-V),y[1]=L-this.width-y[0]):$=Math.floor(V),k=k.extend({top:e[0],bottom:e[1],left:y[0],right:y[1]}).extract({left:$,top:u,width:L,height:N})}return await D(k)}}async toBlob(L="image/png",N=1){if(!B)throw new Error("toBlob() is only supported in browser environments.");return await this.toCanvas().convertToBlob({type:L,quality:N})}toTensor(L="CHW"){let N=new C.Tensor("uint8",new Uint8Array(this.data),[this.height,this.width,this.channels]);if(L!=="HWC")if(L==="CHW")N=N.permute(2,0,1);else throw new Error(`Unsupported channel format: ${L}`);return N}toCanvas(){if(!B)throw new Error("toCanvas() is only supported in browser environments.");const L=this.clone().rgba(),N=E(L.width,L.height),V=new v(L.data,L.width,L.height);return N.getContext("2d").putImageData(V,0,0),N}split(){const{data:L,width:N,height:V,channels:d}=this,k=L.constructor,e=L.length/d,u=Array.from({length:d},()=>new k(e));for(let y=0;ynew F(y,N,V,1))}_update(L,N,V,d=null){return this.data=L,this.width=N,this.height=V,d!==null&&(this.channels=d),this}clone(){return new F(this.data.slice(),this.width,this.height,this.channels)}convert(L){if(this.channels===L)return this;switch(L){case 1:this.grayscale();break;case 3:this.rgb();break;case 4:this.rgba();break;default:throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`)}return this}async save(L){if(B){if(h.apis.IS_WEBWORKER_ENV)throw new Error("Unable to save an image from a Web Worker.");const N=L.split(".").pop().toLowerCase(),V=S.get(N)??"image/png",d=await this.toBlob(V);(0,g.saveBlob)(L,d)}else{if(h.apis.IS_FS_AVAILABLE)return await this.toSharp().toFile(L);throw new Error("Unable to save the image because filesystem is disabled in this environment.")}}toSharp(){if(B)throw new Error("toSharp() is only supported in server-side environments.");return w(this.data,{raw:{width:this.width,height:this.height,channels:this.channels}})}}const R=F.read.bind(F)},"./src/utils/maths.js":(a,n,i)=>{i.r(n),i.d(n,{FFT:()=>R,bankers_round:()=>N,cos_sim:()=>E,dot:()=>w,dynamic_time_warping:()=>V,interpolate_data:()=>g,log_softmax:()=>C,magnitude:()=>v,max:()=>B,medianFilter:()=>K,min:()=>D,permute_data:()=>p,round:()=>L,softmax:()=>h});function g(d,[k,e,u],[y,$],T="bilinear",O=!1){const Ce=$/u,Ae=y/e,be=new d.constructor(y*$*k),he=e*u,Ee=y*$;for(let ke=0;ke=0;--O)y[O]=Ce,u[O]=k[e[O]],Ce*=u[O];const $=e.map((O,Ce)=>y[e.indexOf(Ce)]),T=new d.constructor(d.length);for(let O=0;O=0;--Ae)Ce+=be%k[Ae]*$[Ae],be=Math.floor(be/k[Ae]);T[Ce]=d[O]}return[T,u]}function h(d){const k=B(d)[0],e=d.map($=>Math.exp($-k)),u=e.reduce(($,T)=>$+T,0);return e.map($=>$/u)}function C(d){const k=B(d)[0];let e=0;for(let $=0;$$-k-u)}function w(d,k){let e=0;for(let u=0;uk+e*e,0))}function D(d){if(d.length===0)throw Error("Array must not be empty");let k=d[0],e=0;for(let u=1;uk&&(k=d[u],e=u);return[k,e]}function x(d){return d>0&&(d&d-1)===0}class S{constructor(k){if(this.size=k|0,this.size<=1||!x(this.size))throw new Error("FFT size must be a power of two larger than 1");this._csize=k<<1,this.table=new Float64Array(this.size*2);for(let u=0;uu;u<<=1)++e;this._width=e%2===0?e-1:e,this._bitrev=new Int32Array(1<>>y&3)<<$}}}createComplexArray(){return new Float64Array(this._csize)}fromComplexArray(k,e){const u=e||new Array(k.length>>>1);for(let y=0;y>>1]=k[y];return u}toComplexArray(k,e){const u=e||this.createComplexArray();for(let y=0;y>>1],u[y+1]=0;return u}transform(k,e){if(k===e)throw new Error("Input and output buffers must be different");this._transform4(k,e,1)}realTransform(k,e){if(k===e)throw new Error("Input and output buffers must be different");this._realTransform4(k,e,1)}inverseTransform(k,e){if(k===e)throw new Error("Input and output buffers must be different");this._transform4(k,e,-1);for(let u=0;u>=2;T>=2;T>>=2){O=y/T<<1;const Ee=O>>>2;for(Ce=0;Ce>>1,T>>>1)}else for(Ce=0,Ae=0;Ce>>1,T>>>1,u)}const he=this.table;for(T>>=2;T>=2;T>>=2){O=y/T<<1;const ke=O>>>1,De=ke>>>1,Re=De>>>1;for(Ce=0;Ce>>1;for(let ke=2;ke>1;++be){const he=(be+1-k)**2/2,Ee=Math.sqrt(Ce**2+Ae**2)**he,ke=he*Math.atan2(Ae,Ce),De=2*be;$[De]=Ee*Math.cos(ke),$[De+1]=Ee*Math.sin(ke),T[De]=$[De],T[De+1]=-$[De+1]}this._slicedChirpBuffer=$.subarray(e,u),this._f=new S(y>>1),this._f.transform(this._chirpBuffer,T)}_transform(k,e,u){const y=this._buffer1,$=this._buffer2,T=this._outBuffer1,O=this._outBuffer2,Ce=this._chirpBuffer,Ae=this._slicedChirpBuffer,be=this._a;if(u)for(let he=0;he>1,De=e[ke];y[he]=De*Ae[he],y[Ee]=De*Ae[Ee]}else for(let he=0;he=d.length&&(Ce=2*(d.length-1)-Ce),u[T++]=d[Ce]}u.sort(),e[$]=u[y]}return e}function L(d,k){const e=Math.pow(10,k);return Math.round(d*e)/e}function N(d){const k=Math.round(d);return Math.abs(d)%1===.5?k%2===0?k:k-1:k}function V(d){const k=d.length,e=d[0].length,u=[k+1,e+1],y=Array.from({length:u[0]},()=>Array(u[1]).fill(1/0));y[0][0]=0;const $=Array.from({length:u[0]},()=>Array(u[1]).fill(-1));for(let be=1;be0||O>0;)switch(Ce.push(T-1),Ae.push(O-1),$[T][O]){case 0:--T,--O;break;case 1:--T;break;case 2:--O;break;default:throw new Error(`Internal error in dynamic time warping. Unexpected trace[${T}, ${O}]. Please file a bug report.`)}return Ce.reverse(),Ae.reverse(),[Ce,Ae]}},"./src/utils/tensor.js":(a,n,i)=>{i.r(n),i.d(n,{DataTypeMap:()=>C,Tensor:()=>w,cat:()=>e,full:()=>Ae,full_like:()=>be,interpolate:()=>D,interpolate_4d:()=>B,layer_norm:()=>N,matmul:()=>x,mean:()=>T,mean_pooling:()=>L,ones:()=>he,ones_like:()=>Ee,permute:()=>v,quantize_embeddings:()=>Qe,rand:()=>Re,rfft:()=>S,slice:()=>K,stack:()=>u,std_mean:()=>$,topk:()=>F,zeros:()=>ke,zeros_like:()=>De});var g=i("./src/utils/maths.js"),p=i("./src/backends/onnx.js"),h=i("./src/ops/registry.js");const C=Object.freeze({float32:Float32Array,float16:typeof Float16Array<"u"?Float16Array:Uint16Array,float64:Float64Array,string:Array,int8:Int8Array,uint8:Uint8Array,int16:Int16Array,uint16:Uint16Array,int32:Int32Array,uint32:Uint32Array,int64:BigInt64Array,uint64:BigUint64Array,bool:Uint8Array,uint4:Uint8Array,int4:Int8Array});class w{constructor(...ee){Be(this,"ort_tensor");return(0,p.isONNXTensor)(ee[0])?this.ort_tensor=ee[0]:this.ort_tensor=new p.Tensor(ee[0],ee[1],ee[2]),new Proxy(this,{get:(de,xe)=>{if(typeof xe=="string"){let Ye=Number(xe);if(Number.isInteger(Ye))return de._getitem(Ye)}return de[xe]},set:(de,xe,Ye)=>de[xe]=Ye})}get dims(){return this.ort_tensor.dims}set dims(ee){this.ort_tensor.dims=ee}get type(){return this.ort_tensor.type}get data(){return this.ort_tensor.data}get size(){return this.ort_tensor.size}get location(){return this.ort_tensor.location}dispose(){this.ort_tensor.dispose()}*[Symbol.iterator](){const[ee,...de]=this.dims;if(de.length>0){const xe=de.reduce((Ye,Fe)=>Ye*Fe);for(let Ye=0;Ye0){const Ye=xe.reduce((Fe,qe)=>Fe*qe);return this._subarray(ee,Ye,xe)}else return new w(this.type,[this.data[ee]],xe)}indexOf(ee){const de=this.data;for(let xe=0;xege)throw new Error(`Invalid slice: ${fe}`);const Ke=[Math.max(ye,0),Math.min(ge,this.dims[Le])];xe.push(Ke),de.push(Ke[1]-Ke[0])}else throw new Error(`Invalid slice: ${fe}`)}const Ye=xe.map(([Le,fe])=>fe-Le),Fe=Ye.reduce((Le,fe)=>Le*fe),qe=this.data,pA=new qe.constructor(Fe),MA=this.stride();for(let Le=0;Le=0;--ye){const Ke=Ye[ye];fe+=(ge%Ke+xe[ye][0])*MA[ye],ge=Math.floor(ge/Ke)}pA[Le]=qe[fe]}return new w(this.type,pA,de)}permute(...ee){return v(this,ee)}transpose(...ee){return this.permute(...ee)}sum(ee=null,de=!1){return this.norm(1,ee,de)}norm(ee="fro",de=null,xe=!1){if(ee==="fro")ee=2;else if(typeof ee=="string")throw Error(`Unsupported norm: ${ee}`);const Ye=this.data,Fe=(Le,fe)=>Le+fe**ee;if(de===null){const Le=Ye.reduce(Fe,0)**(1/ee);return new w(this.type,[Le],[])}const[qe,pA,MA]=y(Fe,this,de,xe);if(ee!==1)for(let Le=0;Le=0;--MA){const ye=this.dims[MA];if(MA!==de){const ge=Le%ye;pA+=ge*fe,fe*=this.dims[MA]}Le=Math.floor(Le/ye)}Ye[qe]/=Fe[pA]}return this}normalize(ee=2,de=1){return this.clone().normalize_(ee,de)}stride(){return O(this.dims)}squeeze(ee=null){return new w(this.type,this.data,V(this.dims,ee))}squeeze_(ee=null){return this.dims=V(this.dims,ee),this}unsqueeze(ee=null){return new w(this.type,this.data,d(this.dims,ee))}unsqueeze_(ee=null){return this.dims=d(this.dims,ee),this}flatten_(ee=0,de=-1){de=(de+this.dims.length)%this.dims.length;let xe=this.dims.slice(0,ee),Ye=this.dims.slice(ee,de+1),Fe=this.dims.slice(de+1);return this.dims=[...xe,Ye.reduce((qe,pA)=>qe*pA,1),...Fe],this}flatten(ee=0,de=-1){return this.clone().flatten_(ee,de)}view(...ee){let de=-1;for(let Ye=0;YepA!==de?Fe*qe:Fe,1);ee[de]=xe.length/Ye}return new w(this.type,xe,ee)}neg_(){const ee=this.data;for(let de=0;deee?1:0;return new w("bool",de,this.dims)}lt(ee){const de=new Uint8Array(this.data.length),xe=this.data;for(let Ye=0;YeMath.min(qe,pA),this,ee,de,1/0);return new w(xe,Ye,Fe)}max(ee=null,de=!1){if(ee===null){const qe=(0,g.max)(this.data)[0];return new w(this.type,[qe],[])}const[xe,Ye,Fe]=y((qe,pA)=>Math.max(qe,pA),this,ee,de,-1/0);return new w(xe,Ye,Fe)}argmin(ee=null,de=!1){if(ee!==null)throw new Error("`dim !== null` not yet implemented.");const xe=(0,g.min)(this.data)[1];return new w("int64",[BigInt(xe)],[])}argmax(ee=null,de=!1){if(ee!==null)throw new Error("`dim !== null` not yet implemented.");const xe=(0,g.max)(this.data)[1];return new w("int64",[BigInt(xe)],[])}to(ee){if(this.type===ee)return this;if(!C.hasOwnProperty(ee))throw new Error(`Unsupported type: ${ee}`);let de;const xe=["int64","uint64"].includes(this.type),Ye=["int64","uint64"].includes(ee);return xe&&!Ye?de=Number:!xe&&Ye&&(de=BigInt),new w(ee,C[ee].from(this.data,de),this.dims)}}function E(ue,ee){const de=ue.length,xe=ee.reduce((Fe,qe)=>Fe*qe);if(de!==xe)throw Error(`cannot reshape array of size ${de} into shape (${ee})`);let Ye=ue;for(let Fe=ee.length-1;Fe>=0;Fe--)Ye=Ye.reduce((qe,pA)=>{let MA=qe[qe.length-1];return MA.lengthnew w("int64",ue,[ue.length]);async function K(ue,ee,de,xe,Ye){return await(await h.TensorOpRegistry.slice)({x:ue,s:R(ee),e:R(de),a:R(xe),t:R(Ye??new Array(xe.length).fill(1))})}function L(ue,ee){const de=ue.data,xe=ee.data,Ye=[ue.dims[0],ue.dims[2]],Fe=new de.constructor(Ye[0]*Ye[1]),[qe,pA,MA]=ue.dims;let Le=0;for(let fe=0;fede!==1):typeof ee=="number"?ue[ee]===1&&ue.splice(ee,1):Array.isArray(ee)&&(ue=ue.filter((de,xe)=>de!==1||!ee.includes(xe))),ue}function d(ue,ee){return ee=k(ee,ue.length+1),ue=ue.slice(),ue.splice(ee,0,1),ue}function k(ue,ee,de=null,xe=!0){if(ue<-ee||ue>=ee){if(xe)throw new Error(`IndexError: index ${ue} is out of bounds for dimension${de===null?"":" "+de} with size ${ee}`);return ue<-ee?0:ee}return ue<0&&(ue=(ue%ee+ee)%ee),ue}function e(ue,ee=0){ee=k(ee,ue[0].dims.length);const de=ue[0].dims.slice();de[ee]=ue.reduce((qe,pA)=>qe+pA.dims[ee],0);const xe=de.reduce((qe,pA)=>qe*pA,1),Ye=new ue[0].data.constructor(xe),Fe=ue[0].type;if(ee===0){let qe=0;for(const pA of ue){const MA=pA.data;Ye.set(MA,qe),qe+=MA.length}}else{let qe=0;for(let pA=0;pA=0;--ge){const sA=Le[ge];let AA=Ke%sA;ge===ee&&(AA+=qe),ye+=AA*Ue,Ue*=de[ge],Ke=Math.floor(Ke/sA)}Ye[ye]=MA[fe]}qe+=Le[ee]}}return new w(Fe,Ye,de)}function u(ue,ee=0){return e(ue.map(de=>de.unsqueeze(ee)),ee)}function y(ue,ee,de=null,xe=!1,Ye=null){const Fe=ee.data,qe=ee.dims;de=k(de,qe.length);const pA=qe.slice();pA[de]=1;const MA=new Fe.constructor(Fe.length/qe[de]);Ye!==null&&MA.fill(Ye);for(let Le=0;Le=0;--ye){const Ue=qe[ye];if(ye!==de){const sA=ge%Ue;fe+=sA*Ke,Ke*=pA[ye]}ge=Math.floor(ge/Ue)}MA[fe]=ue(MA[fe],Fe[Le],Le,fe)}return xe||pA.splice(de,1),[ee.type,MA,pA]}function $(ue,ee=null,de=1,xe=!1){const Ye=ue.data,Fe=ue.dims;if(ee===null){const Ke=Ye.reduce((H,oA)=>H+oA,0)/Ye.length,Ue=Math.sqrt(Ye.reduce((H,oA)=>H+(oA-Ke)**2,0)/(Ye.length-de)),sA=new w(ue.type,[Ke],[]);return[new w(ue.type,[Ue],[]),sA]}ee=k(ee,Fe.length);const qe=T(ue,ee,xe),pA=qe.data,[MA,Le,fe]=y((ge,Ke,Ue,sA)=>ge+(Ke-pA[sA])**2,ue,ee,xe);for(let ge=0;geLe+fe,0);return new w(ue.type,[MA/Ye.length],[])}ee=k(ee,xe.length);const[Fe,qe,pA]=y((MA,Le)=>MA+Le,ue,ee,de);if(xe[ee]!==1)for(let MA=0;MA=0;--de)ee[de]=xe,xe*=ue[de];return ee}function Ce(ue,ee,de,xe){const Ye=ue.reduce((Fe,qe)=>Fe*qe,1);return new w(de,new xe(Ye).fill(ee),ue)}function Ae(ue,ee){let de,xe;if(typeof ee=="number")de="float32",xe=Float32Array;else if(typeof ee=="bigint")de="int64",xe=BigInt64Array;else if(typeof ee=="boolean")de="bool",xe=Uint8Array;else throw new Error(`Unsupported data type: ${typeof ee}`);return Ce(ue,ee,de,xe)}function be(ue,ee){return Ae(ue.dims,ee)}function he(ue){return Ce(ue,1n,"int64",BigInt64Array)}function Ee(ue){return he(ue.dims)}function ke(ue){return Ce(ue,0n,"int64",BigInt64Array)}function De(ue){return ke(ue.dims)}function Re(ue){const ee=ue.reduce((de,xe)=>de*xe,1);return new w("float32",Float32Array.from({length:ee},()=>Math.random()),ue)}function Qe(ue,ee){if(ue.dims.length!==2)throw new Error("The tensor must have 2 dimensions");if(ue.dims.at(-1)%8!==0)throw new Error("The last dimension of the tensor must be a multiple of 8");if(!["binary","ubinary"].includes(ee))throw new Error("The precision must be either 'binary' or 'ubinary'");const de=ee==="binary",xe=de?"int8":"uint8",Ye=de?Int8Array:Uint8Array,Fe=ue.data,qe=new Ye(Fe.length/8);for(let pA=0;pA0?1:0,Le=Math.floor(pA/8),fe=pA%8;qe[Le]|=MA<<7-fe,de&&fe===0&&(qe[Le]-=128)}return new w(xe,qe,[ue.dims[0],ue.dims[1]/8])}},"./src/utils/video.js":(a,n,i)=>{i.r(n),i.d(n,{RawVideo:()=>C,RawVideoFrame:()=>h,load_video:()=>w});var g=i("./src/utils/image.js"),p=i("./src/env.js");class h{constructor(v,D){this.image=v,this.timestamp=D}}class C{constructor(v,D){v.length>0&&v[0]instanceof g.RawImage&&(v=v.map((B,x)=>new h(B,(x+1)/(v.length+1)*D))),this.frames=v,this.duration=D}get width(){return this.frames[0].image.width}get height(){return this.frames[0].image.height}get fps(){return this.frames.length/this.duration}}async function w(E,{num_frames:v=null,fps:D=null}={}){if(!p.apis.IS_BROWSER_ENV)throw new Error("`load_video` is currently only supported in browser environments.");if(v==null&&D==null)throw new Error("Either num_frames or fps must be provided.");const B=[],x=document.createElement("video");if(x.crossOrigin="anonymous",x.muted=!0,typeof E=="string")x.src=E;else if(E instanceof Blob)x.src=URL.createObjectURL(E);else if(E instanceof HTMLVideoElement)x.src=E.src;else throw new Error("Invalid URL or video element provided.");if(await new Promise(V=>x.onloadedmetadata=V),x.seekable.start(0)===x.seekable.end(0)){const d=await(await fetch(x.src)).blob();x.src=URL.createObjectURL(d),await new Promise(k=>x.onloadedmetadata=k)}const S=x.duration;let F,R;v!=null?(F=v,R=v===1?0:S/(v-1)):(R=1/D,F=Math.floor(S/R));let K=[];for(let V=0;V{x.onseeked=u}),N.drawImage(x,0,0,L.width,L.height);const d=N.getImageData(0,0,L.width,L.height),k=new g.RawImage(d.data,L.width,L.height,4),e=new h(k,V);B.push(e)}return x.remove(),new C(B,S)}}},dm={};function Kt(a){var n=dm[a];if(n!==void 0)return n.exports;var i=dm[a]={exports:{}};return SI[a](i,i.exports,Kt),i.exports}(()=>{var a=Object.getPrototypeOf?i=>Object.getPrototypeOf(i):i=>i.__proto__,n;Kt.t=function(i,g){if(g&1&&(i=this(i)),g&8||typeof i=="object"&&i&&(g&4&&i.__esModule||g&16&&typeof i.then=="function"))return i;var p=Object.create(null);Kt.r(p);var h={};n=n||[null,a({}),a([]),a(a)];for(var C=g&2&&i;typeof C=="object"&&!~n.indexOf(C);C=a(C))Object.getOwnPropertyNames(C).forEach(w=>h[w]=()=>i[w]);return h.default=()=>i,Kt.d(p,h),p}})();Kt.d=(a,n)=>{for(var i in n)Kt.o(n,i)&&!Kt.o(a,i)&&Object.defineProperty(a,i,{enumerable:!0,get:n[i]})};Kt.o=(a,n)=>Object.prototype.hasOwnProperty.call(a,n);Kt.r=a=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})};var Q={};(()=>{/*!*****************************!*\ + !*** ./src/transformers.js ***! + \*****************************/Kt.r(Q),Kt.d(Q,{ASTFeatureExtractor:()=>B.ASTFeatureExtractor,ASTForAudioClassification:()=>i.ASTForAudioClassification,ASTModel:()=>i.ASTModel,ASTPreTrainedModel:()=>i.ASTPreTrainedModel,AlbertForMaskedLM:()=>i.AlbertForMaskedLM,AlbertForQuestionAnswering:()=>i.AlbertForQuestionAnswering,AlbertForSequenceClassification:()=>i.AlbertForSequenceClassification,AlbertModel:()=>i.AlbertModel,AlbertPreTrainedModel:()=>i.AlbertPreTrainedModel,AlbertTokenizer:()=>g.AlbertTokenizer,AudioClassificationPipeline:()=>n.AudioClassificationPipeline,AutoConfig:()=>p.AutoConfig,AutoFeatureExtractor:()=>x.AutoFeatureExtractor,AutoImageProcessor:()=>R.AutoImageProcessor,AutoModel:()=>i.AutoModel,AutoModelForAudioClassification:()=>i.AutoModelForAudioClassification,AutoModelForAudioFrameClassification:()=>i.AutoModelForAudioFrameClassification,AutoModelForAudioTextToText:()=>i.AutoModelForAudioTextToText,AutoModelForCTC:()=>i.AutoModelForCTC,AutoModelForCausalLM:()=>i.AutoModelForCausalLM,AutoModelForDepthEstimation:()=>i.AutoModelForDepthEstimation,AutoModelForDocumentQuestionAnswering:()=>i.AutoModelForDocumentQuestionAnswering,AutoModelForImageClassification:()=>i.AutoModelForImageClassification,AutoModelForImageFeatureExtraction:()=>i.AutoModelForImageFeatureExtraction,AutoModelForImageMatting:()=>i.AutoModelForImageMatting,AutoModelForImageSegmentation:()=>i.AutoModelForImageSegmentation,AutoModelForImageTextToText:()=>i.AutoModelForImageTextToText,AutoModelForImageToImage:()=>i.AutoModelForImageToImage,AutoModelForMaskGeneration:()=>i.AutoModelForMaskGeneration,AutoModelForMaskedLM:()=>i.AutoModelForMaskedLM,AutoModelForNormalEstimation:()=>i.AutoModelForNormalEstimation,AutoModelForObjectDetection:()=>i.AutoModelForObjectDetection,AutoModelForPoseEstimation:()=>i.AutoModelForPoseEstimation,AutoModelForQuestionAnswering:()=>i.AutoModelForQuestionAnswering,AutoModelForSemanticSegmentation:()=>i.AutoModelForSemanticSegmentation,AutoModelForSeq2SeqLM:()=>i.AutoModelForSeq2SeqLM,AutoModelForSequenceClassification:()=>i.AutoModelForSequenceClassification,AutoModelForSpeechSeq2Seq:()=>i.AutoModelForSpeechSeq2Seq,AutoModelForTextToSpectrogram:()=>i.AutoModelForTextToSpectrogram,AutoModelForTextToWaveform:()=>i.AutoModelForTextToWaveform,AutoModelForTokenClassification:()=>i.AutoModelForTokenClassification,AutoModelForUniversalSegmentation:()=>i.AutoModelForUniversalSegmentation,AutoModelForVision2Seq:()=>i.AutoModelForVision2Seq,AutoModelForXVector:()=>i.AutoModelForXVector,AutoModelForZeroShotObjectDetection:()=>i.AutoModelForZeroShotObjectDetection,AutoProcessor:()=>N.AutoProcessor,AutoTokenizer:()=>g.AutoTokenizer,AutomaticSpeechRecognitionPipeline:()=>n.AutomaticSpeechRecognitionPipeline,BackgroundRemovalPipeline:()=>n.BackgroundRemovalPipeline,BartForConditionalGeneration:()=>i.BartForConditionalGeneration,BartForSequenceClassification:()=>i.BartForSequenceClassification,BartModel:()=>i.BartModel,BartPretrainedModel:()=>i.BartPretrainedModel,BartTokenizer:()=>g.BartTokenizer,BaseModelOutput:()=>i.BaseModelOutput,BaseStreamer:()=>V.BaseStreamer,BeitFeatureExtractor:()=>F.BeitFeatureExtractor,BeitForImageClassification:()=>i.BeitForImageClassification,BeitModel:()=>i.BeitModel,BeitPreTrainedModel:()=>i.BeitPreTrainedModel,BertForMaskedLM:()=>i.BertForMaskedLM,BertForQuestionAnswering:()=>i.BertForQuestionAnswering,BertForSequenceClassification:()=>i.BertForSequenceClassification,BertForTokenClassification:()=>i.BertForTokenClassification,BertModel:()=>i.BertModel,BertPreTrainedModel:()=>i.BertPreTrainedModel,BertTokenizer:()=>g.BertTokenizer,BitImageProcessor:()=>F.BitImageProcessor,BlenderbotForConditionalGeneration:()=>i.BlenderbotForConditionalGeneration,BlenderbotModel:()=>i.BlenderbotModel,BlenderbotPreTrainedModel:()=>i.BlenderbotPreTrainedModel,BlenderbotSmallForConditionalGeneration:()=>i.BlenderbotSmallForConditionalGeneration,BlenderbotSmallModel:()=>i.BlenderbotSmallModel,BlenderbotSmallPreTrainedModel:()=>i.BlenderbotSmallPreTrainedModel,BlenderbotSmallTokenizer:()=>g.BlenderbotSmallTokenizer,BlenderbotTokenizer:()=>g.BlenderbotTokenizer,BloomForCausalLM:()=>i.BloomForCausalLM,BloomModel:()=>i.BloomModel,BloomPreTrainedModel:()=>i.BloomPreTrainedModel,BloomTokenizer:()=>g.BloomTokenizer,CLIPFeatureExtractor:()=>F.CLIPFeatureExtractor,CLIPImageProcessor:()=>F.CLIPImageProcessor,CLIPModel:()=>i.CLIPModel,CLIPPreTrainedModel:()=>i.CLIPPreTrainedModel,CLIPSegForImageSegmentation:()=>i.CLIPSegForImageSegmentation,CLIPSegModel:()=>i.CLIPSegModel,CLIPSegPreTrainedModel:()=>i.CLIPSegPreTrainedModel,CLIPTextModel:()=>i.CLIPTextModel,CLIPTextModelWithProjection:()=>i.CLIPTextModelWithProjection,CLIPTokenizer:()=>g.CLIPTokenizer,CLIPVisionModel:()=>i.CLIPVisionModel,CLIPVisionModelWithProjection:()=>i.CLIPVisionModelWithProjection,CamembertForMaskedLM:()=>i.CamembertForMaskedLM,CamembertForQuestionAnswering:()=>i.CamembertForQuestionAnswering,CamembertForSequenceClassification:()=>i.CamembertForSequenceClassification,CamembertForTokenClassification:()=>i.CamembertForTokenClassification,CamembertModel:()=>i.CamembertModel,CamembertPreTrainedModel:()=>i.CamembertPreTrainedModel,CamembertTokenizer:()=>g.CamembertTokenizer,CausalLMOutput:()=>i.CausalLMOutput,CausalLMOutputWithPast:()=>i.CausalLMOutputWithPast,ChineseCLIPFeatureExtractor:()=>F.ChineseCLIPFeatureExtractor,ChineseCLIPModel:()=>i.ChineseCLIPModel,ChineseCLIPPreTrainedModel:()=>i.ChineseCLIPPreTrainedModel,ClapAudioModelWithProjection:()=>i.ClapAudioModelWithProjection,ClapFeatureExtractor:()=>B.ClapFeatureExtractor,ClapModel:()=>i.ClapModel,ClapPreTrainedModel:()=>i.ClapPreTrainedModel,ClapTextModelWithProjection:()=>i.ClapTextModelWithProjection,ClassifierFreeGuidanceLogitsProcessor:()=>k.ClassifierFreeGuidanceLogitsProcessor,CodeGenForCausalLM:()=>i.CodeGenForCausalLM,CodeGenModel:()=>i.CodeGenModel,CodeGenPreTrainedModel:()=>i.CodeGenPreTrainedModel,CodeGenTokenizer:()=>g.CodeGenTokenizer,CodeLlamaTokenizer:()=>g.CodeLlamaTokenizer,CohereForCausalLM:()=>i.CohereForCausalLM,CohereModel:()=>i.CohereModel,CoherePreTrainedModel:()=>i.CoherePreTrainedModel,CohereTokenizer:()=>g.CohereTokenizer,ConvBertForMaskedLM:()=>i.ConvBertForMaskedLM,ConvBertForQuestionAnswering:()=>i.ConvBertForQuestionAnswering,ConvBertForSequenceClassification:()=>i.ConvBertForSequenceClassification,ConvBertForTokenClassification:()=>i.ConvBertForTokenClassification,ConvBertModel:()=>i.ConvBertModel,ConvBertPreTrainedModel:()=>i.ConvBertPreTrainedModel,ConvBertTokenizer:()=>g.ConvBertTokenizer,ConvNextFeatureExtractor:()=>F.ConvNextFeatureExtractor,ConvNextForImageClassification:()=>i.ConvNextForImageClassification,ConvNextImageProcessor:()=>F.ConvNextImageProcessor,ConvNextModel:()=>i.ConvNextModel,ConvNextPreTrainedModel:()=>i.ConvNextPreTrainedModel,ConvNextV2ForImageClassification:()=>i.ConvNextV2ForImageClassification,ConvNextV2Model:()=>i.ConvNextV2Model,ConvNextV2PreTrainedModel:()=>i.ConvNextV2PreTrainedModel,DFineForObjectDetection:()=>i.DFineForObjectDetection,DFineModel:()=>i.DFineModel,DFinePreTrainedModel:()=>i.DFinePreTrainedModel,DPTFeatureExtractor:()=>F.DPTFeatureExtractor,DPTForDepthEstimation:()=>i.DPTForDepthEstimation,DPTImageProcessor:()=>F.DPTImageProcessor,DPTModel:()=>i.DPTModel,DPTPreTrainedModel:()=>i.DPTPreTrainedModel,DacDecoderModel:()=>i.DacDecoderModel,DacDecoderOutput:()=>i.DacDecoderOutput,DacEncoderModel:()=>i.DacEncoderModel,DacEncoderOutput:()=>i.DacEncoderOutput,DacFeatureExtractor:()=>B.DacFeatureExtractor,DacModel:()=>i.DacModel,DacPreTrainedModel:()=>i.DacPreTrainedModel,DataTypeMap:()=>E.DataTypeMap,DebertaForMaskedLM:()=>i.DebertaForMaskedLM,DebertaForQuestionAnswering:()=>i.DebertaForQuestionAnswering,DebertaForSequenceClassification:()=>i.DebertaForSequenceClassification,DebertaForTokenClassification:()=>i.DebertaForTokenClassification,DebertaModel:()=>i.DebertaModel,DebertaPreTrainedModel:()=>i.DebertaPreTrainedModel,DebertaTokenizer:()=>g.DebertaTokenizer,DebertaV2ForMaskedLM:()=>i.DebertaV2ForMaskedLM,DebertaV2ForQuestionAnswering:()=>i.DebertaV2ForQuestionAnswering,DebertaV2ForSequenceClassification:()=>i.DebertaV2ForSequenceClassification,DebertaV2ForTokenClassification:()=>i.DebertaV2ForTokenClassification,DebertaV2Model:()=>i.DebertaV2Model,DebertaV2PreTrainedModel:()=>i.DebertaV2PreTrainedModel,DebertaV2Tokenizer:()=>g.DebertaV2Tokenizer,DecisionTransformerModel:()=>i.DecisionTransformerModel,DecisionTransformerPreTrainedModel:()=>i.DecisionTransformerPreTrainedModel,DeiTFeatureExtractor:()=>F.DeiTFeatureExtractor,DeiTForImageClassification:()=>i.DeiTForImageClassification,DeiTImageProcessor:()=>F.DeiTImageProcessor,DeiTModel:()=>i.DeiTModel,DeiTPreTrainedModel:()=>i.DeiTPreTrainedModel,DepthAnythingForDepthEstimation:()=>i.DepthAnythingForDepthEstimation,DepthAnythingPreTrainedModel:()=>i.DepthAnythingPreTrainedModel,DepthEstimationPipeline:()=>n.DepthEstimationPipeline,DepthProForDepthEstimation:()=>i.DepthProForDepthEstimation,DepthProPreTrainedModel:()=>i.DepthProPreTrainedModel,DetrFeatureExtractor:()=>F.DetrFeatureExtractor,DetrForObjectDetection:()=>i.DetrForObjectDetection,DetrForSegmentation:()=>i.DetrForSegmentation,DetrImageProcessor:()=>F.DetrImageProcessor,DetrModel:()=>i.DetrModel,DetrObjectDetectionOutput:()=>i.DetrObjectDetectionOutput,DetrPreTrainedModel:()=>i.DetrPreTrainedModel,DetrSegmentationOutput:()=>i.DetrSegmentationOutput,Dinov2ForImageClassification:()=>i.Dinov2ForImageClassification,Dinov2Model:()=>i.Dinov2Model,Dinov2PreTrainedModel:()=>i.Dinov2PreTrainedModel,Dinov2WithRegistersForImageClassification:()=>i.Dinov2WithRegistersForImageClassification,Dinov2WithRegistersModel:()=>i.Dinov2WithRegistersModel,Dinov2WithRegistersPreTrainedModel:()=>i.Dinov2WithRegistersPreTrainedModel,DistilBertForMaskedLM:()=>i.DistilBertForMaskedLM,DistilBertForQuestionAnswering:()=>i.DistilBertForQuestionAnswering,DistilBertForSequenceClassification:()=>i.DistilBertForSequenceClassification,DistilBertForTokenClassification:()=>i.DistilBertForTokenClassification,DistilBertModel:()=>i.DistilBertModel,DistilBertPreTrainedModel:()=>i.DistilBertPreTrainedModel,DistilBertTokenizer:()=>g.DistilBertTokenizer,DocumentQuestionAnsweringPipeline:()=>n.DocumentQuestionAnsweringPipeline,DonutFeatureExtractor:()=>F.DonutFeatureExtractor,DonutImageProcessor:()=>F.DonutImageProcessor,DonutSwinModel:()=>i.DonutSwinModel,DonutSwinPreTrainedModel:()=>i.DonutSwinPreTrainedModel,EfficientNetForImageClassification:()=>i.EfficientNetForImageClassification,EfficientNetImageProcessor:()=>F.EfficientNetImageProcessor,EfficientNetModel:()=>i.EfficientNetModel,EfficientNetPreTrainedModel:()=>i.EfficientNetPreTrainedModel,ElectraForMaskedLM:()=>i.ElectraForMaskedLM,ElectraForQuestionAnswering:()=>i.ElectraForQuestionAnswering,ElectraForSequenceClassification:()=>i.ElectraForSequenceClassification,ElectraForTokenClassification:()=>i.ElectraForTokenClassification,ElectraModel:()=>i.ElectraModel,ElectraPreTrainedModel:()=>i.ElectraPreTrainedModel,ElectraTokenizer:()=>g.ElectraTokenizer,EncodecFeatureExtractor:()=>B.EncodecFeatureExtractor,EosTokenCriteria:()=>d.EosTokenCriteria,EsmForMaskedLM:()=>i.EsmForMaskedLM,EsmForSequenceClassification:()=>i.EsmForSequenceClassification,EsmForTokenClassification:()=>i.EsmForTokenClassification,EsmModel:()=>i.EsmModel,EsmPreTrainedModel:()=>i.EsmPreTrainedModel,EsmTokenizer:()=>g.EsmTokenizer,ExaoneForCausalLM:()=>i.ExaoneForCausalLM,ExaoneModel:()=>i.ExaoneModel,ExaonePreTrainedModel:()=>i.ExaonePreTrainedModel,FFT:()=>v.FFT,FalconForCausalLM:()=>i.FalconForCausalLM,FalconModel:()=>i.FalconModel,FalconPreTrainedModel:()=>i.FalconPreTrainedModel,FalconTokenizer:()=>g.FalconTokenizer,FastViTForImageClassification:()=>i.FastViTForImageClassification,FastViTModel:()=>i.FastViTModel,FastViTPreTrainedModel:()=>i.FastViTPreTrainedModel,FeatureExtractionPipeline:()=>n.FeatureExtractionPipeline,FeatureExtractor:()=>D.FeatureExtractor,FillMaskPipeline:()=>n.FillMaskPipeline,Florence2ForConditionalGeneration:()=>i.Florence2ForConditionalGeneration,Florence2PreTrainedModel:()=>i.Florence2PreTrainedModel,Florence2Processor:()=>L.Florence2Processor,ForcedBOSTokenLogitsProcessor:()=>k.ForcedBOSTokenLogitsProcessor,ForcedEOSTokenLogitsProcessor:()=>k.ForcedEOSTokenLogitsProcessor,GLPNFeatureExtractor:()=>F.GLPNFeatureExtractor,GLPNForDepthEstimation:()=>i.GLPNForDepthEstimation,GLPNModel:()=>i.GLPNModel,GLPNPreTrainedModel:()=>i.GLPNPreTrainedModel,GPT2LMHeadModel:()=>i.GPT2LMHeadModel,GPT2Model:()=>i.GPT2Model,GPT2PreTrainedModel:()=>i.GPT2PreTrainedModel,GPT2Tokenizer:()=>g.GPT2Tokenizer,GPTBigCodeForCausalLM:()=>i.GPTBigCodeForCausalLM,GPTBigCodeModel:()=>i.GPTBigCodeModel,GPTBigCodePreTrainedModel:()=>i.GPTBigCodePreTrainedModel,GPTJForCausalLM:()=>i.GPTJForCausalLM,GPTJModel:()=>i.GPTJModel,GPTJPreTrainedModel:()=>i.GPTJPreTrainedModel,GPTNeoForCausalLM:()=>i.GPTNeoForCausalLM,GPTNeoModel:()=>i.GPTNeoModel,GPTNeoPreTrainedModel:()=>i.GPTNeoPreTrainedModel,GPTNeoXForCausalLM:()=>i.GPTNeoXForCausalLM,GPTNeoXModel:()=>i.GPTNeoXModel,GPTNeoXPreTrainedModel:()=>i.GPTNeoXPreTrainedModel,GPTNeoXTokenizer:()=>g.GPTNeoXTokenizer,Gemma2ForCausalLM:()=>i.Gemma2ForCausalLM,Gemma2Model:()=>i.Gemma2Model,Gemma2PreTrainedModel:()=>i.Gemma2PreTrainedModel,Gemma3ForCausalLM:()=>i.Gemma3ForCausalLM,Gemma3Model:()=>i.Gemma3Model,Gemma3PreTrainedModel:()=>i.Gemma3PreTrainedModel,GemmaForCausalLM:()=>i.GemmaForCausalLM,GemmaModel:()=>i.GemmaModel,GemmaPreTrainedModel:()=>i.GemmaPreTrainedModel,GemmaTokenizer:()=>g.GemmaTokenizer,GlmForCausalLM:()=>i.GlmForCausalLM,GlmModel:()=>i.GlmModel,GlmPreTrainedModel:()=>i.GlmPreTrainedModel,GraniteForCausalLM:()=>i.GraniteForCausalLM,GraniteModel:()=>i.GraniteModel,GranitePreTrainedModel:()=>i.GranitePreTrainedModel,Grok1Tokenizer:()=>g.Grok1Tokenizer,GroundingDinoForObjectDetection:()=>i.GroundingDinoForObjectDetection,GroundingDinoImageProcessor:()=>F.GroundingDinoImageProcessor,GroundingDinoPreTrainedModel:()=>i.GroundingDinoPreTrainedModel,GroundingDinoProcessor:()=>L.GroundingDinoProcessor,GroupViTModel:()=>i.GroupViTModel,GroupViTPreTrainedModel:()=>i.GroupViTPreTrainedModel,HeliumForCausalLM:()=>i.HeliumForCausalLM,HeliumModel:()=>i.HeliumModel,HeliumPreTrainedModel:()=>i.HeliumPreTrainedModel,HerbertTokenizer:()=>g.HerbertTokenizer,HieraForImageClassification:()=>i.HieraForImageClassification,HieraModel:()=>i.HieraModel,HieraPreTrainedModel:()=>i.HieraPreTrainedModel,HubertForCTC:()=>i.HubertForCTC,HubertForSequenceClassification:()=>i.HubertForSequenceClassification,HubertModel:()=>i.HubertModel,HubertPreTrainedModel:()=>i.HubertPreTrainedModel,IJepaForImageClassification:()=>i.IJepaForImageClassification,IJepaModel:()=>i.IJepaModel,IJepaPreTrainedModel:()=>i.IJepaPreTrainedModel,Idefics3ForConditionalGeneration:()=>i.Idefics3ForConditionalGeneration,Idefics3ImageProcessor:()=>F.Idefics3ImageProcessor,Idefics3PreTrainedModel:()=>i.Idefics3PreTrainedModel,Idefics3Processor:()=>L.Idefics3Processor,ImageClassificationPipeline:()=>n.ImageClassificationPipeline,ImageFeatureExtractionPipeline:()=>n.ImageFeatureExtractionPipeline,ImageFeatureExtractor:()=>B.ImageFeatureExtractor,ImageMattingOutput:()=>i.ImageMattingOutput,ImageProcessor:()=>S.ImageProcessor,ImageSegmentationPipeline:()=>n.ImageSegmentationPipeline,ImageToImagePipeline:()=>n.ImageToImagePipeline,ImageToTextPipeline:()=>n.ImageToTextPipeline,InterruptableStoppingCriteria:()=>d.InterruptableStoppingCriteria,JAISLMHeadModel:()=>i.JAISLMHeadModel,JAISModel:()=>i.JAISModel,JAISPreTrainedModel:()=>i.JAISPreTrainedModel,JinaCLIPImageProcessor:()=>F.JinaCLIPImageProcessor,JinaCLIPModel:()=>i.JinaCLIPModel,JinaCLIPPreTrainedModel:()=>i.JinaCLIPPreTrainedModel,JinaCLIPProcessor:()=>L.JinaCLIPProcessor,JinaCLIPTextModel:()=>i.JinaCLIPTextModel,JinaCLIPVisionModel:()=>i.JinaCLIPVisionModel,LiteWhisperForConditionalGeneration:()=>i.LiteWhisperForConditionalGeneration,LlamaForCausalLM:()=>i.LlamaForCausalLM,LlamaModel:()=>i.LlamaModel,LlamaPreTrainedModel:()=>i.LlamaPreTrainedModel,LlamaTokenizer:()=>g.LlamaTokenizer,LlavaForConditionalGeneration:()=>i.LlavaForConditionalGeneration,LlavaOnevisionForConditionalGeneration:()=>i.LlavaOnevisionForConditionalGeneration,LlavaOnevisionImageProcessor:()=>F.LlavaOnevisionImageProcessor,LlavaPreTrainedModel:()=>i.LlavaPreTrainedModel,LogitsProcessor:()=>k.LogitsProcessor,LogitsProcessorList:()=>k.LogitsProcessorList,LogitsWarper:()=>k.LogitsWarper,LongT5ForConditionalGeneration:()=>i.LongT5ForConditionalGeneration,LongT5Model:()=>i.LongT5Model,LongT5PreTrainedModel:()=>i.LongT5PreTrainedModel,M2M100ForConditionalGeneration:()=>i.M2M100ForConditionalGeneration,M2M100Model:()=>i.M2M100Model,M2M100PreTrainedModel:()=>i.M2M100PreTrainedModel,M2M100Tokenizer:()=>g.M2M100Tokenizer,MBart50Tokenizer:()=>g.MBart50Tokenizer,MBartForCausalLM:()=>i.MBartForCausalLM,MBartForConditionalGeneration:()=>i.MBartForConditionalGeneration,MBartForSequenceClassification:()=>i.MBartForSequenceClassification,MBartModel:()=>i.MBartModel,MBartPreTrainedModel:()=>i.MBartPreTrainedModel,MBartTokenizer:()=>g.MBartTokenizer,MPNetForMaskedLM:()=>i.MPNetForMaskedLM,MPNetForQuestionAnswering:()=>i.MPNetForQuestionAnswering,MPNetForSequenceClassification:()=>i.MPNetForSequenceClassification,MPNetForTokenClassification:()=>i.MPNetForTokenClassification,MPNetModel:()=>i.MPNetModel,MPNetPreTrainedModel:()=>i.MPNetPreTrainedModel,MPNetTokenizer:()=>g.MPNetTokenizer,MT5ForConditionalGeneration:()=>i.MT5ForConditionalGeneration,MT5Model:()=>i.MT5Model,MT5PreTrainedModel:()=>i.MT5PreTrainedModel,MarianMTModel:()=>i.MarianMTModel,MarianModel:()=>i.MarianModel,MarianPreTrainedModel:()=>i.MarianPreTrainedModel,MarianTokenizer:()=>g.MarianTokenizer,Mask2FormerImageProcessor:()=>F.Mask2FormerImageProcessor,MaskFormerFeatureExtractor:()=>F.MaskFormerFeatureExtractor,MaskFormerForInstanceSegmentation:()=>i.MaskFormerForInstanceSegmentation,MaskFormerImageProcessor:()=>F.MaskFormerImageProcessor,MaskFormerModel:()=>i.MaskFormerModel,MaskFormerPreTrainedModel:()=>i.MaskFormerPreTrainedModel,MaskedLMOutput:()=>i.MaskedLMOutput,MaxLengthCriteria:()=>d.MaxLengthCriteria,Metric3DForDepthEstimation:()=>i.Metric3DForDepthEstimation,Metric3DPreTrainedModel:()=>i.Metric3DPreTrainedModel,Metric3Dv2ForDepthEstimation:()=>i.Metric3Dv2ForDepthEstimation,Metric3Dv2PreTrainedModel:()=>i.Metric3Dv2PreTrainedModel,MgpstrForSceneTextRecognition:()=>i.MgpstrForSceneTextRecognition,MgpstrModelOutput:()=>i.MgpstrModelOutput,MgpstrPreTrainedModel:()=>i.MgpstrPreTrainedModel,MgpstrProcessor:()=>L.MgpstrProcessor,MgpstrTokenizer:()=>g.MgpstrTokenizer,MimiDecoderModel:()=>i.MimiDecoderModel,MimiDecoderOutput:()=>i.MimiDecoderOutput,MimiEncoderModel:()=>i.MimiEncoderModel,MimiEncoderOutput:()=>i.MimiEncoderOutput,MimiModel:()=>i.MimiModel,MimiPreTrainedModel:()=>i.MimiPreTrainedModel,MinLengthLogitsProcessor:()=>k.MinLengthLogitsProcessor,MinNewTokensLengthLogitsProcessor:()=>k.MinNewTokensLengthLogitsProcessor,MistralForCausalLM:()=>i.MistralForCausalLM,MistralModel:()=>i.MistralModel,MistralPreTrainedModel:()=>i.MistralPreTrainedModel,MobileBertForMaskedLM:()=>i.MobileBertForMaskedLM,MobileBertForQuestionAnswering:()=>i.MobileBertForQuestionAnswering,MobileBertForSequenceClassification:()=>i.MobileBertForSequenceClassification,MobileBertModel:()=>i.MobileBertModel,MobileBertPreTrainedModel:()=>i.MobileBertPreTrainedModel,MobileBertTokenizer:()=>g.MobileBertTokenizer,MobileLLMForCausalLM:()=>i.MobileLLMForCausalLM,MobileLLMModel:()=>i.MobileLLMModel,MobileLLMPreTrainedModel:()=>i.MobileLLMPreTrainedModel,MobileNetV1FeatureExtractor:()=>F.MobileNetV1FeatureExtractor,MobileNetV1ForImageClassification:()=>i.MobileNetV1ForImageClassification,MobileNetV1ForSemanticSegmentation:()=>i.MobileNetV1ForSemanticSegmentation,MobileNetV1ImageProcessor:()=>F.MobileNetV1ImageProcessor,MobileNetV1Model:()=>i.MobileNetV1Model,MobileNetV1PreTrainedModel:()=>i.MobileNetV1PreTrainedModel,MobileNetV2FeatureExtractor:()=>F.MobileNetV2FeatureExtractor,MobileNetV2ForImageClassification:()=>i.MobileNetV2ForImageClassification,MobileNetV2ForSemanticSegmentation:()=>i.MobileNetV2ForSemanticSegmentation,MobileNetV2ImageProcessor:()=>F.MobileNetV2ImageProcessor,MobileNetV2Model:()=>i.MobileNetV2Model,MobileNetV2PreTrainedModel:()=>i.MobileNetV2PreTrainedModel,MobileNetV3FeatureExtractor:()=>F.MobileNetV3FeatureExtractor,MobileNetV3ForImageClassification:()=>i.MobileNetV3ForImageClassification,MobileNetV3ForSemanticSegmentation:()=>i.MobileNetV3ForSemanticSegmentation,MobileNetV3ImageProcessor:()=>F.MobileNetV3ImageProcessor,MobileNetV3Model:()=>i.MobileNetV3Model,MobileNetV3PreTrainedModel:()=>i.MobileNetV3PreTrainedModel,MobileNetV4FeatureExtractor:()=>F.MobileNetV4FeatureExtractor,MobileNetV4ForImageClassification:()=>i.MobileNetV4ForImageClassification,MobileNetV4ForSemanticSegmentation:()=>i.MobileNetV4ForSemanticSegmentation,MobileNetV4ImageProcessor:()=>F.MobileNetV4ImageProcessor,MobileNetV4Model:()=>i.MobileNetV4Model,MobileNetV4PreTrainedModel:()=>i.MobileNetV4PreTrainedModel,MobileViTFeatureExtractor:()=>F.MobileViTFeatureExtractor,MobileViTForImageClassification:()=>i.MobileViTForImageClassification,MobileViTImageProcessor:()=>F.MobileViTImageProcessor,MobileViTModel:()=>i.MobileViTModel,MobileViTPreTrainedModel:()=>i.MobileViTPreTrainedModel,MobileViTV2ForImageClassification:()=>i.MobileViTV2ForImageClassification,MobileViTV2Model:()=>i.MobileViTV2Model,MobileViTV2PreTrainedModel:()=>i.MobileViTV2PreTrainedModel,ModelOutput:()=>i.ModelOutput,ModernBertForMaskedLM:()=>i.ModernBertForMaskedLM,ModernBertForSequenceClassification:()=>i.ModernBertForSequenceClassification,ModernBertForTokenClassification:()=>i.ModernBertForTokenClassification,ModernBertModel:()=>i.ModernBertModel,ModernBertPreTrainedModel:()=>i.ModernBertPreTrainedModel,Moondream1ForConditionalGeneration:()=>i.Moondream1ForConditionalGeneration,MoonshineFeatureExtractor:()=>B.MoonshineFeatureExtractor,MoonshineForConditionalGeneration:()=>i.MoonshineForConditionalGeneration,MoonshineModel:()=>i.MoonshineModel,MoonshinePreTrainedModel:()=>i.MoonshinePreTrainedModel,MoonshineProcessor:()=>L.MoonshineProcessor,MptForCausalLM:()=>i.MptForCausalLM,MptModel:()=>i.MptModel,MptPreTrainedModel:()=>i.MptPreTrainedModel,MultiModalityCausalLM:()=>i.MultiModalityCausalLM,MultiModalityPreTrainedModel:()=>i.MultiModalityPreTrainedModel,MusicgenForCausalLM:()=>i.MusicgenForCausalLM,MusicgenForConditionalGeneration:()=>i.MusicgenForConditionalGeneration,MusicgenModel:()=>i.MusicgenModel,MusicgenPreTrainedModel:()=>i.MusicgenPreTrainedModel,NllbTokenizer:()=>g.NllbTokenizer,NoBadWordsLogitsProcessor:()=>k.NoBadWordsLogitsProcessor,NoRepeatNGramLogitsProcessor:()=>k.NoRepeatNGramLogitsProcessor,NomicBertModel:()=>i.NomicBertModel,NomicBertPreTrainedModel:()=>i.NomicBertPreTrainedModel,NougatImageProcessor:()=>F.NougatImageProcessor,NougatTokenizer:()=>g.NougatTokenizer,OPTForCausalLM:()=>i.OPTForCausalLM,OPTModel:()=>i.OPTModel,OPTPreTrainedModel:()=>i.OPTPreTrainedModel,ObjectDetectionPipeline:()=>n.ObjectDetectionPipeline,Olmo2ForCausalLM:()=>i.Olmo2ForCausalLM,Olmo2Model:()=>i.Olmo2Model,Olmo2PreTrainedModel:()=>i.Olmo2PreTrainedModel,OlmoForCausalLM:()=>i.OlmoForCausalLM,OlmoModel:()=>i.OlmoModel,OlmoPreTrainedModel:()=>i.OlmoPreTrainedModel,OpenELMForCausalLM:()=>i.OpenELMForCausalLM,OpenELMModel:()=>i.OpenELMModel,OpenELMPreTrainedModel:()=>i.OpenELMPreTrainedModel,OwlViTFeatureExtractor:()=>F.OwlViTFeatureExtractor,OwlViTForObjectDetection:()=>i.OwlViTForObjectDetection,OwlViTImageProcessor:()=>F.OwlViTImageProcessor,OwlViTModel:()=>i.OwlViTModel,OwlViTPreTrainedModel:()=>i.OwlViTPreTrainedModel,OwlViTProcessor:()=>L.OwlViTProcessor,Owlv2ForObjectDetection:()=>i.Owlv2ForObjectDetection,Owlv2ImageProcessor:()=>F.Owlv2ImageProcessor,Owlv2Model:()=>i.Owlv2Model,Owlv2PreTrainedModel:()=>i.Owlv2PreTrainedModel,PaliGemmaForConditionalGeneration:()=>i.PaliGemmaForConditionalGeneration,PaliGemmaPreTrainedModel:()=>i.PaliGemmaPreTrainedModel,PaliGemmaProcessor:()=>L.PaliGemmaProcessor,PatchTSMixerForPrediction:()=>i.PatchTSMixerForPrediction,PatchTSMixerModel:()=>i.PatchTSMixerModel,PatchTSMixerPreTrainedModel:()=>i.PatchTSMixerPreTrainedModel,PatchTSTForPrediction:()=>i.PatchTSTForPrediction,PatchTSTModel:()=>i.PatchTSTModel,PatchTSTPreTrainedModel:()=>i.PatchTSTPreTrainedModel,Phi3ForCausalLM:()=>i.Phi3ForCausalLM,Phi3Model:()=>i.Phi3Model,Phi3PreTrainedModel:()=>i.Phi3PreTrainedModel,Phi3VForCausalLM:()=>i.Phi3VForCausalLM,Phi3VImageProcessor:()=>F.Phi3VImageProcessor,Phi3VPreTrainedModel:()=>i.Phi3VPreTrainedModel,Phi3VProcessor:()=>L.Phi3VProcessor,PhiForCausalLM:()=>i.PhiForCausalLM,PhiModel:()=>i.PhiModel,PhiPreTrainedModel:()=>i.PhiPreTrainedModel,Pipeline:()=>n.Pipeline,PreTrainedModel:()=>i.PreTrainedModel,PreTrainedTokenizer:()=>g.PreTrainedTokenizer,PretrainedConfig:()=>p.PretrainedConfig,PretrainedMixin:()=>i.PretrainedMixin,Processor:()=>K.Processor,PvtForImageClassification:()=>i.PvtForImageClassification,PvtImageProcessor:()=>F.PvtImageProcessor,PvtModel:()=>i.PvtModel,PvtPreTrainedModel:()=>i.PvtPreTrainedModel,PyAnnoteFeatureExtractor:()=>B.PyAnnoteFeatureExtractor,PyAnnoteForAudioFrameClassification:()=>i.PyAnnoteForAudioFrameClassification,PyAnnoteModel:()=>i.PyAnnoteModel,PyAnnotePreTrainedModel:()=>i.PyAnnotePreTrainedModel,PyAnnoteProcessor:()=>L.PyAnnoteProcessor,QuestionAnsweringModelOutput:()=>i.QuestionAnsweringModelOutput,QuestionAnsweringPipeline:()=>n.QuestionAnsweringPipeline,Qwen2ForCausalLM:()=>i.Qwen2ForCausalLM,Qwen2Model:()=>i.Qwen2Model,Qwen2PreTrainedModel:()=>i.Qwen2PreTrainedModel,Qwen2Tokenizer:()=>g.Qwen2Tokenizer,Qwen2VLForConditionalGeneration:()=>i.Qwen2VLForConditionalGeneration,Qwen2VLImageProcessor:()=>F.Qwen2VLImageProcessor,Qwen2VLPreTrainedModel:()=>i.Qwen2VLPreTrainedModel,Qwen2VLProcessor:()=>L.Qwen2VLProcessor,Qwen3ForCausalLM:()=>i.Qwen3ForCausalLM,Qwen3Model:()=>i.Qwen3Model,Qwen3PreTrainedModel:()=>i.Qwen3PreTrainedModel,RFDetrForObjectDetection:()=>i.RFDetrForObjectDetection,RFDetrModel:()=>i.RFDetrModel,RFDetrObjectDetectionOutput:()=>i.RFDetrObjectDetectionOutput,RFDetrPreTrainedModel:()=>i.RFDetrPreTrainedModel,RTDetrForObjectDetection:()=>i.RTDetrForObjectDetection,RTDetrImageProcessor:()=>F.RTDetrImageProcessor,RTDetrModel:()=>i.RTDetrModel,RTDetrObjectDetectionOutput:()=>i.RTDetrObjectDetectionOutput,RTDetrPreTrainedModel:()=>i.RTDetrPreTrainedModel,RTDetrV2ForObjectDetection:()=>i.RTDetrV2ForObjectDetection,RTDetrV2Model:()=>i.RTDetrV2Model,RTDetrV2ObjectDetectionOutput:()=>i.RTDetrV2ObjectDetectionOutput,RTDetrV2PreTrainedModel:()=>i.RTDetrV2PreTrainedModel,RawAudio:()=>h.RawAudio,RawImage:()=>C.RawImage,RawVideo:()=>w.RawVideo,RawVideoFrame:()=>w.RawVideoFrame,RepetitionPenaltyLogitsProcessor:()=>k.RepetitionPenaltyLogitsProcessor,ResNetForImageClassification:()=>i.ResNetForImageClassification,ResNetModel:()=>i.ResNetModel,ResNetPreTrainedModel:()=>i.ResNetPreTrainedModel,RoFormerForMaskedLM:()=>i.RoFormerForMaskedLM,RoFormerForQuestionAnswering:()=>i.RoFormerForQuestionAnswering,RoFormerForSequenceClassification:()=>i.RoFormerForSequenceClassification,RoFormerForTokenClassification:()=>i.RoFormerForTokenClassification,RoFormerModel:()=>i.RoFormerModel,RoFormerPreTrainedModel:()=>i.RoFormerPreTrainedModel,RoFormerTokenizer:()=>g.RoFormerTokenizer,RobertaForMaskedLM:()=>i.RobertaForMaskedLM,RobertaForQuestionAnswering:()=>i.RobertaForQuestionAnswering,RobertaForSequenceClassification:()=>i.RobertaForSequenceClassification,RobertaForTokenClassification:()=>i.RobertaForTokenClassification,RobertaModel:()=>i.RobertaModel,RobertaPreTrainedModel:()=>i.RobertaPreTrainedModel,RobertaTokenizer:()=>g.RobertaTokenizer,SamImageProcessor:()=>F.SamImageProcessor,SamImageSegmentationOutput:()=>i.SamImageSegmentationOutput,SamModel:()=>i.SamModel,SamPreTrainedModel:()=>i.SamPreTrainedModel,SamProcessor:()=>L.SamProcessor,SapiensForDepthEstimation:()=>i.SapiensForDepthEstimation,SapiensForNormalEstimation:()=>i.SapiensForNormalEstimation,SapiensForSemanticSegmentation:()=>i.SapiensForSemanticSegmentation,SapiensPreTrainedModel:()=>i.SapiensPreTrainedModel,SeamlessM4TFeatureExtractor:()=>B.SeamlessM4TFeatureExtractor,SegformerFeatureExtractor:()=>F.SegformerFeatureExtractor,SegformerForImageClassification:()=>i.SegformerForImageClassification,SegformerForSemanticSegmentation:()=>i.SegformerForSemanticSegmentation,SegformerImageProcessor:()=>F.SegformerImageProcessor,SegformerModel:()=>i.SegformerModel,SegformerPreTrainedModel:()=>i.SegformerPreTrainedModel,Seq2SeqLMOutput:()=>i.Seq2SeqLMOutput,SequenceClassifierOutput:()=>i.SequenceClassifierOutput,SiglipImageProcessor:()=>F.SiglipImageProcessor,SiglipModel:()=>i.SiglipModel,SiglipPreTrainedModel:()=>i.SiglipPreTrainedModel,SiglipTextModel:()=>i.SiglipTextModel,SiglipTokenizer:()=>g.SiglipTokenizer,SiglipVisionModel:()=>i.SiglipVisionModel,SmolVLMForConditionalGeneration:()=>i.SmolVLMForConditionalGeneration,SmolVLMImageProcessor:()=>F.SmolVLMImageProcessor,SmolVLMProcessor:()=>L.SmolVLMProcessor,SnacDecoderModel:()=>i.SnacDecoderModel,SnacEncoderModel:()=>i.SnacEncoderModel,SnacFeatureExtractor:()=>B.SnacFeatureExtractor,SnacModel:()=>i.SnacModel,SnacPreTrainedModel:()=>i.SnacPreTrainedModel,SpeechT5FeatureExtractor:()=>B.SpeechT5FeatureExtractor,SpeechT5ForSpeechToText:()=>i.SpeechT5ForSpeechToText,SpeechT5ForTextToSpeech:()=>i.SpeechT5ForTextToSpeech,SpeechT5HifiGan:()=>i.SpeechT5HifiGan,SpeechT5Model:()=>i.SpeechT5Model,SpeechT5PreTrainedModel:()=>i.SpeechT5PreTrainedModel,SpeechT5Processor:()=>L.SpeechT5Processor,SpeechT5Tokenizer:()=>g.SpeechT5Tokenizer,SqueezeBertForMaskedLM:()=>i.SqueezeBertForMaskedLM,SqueezeBertForQuestionAnswering:()=>i.SqueezeBertForQuestionAnswering,SqueezeBertForSequenceClassification:()=>i.SqueezeBertForSequenceClassification,SqueezeBertModel:()=>i.SqueezeBertModel,SqueezeBertPreTrainedModel:()=>i.SqueezeBertPreTrainedModel,SqueezeBertTokenizer:()=>g.SqueezeBertTokenizer,StableLmForCausalLM:()=>i.StableLmForCausalLM,StableLmModel:()=>i.StableLmModel,StableLmPreTrainedModel:()=>i.StableLmPreTrainedModel,Starcoder2ForCausalLM:()=>i.Starcoder2ForCausalLM,Starcoder2Model:()=>i.Starcoder2Model,Starcoder2PreTrainedModel:()=>i.Starcoder2PreTrainedModel,StoppingCriteria:()=>d.StoppingCriteria,StoppingCriteriaList:()=>d.StoppingCriteriaList,StyleTextToSpeech2Model:()=>i.StyleTextToSpeech2Model,StyleTextToSpeech2PreTrainedModel:()=>i.StyleTextToSpeech2PreTrainedModel,SummarizationPipeline:()=>n.SummarizationPipeline,SuppressTokensAtBeginLogitsProcessor:()=>k.SuppressTokensAtBeginLogitsProcessor,Swin2SRForImageSuperResolution:()=>i.Swin2SRForImageSuperResolution,Swin2SRImageProcessor:()=>F.Swin2SRImageProcessor,Swin2SRModel:()=>i.Swin2SRModel,Swin2SRPreTrainedModel:()=>i.Swin2SRPreTrainedModel,SwinForImageClassification:()=>i.SwinForImageClassification,SwinForSemanticSegmentation:()=>i.SwinForSemanticSegmentation,SwinModel:()=>i.SwinModel,SwinPreTrainedModel:()=>i.SwinPreTrainedModel,T5ForConditionalGeneration:()=>i.T5ForConditionalGeneration,T5Model:()=>i.T5Model,T5PreTrainedModel:()=>i.T5PreTrainedModel,T5Tokenizer:()=>g.T5Tokenizer,TableTransformerForObjectDetection:()=>i.TableTransformerForObjectDetection,TableTransformerModel:()=>i.TableTransformerModel,TableTransformerObjectDetectionOutput:()=>i.TableTransformerObjectDetectionOutput,TableTransformerPreTrainedModel:()=>i.TableTransformerPreTrainedModel,TemperatureLogitsWarper:()=>k.TemperatureLogitsWarper,Tensor:()=>E.Tensor,Text2TextGenerationPipeline:()=>n.Text2TextGenerationPipeline,TextClassificationPipeline:()=>n.TextClassificationPipeline,TextGenerationPipeline:()=>n.TextGenerationPipeline,TextStreamer:()=>V.TextStreamer,TextToAudioPipeline:()=>n.TextToAudioPipeline,TokenClassificationPipeline:()=>n.TokenClassificationPipeline,TokenClassifierOutput:()=>i.TokenClassifierOutput,TokenizerModel:()=>g.TokenizerModel,TopKLogitsWarper:()=>k.TopKLogitsWarper,TopPLogitsWarper:()=>k.TopPLogitsWarper,TrOCRForCausalLM:()=>i.TrOCRForCausalLM,TrOCRPreTrainedModel:()=>i.TrOCRPreTrainedModel,TranslationPipeline:()=>n.TranslationPipeline,UltravoxModel:()=>i.UltravoxModel,UltravoxPreTrainedModel:()=>i.UltravoxPreTrainedModel,UltravoxProcessor:()=>L.UltravoxProcessor,UniSpeechForCTC:()=>i.UniSpeechForCTC,UniSpeechForSequenceClassification:()=>i.UniSpeechForSequenceClassification,UniSpeechModel:()=>i.UniSpeechModel,UniSpeechPreTrainedModel:()=>i.UniSpeechPreTrainedModel,UniSpeechSatForAudioFrameClassification:()=>i.UniSpeechSatForAudioFrameClassification,UniSpeechSatForCTC:()=>i.UniSpeechSatForCTC,UniSpeechSatForSequenceClassification:()=>i.UniSpeechSatForSequenceClassification,UniSpeechSatModel:()=>i.UniSpeechSatModel,UniSpeechSatPreTrainedModel:()=>i.UniSpeechSatPreTrainedModel,VLChatProcessor:()=>L.VLChatProcessor,VLMImageProcessor:()=>F.VLMImageProcessor,ViTFeatureExtractor:()=>F.ViTFeatureExtractor,ViTForImageClassification:()=>i.ViTForImageClassification,ViTImageProcessor:()=>F.ViTImageProcessor,ViTMAEModel:()=>i.ViTMAEModel,ViTMAEPreTrainedModel:()=>i.ViTMAEPreTrainedModel,ViTMSNForImageClassification:()=>i.ViTMSNForImageClassification,ViTMSNModel:()=>i.ViTMSNModel,ViTMSNPreTrainedModel:()=>i.ViTMSNPreTrainedModel,ViTModel:()=>i.ViTModel,ViTPreTrainedModel:()=>i.ViTPreTrainedModel,VisionEncoderDecoderModel:()=>i.VisionEncoderDecoderModel,VitMatteForImageMatting:()=>i.VitMatteForImageMatting,VitMatteImageProcessor:()=>F.VitMatteImageProcessor,VitMattePreTrainedModel:()=>i.VitMattePreTrainedModel,VitPoseForPoseEstimation:()=>i.VitPoseForPoseEstimation,VitPoseImageProcessor:()=>F.VitPoseImageProcessor,VitPosePreTrainedModel:()=>i.VitPosePreTrainedModel,VitsModel:()=>i.VitsModel,VitsModelOutput:()=>i.VitsModelOutput,VitsPreTrainedModel:()=>i.VitsPreTrainedModel,VitsTokenizer:()=>g.VitsTokenizer,Wav2Vec2BertForCTC:()=>i.Wav2Vec2BertForCTC,Wav2Vec2BertForSequenceClassification:()=>i.Wav2Vec2BertForSequenceClassification,Wav2Vec2BertModel:()=>i.Wav2Vec2BertModel,Wav2Vec2BertPreTrainedModel:()=>i.Wav2Vec2BertPreTrainedModel,Wav2Vec2CTCTokenizer:()=>g.Wav2Vec2CTCTokenizer,Wav2Vec2FeatureExtractor:()=>B.Wav2Vec2FeatureExtractor,Wav2Vec2ForAudioFrameClassification:()=>i.Wav2Vec2ForAudioFrameClassification,Wav2Vec2ForCTC:()=>i.Wav2Vec2ForCTC,Wav2Vec2ForSequenceClassification:()=>i.Wav2Vec2ForSequenceClassification,Wav2Vec2Model:()=>i.Wav2Vec2Model,Wav2Vec2PreTrainedModel:()=>i.Wav2Vec2PreTrainedModel,Wav2Vec2Processor:()=>L.Wav2Vec2Processor,Wav2Vec2ProcessorWithLM:()=>L.Wav2Vec2ProcessorWithLM,WavLMForAudioFrameClassification:()=>i.WavLMForAudioFrameClassification,WavLMForCTC:()=>i.WavLMForCTC,WavLMForSequenceClassification:()=>i.WavLMForSequenceClassification,WavLMForXVector:()=>i.WavLMForXVector,WavLMModel:()=>i.WavLMModel,WavLMPreTrainedModel:()=>i.WavLMPreTrainedModel,WeSpeakerFeatureExtractor:()=>B.WeSpeakerFeatureExtractor,WeSpeakerResNetModel:()=>i.WeSpeakerResNetModel,WeSpeakerResNetPreTrainedModel:()=>i.WeSpeakerResNetPreTrainedModel,WhisperFeatureExtractor:()=>B.WhisperFeatureExtractor,WhisperForConditionalGeneration:()=>i.WhisperForConditionalGeneration,WhisperModel:()=>i.WhisperModel,WhisperPreTrainedModel:()=>i.WhisperPreTrainedModel,WhisperProcessor:()=>L.WhisperProcessor,WhisperTextStreamer:()=>V.WhisperTextStreamer,WhisperTimeStampLogitsProcessor:()=>k.WhisperTimeStampLogitsProcessor,WhisperTokenizer:()=>g.WhisperTokenizer,XLMForQuestionAnswering:()=>i.XLMForQuestionAnswering,XLMForSequenceClassification:()=>i.XLMForSequenceClassification,XLMForTokenClassification:()=>i.XLMForTokenClassification,XLMModel:()=>i.XLMModel,XLMPreTrainedModel:()=>i.XLMPreTrainedModel,XLMRobertaForMaskedLM:()=>i.XLMRobertaForMaskedLM,XLMRobertaForQuestionAnswering:()=>i.XLMRobertaForQuestionAnswering,XLMRobertaForSequenceClassification:()=>i.XLMRobertaForSequenceClassification,XLMRobertaForTokenClassification:()=>i.XLMRobertaForTokenClassification,XLMRobertaModel:()=>i.XLMRobertaModel,XLMRobertaPreTrainedModel:()=>i.XLMRobertaPreTrainedModel,XLMRobertaTokenizer:()=>g.XLMRobertaTokenizer,XLMTokenizer:()=>g.XLMTokenizer,XLMWithLMHeadModel:()=>i.XLMWithLMHeadModel,XVectorOutput:()=>i.XVectorOutput,YolosFeatureExtractor:()=>F.YolosFeatureExtractor,YolosForObjectDetection:()=>i.YolosForObjectDetection,YolosImageProcessor:()=>F.YolosImageProcessor,YolosModel:()=>i.YolosModel,YolosObjectDetectionOutput:()=>i.YolosObjectDetectionOutput,YolosPreTrainedModel:()=>i.YolosPreTrainedModel,ZeroShotAudioClassificationPipeline:()=>n.ZeroShotAudioClassificationPipeline,ZeroShotClassificationPipeline:()=>n.ZeroShotClassificationPipeline,ZeroShotImageClassificationPipeline:()=>n.ZeroShotImageClassificationPipeline,ZeroShotObjectDetectionPipeline:()=>n.ZeroShotObjectDetectionPipeline,bankers_round:()=>v.bankers_round,cat:()=>E.cat,cos_sim:()=>v.cos_sim,dot:()=>v.dot,dynamic_time_warping:()=>v.dynamic_time_warping,env:()=>a.env,full:()=>E.full,full_like:()=>E.full_like,getKeyValueShapes:()=>p.getKeyValueShapes,hamming:()=>h.hamming,hanning:()=>h.hanning,interpolate:()=>E.interpolate,interpolate_4d:()=>E.interpolate_4d,interpolate_data:()=>v.interpolate_data,is_chinese_char:()=>g.is_chinese_char,layer_norm:()=>E.layer_norm,load_image:()=>C.load_image,load_video:()=>w.load_video,log_softmax:()=>v.log_softmax,magnitude:()=>v.magnitude,matmul:()=>E.matmul,max:()=>v.max,mean:()=>E.mean,mean_pooling:()=>E.mean_pooling,medianFilter:()=>v.medianFilter,mel_filter_bank:()=>h.mel_filter_bank,min:()=>v.min,ones:()=>E.ones,ones_like:()=>E.ones_like,permute:()=>E.permute,permute_data:()=>v.permute_data,pipeline:()=>n.pipeline,quantize_embeddings:()=>E.quantize_embeddings,rand:()=>E.rand,read_audio:()=>h.read_audio,rfft:()=>E.rfft,round:()=>v.round,slice:()=>E.slice,softmax:()=>v.softmax,spectrogram:()=>h.spectrogram,stack:()=>E.stack,std_mean:()=>E.std_mean,topk:()=>E.topk,window_function:()=>h.window_function,zeros:()=>E.zeros,zeros_like:()=>E.zeros_like});var a=Kt("./src/env.js"),n=Kt("./src/pipelines.js"),i=Kt("./src/models.js"),g=Kt("./src/tokenizers.js"),p=Kt("./src/configs.js"),h=Kt("./src/utils/audio.js"),C=Kt("./src/utils/image.js"),w=Kt("./src/utils/video.js"),E=Kt("./src/utils/tensor.js"),v=Kt("./src/utils/maths.js"),D=Kt("./src/base/feature_extraction_utils.js"),B=Kt("./src/models/feature_extractors.js"),x=Kt("./src/models/auto/feature_extraction_auto.js"),S=Kt("./src/base/image_processors_utils.js"),F=Kt("./src/models/image_processors.js"),R=Kt("./src/models/auto/image_processing_auto.js"),K=Kt("./src/base/processing_utils.js"),L=Kt("./src/models/processors.js"),N=Kt("./src/models/auto/processing_auto.js"),V=Kt("./src/generation/streamers.js"),d=Kt("./src/generation/stopping_criteria.js"),k=Kt("./src/generation/logits_process.js")})();Q.ASTFeatureExtractor;Q.ASTForAudioClassification;Q.ASTModel;Q.ASTPreTrainedModel;Q.AlbertForMaskedLM;Q.AlbertForQuestionAnswering;Q.AlbertForSequenceClassification;Q.AlbertModel;Q.AlbertPreTrainedModel;Q.AlbertTokenizer;Q.AudioClassificationPipeline;Q.AutoConfig;Q.AutoFeatureExtractor;Q.AutoImageProcessor;var OI=Q.AutoModel;Q.AutoModelForAudioClassification;Q.AutoModelForAudioFrameClassification;Q.AutoModelForAudioTextToText;Q.AutoModelForCTC;var zI=Q.AutoModelForCausalLM;Q.AutoModelForDepthEstimation;Q.AutoModelForDocumentQuestionAnswering;Q.AutoModelForImageClassification;Q.AutoModelForImageFeatureExtraction;Q.AutoModelForImageMatting;Q.AutoModelForImageSegmentation;Q.AutoModelForImageTextToText;Q.AutoModelForImageToImage;Q.AutoModelForMaskGeneration;Q.AutoModelForMaskedLM;Q.AutoModelForNormalEstimation;Q.AutoModelForObjectDetection;Q.AutoModelForPoseEstimation;Q.AutoModelForQuestionAnswering;Q.AutoModelForSemanticSegmentation;Q.AutoModelForSeq2SeqLM;Q.AutoModelForSequenceClassification;Q.AutoModelForSpeechSeq2Seq;Q.AutoModelForTextToSpectrogram;Q.AutoModelForTextToWaveform;Q.AutoModelForTokenClassification;Q.AutoModelForUniversalSegmentation;Q.AutoModelForVision2Seq;Q.AutoModelForXVector;Q.AutoModelForZeroShotObjectDetection;Q.AutoProcessor;var cb=Q.AutoTokenizer;Q.AutomaticSpeechRecognitionPipeline;Q.BackgroundRemovalPipeline;Q.BartForConditionalGeneration;Q.BartForSequenceClassification;Q.BartModel;Q.BartPretrainedModel;Q.BartTokenizer;Q.BaseModelOutput;Q.BaseStreamer;Q.BeitFeatureExtractor;Q.BeitForImageClassification;Q.BeitModel;Q.BeitPreTrainedModel;Q.BertForMaskedLM;Q.BertForQuestionAnswering;Q.BertForSequenceClassification;Q.BertForTokenClassification;Q.BertModel;Q.BertPreTrainedModel;Q.BertTokenizer;Q.BitImageProcessor;Q.BlenderbotForConditionalGeneration;Q.BlenderbotModel;Q.BlenderbotPreTrainedModel;Q.BlenderbotSmallForConditionalGeneration;Q.BlenderbotSmallModel;Q.BlenderbotSmallPreTrainedModel;Q.BlenderbotSmallTokenizer;Q.BlenderbotTokenizer;Q.BloomForCausalLM;Q.BloomModel;Q.BloomPreTrainedModel;Q.BloomTokenizer;Q.CLIPFeatureExtractor;Q.CLIPImageProcessor;Q.CLIPModel;Q.CLIPPreTrainedModel;Q.CLIPSegForImageSegmentation;Q.CLIPSegModel;Q.CLIPSegPreTrainedModel;Q.CLIPTextModel;Q.CLIPTextModelWithProjection;Q.CLIPTokenizer;Q.CLIPVisionModel;Q.CLIPVisionModelWithProjection;Q.CamembertForMaskedLM;Q.CamembertForQuestionAnswering;Q.CamembertForSequenceClassification;Q.CamembertForTokenClassification;Q.CamembertModel;Q.CamembertPreTrainedModel;Q.CamembertTokenizer;Q.CausalLMOutput;Q.CausalLMOutputWithPast;Q.ChineseCLIPFeatureExtractor;Q.ChineseCLIPModel;Q.ChineseCLIPPreTrainedModel;Q.ClapAudioModelWithProjection;Q.ClapFeatureExtractor;Q.ClapModel;Q.ClapPreTrainedModel;Q.ClapTextModelWithProjection;Q.ClassifierFreeGuidanceLogitsProcessor;Q.CodeGenForCausalLM;Q.CodeGenModel;Q.CodeGenPreTrainedModel;Q.CodeGenTokenizer;Q.CodeLlamaTokenizer;Q.CohereForCausalLM;Q.CohereModel;Q.CoherePreTrainedModel;Q.CohereTokenizer;Q.ConvBertForMaskedLM;Q.ConvBertForQuestionAnswering;Q.ConvBertForSequenceClassification;Q.ConvBertForTokenClassification;Q.ConvBertModel;Q.ConvBertPreTrainedModel;Q.ConvBertTokenizer;Q.ConvNextFeatureExtractor;Q.ConvNextForImageClassification;Q.ConvNextImageProcessor;Q.ConvNextModel;Q.ConvNextPreTrainedModel;Q.ConvNextV2ForImageClassification;Q.ConvNextV2Model;Q.ConvNextV2PreTrainedModel;Q.DFineForObjectDetection;Q.DFineModel;Q.DFinePreTrainedModel;Q.DPTFeatureExtractor;Q.DPTForDepthEstimation;Q.DPTImageProcessor;Q.DPTModel;Q.DPTPreTrainedModel;Q.DacDecoderModel;Q.DacDecoderOutput;Q.DacEncoderModel;Q.DacEncoderOutput;Q.DacFeatureExtractor;Q.DacModel;Q.DacPreTrainedModel;Q.DataTypeMap;Q.DebertaForMaskedLM;Q.DebertaForQuestionAnswering;Q.DebertaForSequenceClassification;Q.DebertaForTokenClassification;Q.DebertaModel;Q.DebertaPreTrainedModel;Q.DebertaTokenizer;Q.DebertaV2ForMaskedLM;Q.DebertaV2ForQuestionAnswering;Q.DebertaV2ForSequenceClassification;Q.DebertaV2ForTokenClassification;Q.DebertaV2Model;Q.DebertaV2PreTrainedModel;Q.DebertaV2Tokenizer;Q.DecisionTransformerModel;Q.DecisionTransformerPreTrainedModel;Q.DeiTFeatureExtractor;Q.DeiTForImageClassification;Q.DeiTImageProcessor;Q.DeiTModel;Q.DeiTPreTrainedModel;Q.DepthAnythingForDepthEstimation;Q.DepthAnythingPreTrainedModel;Q.DepthEstimationPipeline;Q.DepthProForDepthEstimation;Q.DepthProPreTrainedModel;Q.DetrFeatureExtractor;Q.DetrForObjectDetection;Q.DetrForSegmentation;Q.DetrImageProcessor;Q.DetrModel;Q.DetrObjectDetectionOutput;Q.DetrPreTrainedModel;Q.DetrSegmentationOutput;Q.Dinov2ForImageClassification;Q.Dinov2Model;Q.Dinov2PreTrainedModel;Q.Dinov2WithRegistersForImageClassification;Q.Dinov2WithRegistersModel;Q.Dinov2WithRegistersPreTrainedModel;Q.DistilBertForMaskedLM;Q.DistilBertForQuestionAnswering;Q.DistilBertForSequenceClassification;Q.DistilBertForTokenClassification;Q.DistilBertModel;Q.DistilBertPreTrainedModel;Q.DistilBertTokenizer;Q.DocumentQuestionAnsweringPipeline;Q.DonutFeatureExtractor;Q.DonutImageProcessor;Q.DonutSwinModel;Q.DonutSwinPreTrainedModel;Q.EfficientNetForImageClassification;Q.EfficientNetImageProcessor;Q.EfficientNetModel;Q.EfficientNetPreTrainedModel;Q.ElectraForMaskedLM;Q.ElectraForQuestionAnswering;Q.ElectraForSequenceClassification;Q.ElectraForTokenClassification;Q.ElectraModel;Q.ElectraPreTrainedModel;Q.ElectraTokenizer;Q.EncodecFeatureExtractor;Q.EosTokenCriteria;Q.EsmForMaskedLM;Q.EsmForSequenceClassification;Q.EsmForTokenClassification;Q.EsmModel;Q.EsmPreTrainedModel;Q.EsmTokenizer;Q.ExaoneForCausalLM;Q.ExaoneModel;Q.ExaonePreTrainedModel;Q.FFT;Q.FalconForCausalLM;Q.FalconModel;Q.FalconPreTrainedModel;Q.FalconTokenizer;Q.FastViTForImageClassification;Q.FastViTModel;Q.FastViTPreTrainedModel;Q.FeatureExtractionPipeline;Q.FeatureExtractor;Q.FillMaskPipeline;Q.Florence2ForConditionalGeneration;Q.Florence2PreTrainedModel;Q.Florence2Processor;Q.ForcedBOSTokenLogitsProcessor;Q.ForcedEOSTokenLogitsProcessor;Q.GLPNFeatureExtractor;Q.GLPNForDepthEstimation;Q.GLPNModel;Q.GLPNPreTrainedModel;Q.GPT2LMHeadModel;Q.GPT2Model;Q.GPT2PreTrainedModel;Q.GPT2Tokenizer;Q.GPTBigCodeForCausalLM;Q.GPTBigCodeModel;Q.GPTBigCodePreTrainedModel;Q.GPTJForCausalLM;Q.GPTJModel;Q.GPTJPreTrainedModel;Q.GPTNeoForCausalLM;Q.GPTNeoModel;Q.GPTNeoPreTrainedModel;Q.GPTNeoXForCausalLM;Q.GPTNeoXModel;Q.GPTNeoXPreTrainedModel;Q.GPTNeoXTokenizer;Q.Gemma2ForCausalLM;Q.Gemma2Model;Q.Gemma2PreTrainedModel;Q.Gemma3ForCausalLM;Q.Gemma3Model;Q.Gemma3PreTrainedModel;Q.GemmaForCausalLM;Q.GemmaModel;Q.GemmaPreTrainedModel;Q.GemmaTokenizer;Q.GlmForCausalLM;Q.GlmModel;Q.GlmPreTrainedModel;Q.GraniteForCausalLM;Q.GraniteModel;Q.GranitePreTrainedModel;Q.Grok1Tokenizer;Q.GroundingDinoForObjectDetection;Q.GroundingDinoImageProcessor;Q.GroundingDinoPreTrainedModel;Q.GroundingDinoProcessor;Q.GroupViTModel;Q.GroupViTPreTrainedModel;Q.HeliumForCausalLM;Q.HeliumModel;Q.HeliumPreTrainedModel;Q.HerbertTokenizer;Q.HieraForImageClassification;Q.HieraModel;Q.HieraPreTrainedModel;Q.HubertForCTC;Q.HubertForSequenceClassification;Q.HubertModel;Q.HubertPreTrainedModel;Q.IJepaForImageClassification;Q.IJepaModel;Q.IJepaPreTrainedModel;Q.Idefics3ForConditionalGeneration;Q.Idefics3ImageProcessor;Q.Idefics3PreTrainedModel;Q.Idefics3Processor;Q.ImageClassificationPipeline;Q.ImageFeatureExtractionPipeline;Q.ImageFeatureExtractor;Q.ImageMattingOutput;Q.ImageProcessor;Q.ImageSegmentationPipeline;Q.ImageToImagePipeline;Q.ImageToTextPipeline;var NI=Q.InterruptableStoppingCriteria;Q.JAISLMHeadModel;Q.JAISModel;Q.JAISPreTrainedModel;Q.JinaCLIPImageProcessor;Q.JinaCLIPModel;Q.JinaCLIPPreTrainedModel;Q.JinaCLIPProcessor;Q.JinaCLIPTextModel;Q.JinaCLIPVisionModel;Q.LiteWhisperForConditionalGeneration;Q.LlamaForCausalLM;Q.LlamaModel;Q.LlamaPreTrainedModel;Q.LlamaTokenizer;Q.LlavaForConditionalGeneration;Q.LlavaOnevisionForConditionalGeneration;Q.LlavaOnevisionImageProcessor;Q.LlavaPreTrainedModel;Q.LogitsProcessor;Q.LogitsProcessorList;Q.LogitsWarper;Q.LongT5ForConditionalGeneration;Q.LongT5Model;Q.LongT5PreTrainedModel;Q.M2M100ForConditionalGeneration;Q.M2M100Model;Q.M2M100PreTrainedModel;Q.M2M100Tokenizer;Q.MBart50Tokenizer;Q.MBartForCausalLM;Q.MBartForConditionalGeneration;Q.MBartForSequenceClassification;Q.MBartModel;Q.MBartPreTrainedModel;Q.MBartTokenizer;Q.MPNetForMaskedLM;Q.MPNetForQuestionAnswering;Q.MPNetForSequenceClassification;Q.MPNetForTokenClassification;Q.MPNetModel;Q.MPNetPreTrainedModel;Q.MPNetTokenizer;Q.MT5ForConditionalGeneration;Q.MT5Model;Q.MT5PreTrainedModel;Q.MarianMTModel;Q.MarianModel;Q.MarianPreTrainedModel;Q.MarianTokenizer;Q.Mask2FormerImageProcessor;Q.MaskFormerFeatureExtractor;Q.MaskFormerForInstanceSegmentation;Q.MaskFormerImageProcessor;Q.MaskFormerModel;Q.MaskFormerPreTrainedModel;Q.MaskedLMOutput;Q.MaxLengthCriteria;Q.Metric3DForDepthEstimation;Q.Metric3DPreTrainedModel;Q.Metric3Dv2ForDepthEstimation;Q.Metric3Dv2PreTrainedModel;Q.MgpstrForSceneTextRecognition;Q.MgpstrModelOutput;Q.MgpstrPreTrainedModel;Q.MgpstrProcessor;Q.MgpstrTokenizer;Q.MimiDecoderModel;Q.MimiDecoderOutput;Q.MimiEncoderModel;Q.MimiEncoderOutput;Q.MimiModel;Q.MimiPreTrainedModel;Q.MinLengthLogitsProcessor;Q.MinNewTokensLengthLogitsProcessor;Q.MistralForCausalLM;Q.MistralModel;Q.MistralPreTrainedModel;Q.MobileBertForMaskedLM;Q.MobileBertForQuestionAnswering;Q.MobileBertForSequenceClassification;Q.MobileBertModel;Q.MobileBertPreTrainedModel;Q.MobileBertTokenizer;Q.MobileLLMForCausalLM;Q.MobileLLMModel;Q.MobileLLMPreTrainedModel;Q.MobileNetV1FeatureExtractor;Q.MobileNetV1ForImageClassification;Q.MobileNetV1ForSemanticSegmentation;Q.MobileNetV1ImageProcessor;Q.MobileNetV1Model;Q.MobileNetV1PreTrainedModel;Q.MobileNetV2FeatureExtractor;Q.MobileNetV2ForImageClassification;Q.MobileNetV2ForSemanticSegmentation;Q.MobileNetV2ImageProcessor;Q.MobileNetV2Model;Q.MobileNetV2PreTrainedModel;Q.MobileNetV3FeatureExtractor;Q.MobileNetV3ForImageClassification;Q.MobileNetV3ForSemanticSegmentation;Q.MobileNetV3ImageProcessor;Q.MobileNetV3Model;Q.MobileNetV3PreTrainedModel;Q.MobileNetV4FeatureExtractor;Q.MobileNetV4ForImageClassification;Q.MobileNetV4ForSemanticSegmentation;Q.MobileNetV4ImageProcessor;Q.MobileNetV4Model;Q.MobileNetV4PreTrainedModel;Q.MobileViTFeatureExtractor;Q.MobileViTForImageClassification;Q.MobileViTImageProcessor;Q.MobileViTModel;Q.MobileViTPreTrainedModel;Q.MobileViTV2ForImageClassification;Q.MobileViTV2Model;Q.MobileViTV2PreTrainedModel;Q.ModelOutput;Q.ModernBertForMaskedLM;Q.ModernBertForSequenceClassification;Q.ModernBertForTokenClassification;Q.ModernBertModel;Q.ModernBertPreTrainedModel;Q.Moondream1ForConditionalGeneration;Q.MoonshineFeatureExtractor;Q.MoonshineForConditionalGeneration;Q.MoonshineModel;Q.MoonshinePreTrainedModel;Q.MoonshineProcessor;Q.MptForCausalLM;Q.MptModel;Q.MptPreTrainedModel;Q.MultiModalityCausalLM;Q.MultiModalityPreTrainedModel;Q.MusicgenForCausalLM;Q.MusicgenForConditionalGeneration;Q.MusicgenModel;Q.MusicgenPreTrainedModel;Q.NllbTokenizer;Q.NoBadWordsLogitsProcessor;Q.NoRepeatNGramLogitsProcessor;Q.NomicBertModel;Q.NomicBertPreTrainedModel;Q.NougatImageProcessor;Q.NougatTokenizer;Q.OPTForCausalLM;Q.OPTModel;Q.OPTPreTrainedModel;Q.ObjectDetectionPipeline;Q.Olmo2ForCausalLM;Q.Olmo2Model;Q.Olmo2PreTrainedModel;Q.OlmoForCausalLM;Q.OlmoModel;Q.OlmoPreTrainedModel;Q.OpenELMForCausalLM;Q.OpenELMModel;Q.OpenELMPreTrainedModel;Q.OwlViTFeatureExtractor;Q.OwlViTForObjectDetection;Q.OwlViTImageProcessor;Q.OwlViTModel;Q.OwlViTPreTrainedModel;Q.OwlViTProcessor;Q.Owlv2ForObjectDetection;Q.Owlv2ImageProcessor;Q.Owlv2Model;Q.Owlv2PreTrainedModel;Q.PaliGemmaForConditionalGeneration;Q.PaliGemmaPreTrainedModel;Q.PaliGemmaProcessor;Q.PatchTSMixerForPrediction;Q.PatchTSMixerModel;Q.PatchTSMixerPreTrainedModel;Q.PatchTSTForPrediction;Q.PatchTSTModel;Q.PatchTSTPreTrainedModel;Q.Phi3ForCausalLM;Q.Phi3Model;Q.Phi3PreTrainedModel;Q.Phi3VForCausalLM;Q.Phi3VImageProcessor;Q.Phi3VPreTrainedModel;Q.Phi3VProcessor;Q.PhiForCausalLM;Q.PhiModel;Q.PhiPreTrainedModel;Q.Pipeline;Q.PreTrainedModel;Q.PreTrainedTokenizer;Q.PretrainedConfig;Q.PretrainedMixin;Q.Processor;Q.PvtForImageClassification;Q.PvtImageProcessor;Q.PvtModel;Q.PvtPreTrainedModel;Q.PyAnnoteFeatureExtractor;Q.PyAnnoteForAudioFrameClassification;Q.PyAnnoteModel;Q.PyAnnotePreTrainedModel;Q.PyAnnoteProcessor;Q.QuestionAnsweringModelOutput;Q.QuestionAnsweringPipeline;Q.Qwen2ForCausalLM;Q.Qwen2Model;Q.Qwen2PreTrainedModel;Q.Qwen2Tokenizer;Q.Qwen2VLForConditionalGeneration;Q.Qwen2VLImageProcessor;Q.Qwen2VLPreTrainedModel;Q.Qwen2VLProcessor;Q.Qwen3ForCausalLM;Q.Qwen3Model;Q.Qwen3PreTrainedModel;Q.RFDetrForObjectDetection;Q.RFDetrModel;Q.RFDetrObjectDetectionOutput;Q.RFDetrPreTrainedModel;Q.RTDetrForObjectDetection;Q.RTDetrImageProcessor;Q.RTDetrModel;Q.RTDetrObjectDetectionOutput;Q.RTDetrPreTrainedModel;Q.RTDetrV2ForObjectDetection;Q.RTDetrV2Model;Q.RTDetrV2ObjectDetectionOutput;Q.RTDetrV2PreTrainedModel;var LI=Q.RawAudio;Q.RawImage;Q.RawVideo;Q.RawVideoFrame;Q.RepetitionPenaltyLogitsProcessor;Q.ResNetForImageClassification;Q.ResNetModel;Q.ResNetPreTrainedModel;Q.RoFormerForMaskedLM;Q.RoFormerForQuestionAnswering;Q.RoFormerForSequenceClassification;Q.RoFormerForTokenClassification;Q.RoFormerModel;Q.RoFormerPreTrainedModel;Q.RoFormerTokenizer;Q.RobertaForMaskedLM;Q.RobertaForQuestionAnswering;Q.RobertaForSequenceClassification;Q.RobertaForTokenClassification;Q.RobertaModel;Q.RobertaPreTrainedModel;Q.RobertaTokenizer;Q.SamImageProcessor;Q.SamImageSegmentationOutput;Q.SamModel;Q.SamPreTrainedModel;Q.SamProcessor;Q.SapiensForDepthEstimation;Q.SapiensForNormalEstimation;Q.SapiensForSemanticSegmentation;Q.SapiensPreTrainedModel;Q.SeamlessM4TFeatureExtractor;Q.SegformerFeatureExtractor;Q.SegformerForImageClassification;Q.SegformerForSemanticSegmentation;Q.SegformerImageProcessor;Q.SegformerModel;Q.SegformerPreTrainedModel;Q.Seq2SeqLMOutput;Q.SequenceClassifierOutput;Q.SiglipImageProcessor;Q.SiglipModel;Q.SiglipPreTrainedModel;Q.SiglipTextModel;Q.SiglipTokenizer;Q.SiglipVisionModel;Q.SmolVLMForConditionalGeneration;Q.SmolVLMImageProcessor;Q.SmolVLMProcessor;Q.SnacDecoderModel;Q.SnacEncoderModel;Q.SnacFeatureExtractor;Q.SnacModel;Q.SnacPreTrainedModel;Q.SpeechT5FeatureExtractor;Q.SpeechT5ForSpeechToText;Q.SpeechT5ForTextToSpeech;Q.SpeechT5HifiGan;Q.SpeechT5Model;Q.SpeechT5PreTrainedModel;Q.SpeechT5Processor;Q.SpeechT5Tokenizer;Q.SqueezeBertForMaskedLM;Q.SqueezeBertForQuestionAnswering;Q.SqueezeBertForSequenceClassification;Q.SqueezeBertModel;Q.SqueezeBertPreTrainedModel;Q.SqueezeBertTokenizer;Q.StableLmForCausalLM;Q.StableLmModel;Q.StableLmPreTrainedModel;Q.Starcoder2ForCausalLM;Q.Starcoder2Model;Q.Starcoder2PreTrainedModel;Q.StoppingCriteria;Q.StoppingCriteriaList;var _I=Q.StyleTextToSpeech2Model;Q.StyleTextToSpeech2PreTrainedModel;Q.SummarizationPipeline;Q.SuppressTokensAtBeginLogitsProcessor;Q.Swin2SRForImageSuperResolution;Q.Swin2SRImageProcessor;Q.Swin2SRModel;Q.Swin2SRPreTrainedModel;Q.SwinForImageClassification;Q.SwinForSemanticSegmentation;Q.SwinModel;Q.SwinPreTrainedModel;Q.T5ForConditionalGeneration;Q.T5Model;Q.T5PreTrainedModel;Q.T5Tokenizer;Q.TableTransformerForObjectDetection;Q.TableTransformerModel;Q.TableTransformerObjectDetectionOutput;Q.TableTransformerPreTrainedModel;Q.TemperatureLogitsWarper;var a0=Q.Tensor;Q.Text2TextGenerationPipeline;Q.TextClassificationPipeline;Q.TextGenerationPipeline;var RI=Q.TextStreamer;Q.TextToAudioPipeline;Q.TokenClassificationPipeline;Q.TokenClassifierOutput;Q.TokenizerModel;Q.TopKLogitsWarper;Q.TopPLogitsWarper;Q.TrOCRForCausalLM;Q.TrOCRPreTrainedModel;Q.TranslationPipeline;Q.UltravoxModel;Q.UltravoxPreTrainedModel;Q.UltravoxProcessor;Q.UniSpeechForCTC;Q.UniSpeechForSequenceClassification;Q.UniSpeechModel;Q.UniSpeechPreTrainedModel;Q.UniSpeechSatForAudioFrameClassification;Q.UniSpeechSatForCTC;Q.UniSpeechSatForSequenceClassification;Q.UniSpeechSatModel;Q.UniSpeechSatPreTrainedModel;Q.VLChatProcessor;Q.VLMImageProcessor;Q.ViTFeatureExtractor;Q.ViTForImageClassification;Q.ViTImageProcessor;Q.ViTMAEModel;Q.ViTMAEPreTrainedModel;Q.ViTMSNForImageClassification;Q.ViTMSNModel;Q.ViTMSNPreTrainedModel;Q.ViTModel;Q.ViTPreTrainedModel;Q.VisionEncoderDecoderModel;Q.VitMatteForImageMatting;Q.VitMatteImageProcessor;Q.VitMattePreTrainedModel;Q.VitPoseForPoseEstimation;Q.VitPoseImageProcessor;Q.VitPosePreTrainedModel;Q.VitsModel;Q.VitsModelOutput;Q.VitsPreTrainedModel;Q.VitsTokenizer;Q.Wav2Vec2BertForCTC;Q.Wav2Vec2BertForSequenceClassification;Q.Wav2Vec2BertModel;Q.Wav2Vec2BertPreTrainedModel;Q.Wav2Vec2CTCTokenizer;Q.Wav2Vec2FeatureExtractor;Q.Wav2Vec2ForAudioFrameClassification;Q.Wav2Vec2ForCTC;Q.Wav2Vec2ForSequenceClassification;Q.Wav2Vec2Model;Q.Wav2Vec2PreTrainedModel;Q.Wav2Vec2Processor;Q.Wav2Vec2ProcessorWithLM;Q.WavLMForAudioFrameClassification;Q.WavLMForCTC;Q.WavLMForSequenceClassification;Q.WavLMForXVector;Q.WavLMModel;Q.WavLMPreTrainedModel;Q.WeSpeakerFeatureExtractor;Q.WeSpeakerResNetModel;Q.WeSpeakerResNetPreTrainedModel;Q.WhisperFeatureExtractor;Q.WhisperForConditionalGeneration;Q.WhisperModel;Q.WhisperPreTrainedModel;Q.WhisperProcessor;Q.WhisperTextStreamer;Q.WhisperTimeStampLogitsProcessor;Q.WhisperTokenizer;Q.XLMForQuestionAnswering;Q.XLMForSequenceClassification;Q.XLMForTokenClassification;Q.XLMModel;Q.XLMPreTrainedModel;Q.XLMRobertaForMaskedLM;Q.XLMRobertaForQuestionAnswering;Q.XLMRobertaForSequenceClassification;Q.XLMRobertaForTokenClassification;Q.XLMRobertaModel;Q.XLMRobertaPreTrainedModel;Q.XLMRobertaTokenizer;Q.XLMTokenizer;Q.XLMWithLMHeadModel;Q.XVectorOutput;Q.YolosFeatureExtractor;Q.YolosForObjectDetection;Q.YolosImageProcessor;Q.YolosModel;Q.YolosObjectDetectionOutput;Q.YolosPreTrainedModel;Q.ZeroShotAudioClassificationPipeline;Q.ZeroShotClassificationPipeline;Q.ZeroShotImageClassificationPipeline;Q.ZeroShotObjectDetectionPipeline;Q.bankers_round;Q.cat;Q.cos_sim;Q.dot;Q.dynamic_time_warping;Q.env;Q.full;Q.full_like;Q.getKeyValueShapes;Q.hamming;Q.hanning;Q.interpolate;Q.interpolate_4d;Q.interpolate_data;Q.is_chinese_char;Q.layer_norm;Q.load_image;Q.load_video;Q.log_softmax;Q.magnitude;Q.matmul;Q.max;Q.mean;Q.mean_pooling;Q.medianFilter;Q.mel_filter_bank;Q.min;Q.ones;Q.ones_like;Q.permute;Q.permute_data;var jI=Q.pipeline;Q.quantize_embeddings;Q.rand;Q.read_audio;Q.rfft;Q.round;Q.slice;Q.softmax;Q.spectrogram;Q.stack;Q.std_mean;Q.topk;Q.window_function;Q.zeros;Q.zeros_like;async function WI(){try{if(YI())return{supported:!1,isNode:!0,reason:"",fp16Supported:!1};if(typeof navigator>"u"||!navigator.gpu)return{supported:!1,isNode:!1,reason:"WebGPU is not available (navigator.gpu is undefined)",fp16Supported:!1};const a=await navigator.gpu.requestAdapter();return a?{supported:!0,isNode:!1,reason:"",adapter:a,fp16Supported:a.features.has("shader-f16")}:{supported:!1,isNode:!1,reason:"WebGPU is not supported (no adapter found)",fp16Supported:!1}}catch(a){return{supported:!1,isNode:!1,reason:a instanceof Error?a.toString():String(a),fp16Supported:!1}}}function YI(){return typeof process<"u"&&"versions"in process&&process.versions!=null&&typeof process.versions=="object"&&"node"in process.versions&&process.versions.node!=null}async function fm(){return WI().then(a=>a.supported)}var ie=ie!==void 0?ie:{};ie.expectedDataFileDownloads||(ie.expectedDataFileDownloads=0);var HI=typeof importScripts=="function",Y2=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",gm=typeof atob=="function"?atob:function(a){var n,i,g,p,h,C,w="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",E="",v=0;a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");do n=w.indexOf(a.charAt(v++))<<2|(p=w.indexOf(a.charAt(v++)))>>4,i=(15&p)<<4|(h=w.indexOf(a.charAt(v++)))>>2,g=(3&h)<<6|(C=w.indexOf(a.charAt(v++))),E+=String.fromCharCode(n),h!==64&&(E+=String.fromCharCode(i)),C!==64&&(E+=String.fromCharCode(g));while(v1&&(Kc=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",function(a){if(!(a instanceof VI))throw a}),process.on("unhandledRejection",function(a){throw a}),ie.inspect=function(){return"[Emscripten Module object]"}),ie.expectedDataFileDownloads++,function(){if(ie.ENVIRONMENT_IS_PTHREAD)return;const a="/usr/share/espeak-ng-data",n=a+"/lang",i=a+"/voices";(function(g){var p=null,h=null;function C(){function w(x,S){if(!x)throw S+new Error().stack}function E(x,S,F){this.start=x,this.end=S,this.audio=F}ie.FS_createPath("/","usr",!0,!0),ie.FS_createPath("/usr","share",!0,!0),ie.FS_createPath("/usr/share","espeak-ng-data",!0,!0),ie.FS_createPath(a,"lang",!0,!0),ie.FS_createPath(n,"aav",!0,!0),ie.FS_createPath(n,"art",!0,!0),ie.FS_createPath(n,"azc",!0,!0),ie.FS_createPath(n,"bat",!0,!0),ie.FS_createPath(n,"bnt",!0,!0),ie.FS_createPath(n,"ccs",!0,!0),ie.FS_createPath(n,"cel",!0,!0),ie.FS_createPath(n,"cus",!0,!0),ie.FS_createPath(n,"dra",!0,!0),ie.FS_createPath(n,"esx",!0,!0),ie.FS_createPath(n,"gmq",!0,!0),ie.FS_createPath(n,"gmw",!0,!0),ie.FS_createPath(n,"grk",!0,!0),ie.FS_createPath(n,"inc",!0,!0),ie.FS_createPath(n,"ine",!0,!0),ie.FS_createPath(n,"ira",!0,!0),ie.FS_createPath(n,"iro",!0,!0),ie.FS_createPath(n,"itc",!0,!0),ie.FS_createPath(n,"jpx",!0,!0),ie.FS_createPath(n,"map",!0,!0),ie.FS_createPath(n,"miz",!0,!0),ie.FS_createPath(n,"myn",!0,!0),ie.FS_createPath(n,"poz",!0,!0),ie.FS_createPath(n,"roa",!0,!0),ie.FS_createPath(n,"sai",!0,!0),ie.FS_createPath(n,"sem",!0,!0),ie.FS_createPath(n,"sit",!0,!0),ie.FS_createPath(n,"tai",!0,!0),ie.FS_createPath(n,"trk",!0,!0),ie.FS_createPath(n,"urj",!0,!0),ie.FS_createPath(n,"zle",!0,!0),ie.FS_createPath(n,"zls",!0,!0),ie.FS_createPath(n,"zlw",!0,!0),ie.FS_createPath(a,"voices",!0,!0),ie.FS_createPath(i,"!v",!0,!0),ie.FS_createPath(i,"mb",!0,!0),E.prototype={requests:{},open:function(x,S){this.name=S,this.requests[S]=this,ie.addRunDependency("fp "+this.name)},send:function(){},onload:function(){var x=this.byteArray.subarray(this.start,this.end);this.finish(x)},finish:function(x){ie.FS_createDataFile(this.name,null,x,!0,!0,!0),ie.removeRunDependency("fp "+this.name),this.requests[this.name]=null}};for(var v=g.files,D=0;D{const w=function(B){if(typeof Y2=="boolean"&&Y2){var x=Buffer.from(B,"base64");return new Uint8Array(x.buffer,x.byteOffset,x.byteLength)}try{for(var S=gm(B),F=new Uint8Array(S.length),R=0;R=0;--h)p[48+h]=52+h,p[65+h]=h,p[97+h]=26+h;function C(L,N,V){for(var d,k,e=0,u=N,y=V.length,$=N+(3*y>>2)-(V[y-2]=="=")-(V[y-1]=="=");e>4,u<$&&(L[u++]=d<<4|k>>2),u<$&&(L[u++]=k<<6|p[V.charCodeAt(e+3)])}p[43]=62,p[47]=63;var w=new ArrayBuffer(16),E=new Int32Array(w),v=new Float32Array(w),D=new Float64Array(w);function B(L){return E[L]}function x(L,N){E[L]=N}function S(){return D[0]}function F(L){D[0]=L}function R(){throw new Error("abort")}function K(L){v[2]=L}return function(L){var N=L.a,V=N.a.buffer,d=new Int8Array(V),k=new Int16Array(V),e=new Int32Array(V),u=new Uint8Array(V),y=new Uint16Array(V),$=new Uint32Array(V),T=new Float64Array(V),O=Math.imul,Ce=Math.fround,Ae=Math.abs,be=Math.clz32,he=Math.min,Ee=Math.floor,ke=Math.ceil,De=N.b,Re=N.c,Qe=N.d,ue=N.e,ee=N.f,de=N.g,xe=N.h,Ye=N.i,Fe=N.j,qe=N.k,pA=N.l,MA=N.m,Le=N.n,fe=N.o,ye=N.p,ge=N.q,Ke=N.r,Ue=N.s,sA=N.t,AA=N.u,H=294656,oA=0,fA=0,me=0;function vA(A){var t,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0,PA=0,OA=0,tt=0,ht=0,xt=0,Nt=0,Jt=0,ir=0,br=0,or=0,Tr=0,Rr=0,qr=0,ss=0,as=0,ps=0,sa=0,aa=0,Xs=0,In=0,Vn=0,en=0,Un=0,Kn=0,Do=0,Ji=0,To=0,Go=0;if(H=t=H-16|0,(0|A)!=2)if(A=e[33283],e[A>>2]!=e[A+4>>2]){if(rs(e[e[32972]+60>>2]),Y=e[47192],as=t+12|0,In=t+8|0,H=m=H-6832|0,e[m+6816>>2]=0,e[m+6808>>2]=32,e[m+6800>>2]=0,Y){e[47351]=0,e[47350]=0,e[47352]=0,d[189076]=0,A=e[33284],e[47353]=(0|A)>0?A:0,e[47355]=e[47354]+1,eA(dA=m+5184|0,0,1600),Rr=m+6800|0,H=c=H-2608|0,e[c+2156>>2]=32,e[c+2148>>2]=0,u[134760]&&(d[190280]=0,d[134760]=0),e[Y+8216>>2]=0,e[Y+8220>>2]=0,e[Y+288>>2]=0,e[m+780>>2]=0,d[189360]=0;e:if(A=e[33691])e[c+2152>>2]=A;else{A:{r:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2]){e[c+2152>>2]=0;break e}if(!(r=e[33285]))break r}e[33285]=0;break A}e[33284]=e[33284]+1,A=e[33283],r=0|$A[e[A+8>>2]](A)}e[c+2152>>2]=r}Kn=dA+2|0,Oe=32;e:{for(;;){Ge=Oe;A:{r:{a:{if(r=e[33691],(o=e[33285])?A=0:(o=e[33285],A=e[33283],A=e[A>>2]==e[A+4>>2]),r|!A|o||!(e[32524]<0)){if(!Se(e[c+2156>>2])){if((o=(0|(A=e[49828]))>0)&(0|(r=A))<(0|(A=e[33284])))break a;if(!((0|(r=e[49845]))<=0|(0|A)<(0|r))){e[49845]=0,d[134760]=1,e[33285]=e[c+2152>>2],s=16384;break e}}Oe=e[c+2156>>2],e[c+2156>>2]=e[c+2152>>2];n:{o:{c:{u:{l:{if((0|(r=e[32524]))>=0){if(u[r+134736|0])break l;e[32524]=-1}if(r=e[33285])break c;if(A=e[33283],e[A>>2]!=e[A+4>>2])break u;r=32;break n}e[33691]|r||(e[c+2156>>2]=d[134736],r=1),e[32524]=r+1,r=d[r+134736|0];break n}if(!(r=e[33285]))break o}e[33285]=0;break n}e[33284]=e[33284]+1,A=e[33283],r=0|$A[e[A+8>>2]](A)}e[c+2152>>2]=r,e[33691]=0;n:if(!(I|!e[47203])){o:{if((0|(A=e[c+2156>>2]))!=60){if((0|r)!=35&r-97>>>0>25|(0|A)!=38)break n;for(o=e[33285],l=0;;){c:{if(e[c+2156>>2]=r,!o){if(A=e[33283],e[A>>2]==e[A+4>>2])break c;r=e[c+2156>>2]}if(!(!((r=!!(0|Se(r)))|(0|(A=e[c+2156>>2]))==35)|l>>>0>19)){d[(c+112|0)+l|0]=A,l=l+1|0,(r=e[33285])?(e[33285]=0,o=0):(e[33284]=e[33284]+1,A=e[33283],r=0|$A[e[A+8>>2]](A),o=e[33285]);continue}}break}d[(c+112|0)+l|0]=0;c:{u:{if(!(r=e[33285])){if(r=0,A=e[33283],e[A>>2]==e[A+4>>2])break c;if(!(r=e[33285]))break u}e[33285]=0;break c}e[33284]=e[33284]+1,A=e[33283],r=0|$A[e[A+8>>2]](A)}e[c+2152>>2]=r,e[c+100>>2]=e[c+2156>>2],e[c+104>>2]=r,e[c+96>>2]=c+112,cA(134736,84252,c+96|0);c:{if(e[c+2156>>2]==59){l=c+2156|0,W=c+2152|0,H=o=H-32|0;u:if(u[0|(r=c+112|0)]!=35)A=-1,(0|(r=ft(130752,r)))!=-1&&(e[l>>2]=r,e[W>>2]||(e[W>>2]=32),A=r);else{if(u[0|(A=r+1|0)]==120){e[o>>2]=l,A=UA(r+2|0,90005,o);break u}e[o+16>>2]=l,A=UA(A,90070,o+16|0)}if(H=o+32|0,(0|A)>0)break c}e[32524]=0,e[c+2156>>2]=38,e[c+2152>>2]=32;break n}if((0|(A=e[c+2156>>2]))>32)break n;if(!(r=e[33692]-20|0)|(0|r)==16)break o;break n}if((0|r)!=47&&!Xe(r)&&(0|(A=e[c+2152>>2]))!=63&&(0|A)!=33)break n;if((0|(A=e[c+2148>>2]))>780){e[33691]=e[c+2156>>2],d[0|(A=A+189424|0)]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],s=16384;break e}for(W=e[33285],l=0,r=e[c+2152>>2];e[c+2156>>2]=r,o=0,W||(A=e[33283],o=e[A>>2]==e[A+4>>2],r=e[c+2156>>2]),!((0|r)==62|o|l>>>0>499);)e[(c+144|0)+(l<<2)>>2]=r,l=l+1|0,(r=e[33285])?(W=0,e[33285]=0):(e[33284]=e[33284]+1,A=e[33283],r=0|$A[e[A+8>>2]](A),W=e[33285]);e[(o=c+144|0)+(l<<2)>>2]=0,e[c+2152>>2]=32,He=c+2148|0,Ge=e[32525],r=0,H=Ie=H-560|0;c:if(Rn(o,84333,3)&&Rn(o,84477,4)){for(A=(o+(_i(o)<<2)|0)-4|0,(0|(CA=e[A>>2]))==47&&(e[A>>2]=32);;){if(A=e[o+(r<<2)>>2]){if(gr(A))A=r;else if(d[(Ie+512|0)+r|0]=vs(A<<24>>24),A=39,(0|(r=r+1|0))!=39)continue}else A=r;break}if(d[(Ie+512|0)+A|0]=0,u[Ie+512|0]!=47){if((0|(W=ft(130480,Ie+512|0)))!=16&&(r=e[He>>2],e[He>>2]=r+1,d[r+189424|0]=32),(0|CA)==47&&(r=0,!(502241>>>W&1)))break c}else(0|(r=ft(130480,Ie+512|1)))!=16&&(l=e[He>>2],e[He>>2]=l+1,d[l+189424|0]=32),W=r+32|0;l=o+(A<<2)|0,A=e[33708],I=O(A,76)+133076|0,r=262174;u:{l:{i:{p:switch(W-1|0){case 33:C:if(!((0|A)<=1)){for(;;){if(e[O(r=A-1|0,76)+133152>>2]==2)break C;if(e[33708]=r,o=A>>>0>2,A=r,!o)break}A=1}r=cr(l,34,A);break c;case 32:C:if(!((0|A)<=1)){for(;;){if(e[O(r=A-1|0,76)+133152>>2]==1)break C;if(e[33708]=r,o=A>>>0>2,A=r,!o)break}A=1}r=cr(l,33,A)+524328|0;break c;case 9:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=(I=r<<6)+134912|0)>>2]=10,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,A=_t(l,88301),o=_t(l,88390),zn(A,88479)?zn(A,88528)||(e[28+(134912+(r<<6)|0)>>2]=Os(o,130224)):e[24+(I+134912|0)>>2]=Os(o,130192),Lr(He,e[33709]);break i;case 2:for((0|(A=e[33709]))<=18&&(e[33709]=A+1),e[(A=(Vn=A<<6)+134912|0)>>2]=3,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,Nt=1;;){if(o=_t(l,e[(Jt=Nt<<2)+130448>>2])){CA=0,A=e[Jt+131072>>2];C:if(W=e[A>>2])for(;;){for(r=0;I=d[r+W|0],(Ge=e[(r<<2)+o>>2])&&(r=r+1|0,(0|I)==(0|Ge)););h:switch(Ge-34|0){case 0:case 5:if(!I)break C;break;default:break h}if(!(W=e[A+((CA=CA+1|0)<<3)>>2]))break}Do=Jt+(Vn+134912|0)|0;C:if((0|(A=e[4+(A+(CA<<3)|0)>>2]))>=0)A=(0|O(A,e[4+(Jt+134912|0)>>2]))/100|0;else{for(;o=(A=o)+4|0,gr(e[A>>2]););for(en=e[A>>2]==43,o=((Un=e[(A=A+(en<<2)|0)>>2]==45)<<2)+A|0,CA=Ie+96|0,H=W=(H=I=H-16|0)-224|0,eA(W+16|0,0,144),A=W+160|4,e[W+24>>2]=A,e[W+60>>2]=A,e[W+92>>2]=-1,e[W+64>>2]=60,e[W+20>>2]=A,e[W+48>>2]=19,r=o;r=(A=r)+4|0,Ge=(Ge=e[A>>2])?Mt(124960,Ge):0;);e[W+100>>2]=A,fs(r=W+16|0,0,0),HA(W,r,1,1),r=e[W+8>>2],Ji=e[W+12>>2],Ge=e[W>>2],To=e[W+4>>2],CA&&(Go=CA,CA=e[W+136>>2]+(e[W+20>>2]-e[W+60>>2]|0)|0,e[Go>>2]=CA?A+(CA<<2)|0:o),e[(A=I)+8>>2]=r,e[A+12>>2]=Ji,e[A>>2]=Ge,e[A+4>>2]=To,H=W+224|0,pe=ba(e[A>>2],e[A+4>>2],e[A+8>>2],e[A+12>>2]),H=A+16|0;h:{r=100;b:if((0|(A=o))!=(0|(o=e[Ie+96>>2]))){r=Un?-1:en;m:{if((0|(A=e[o>>2]))!=115){if((0|A)!=37)break m;if(Ae(pe=r?+(0|r)*pe+100:pe)<2147483648){r=~~pe;break b}r=-2147483648;break b}if(e[o+4>>2]==116){F(+(ht=pe*+(0|r)/12)),A=0|B(1),B(0);v:{if((r=(A=A>>>20&2047)-969|0)>>>0>=63){if(pe=ht+1,(0|r)<0)break v;if(F(+ht),r=0|B(1),o=0|B(0),!(A>>>0<1033)){if(pe=0,!o&(0|r)==-1048576||(pe=ht+1,A>>>0>=2047))break v;if((0|r)>0|(0|r)>=0){T[(A=H-16|0)+8>>3]=3105036184601418e216,pe=3105036184601418e216*T[A+8>>3];break v}if(!(r>>>0<3230714880)){T[(A=H-16|0)+8>>3]=12882297539194267e-247,pe=12882297539194267e-247*T[A+8>>3];break v}}I=A,A=!(o<<1)&(0|(A=r<<1|o>>>31))==-2129002496|A>>>0<2165964800?I:0}ps=(ht=(pe=ht-((qr=(pe=T[14416])+ht)-pe))*pe)*ht*(pe*T[14421]+T[14420]),ht*=pe*T[14419]+T[14418],pe*=T[14417],F(+qr),B(1),I=0|B(0),pe=ps+(ht+(pe+T[(o=I<<4&2032)+115376>>3])),Ge=e[(o=o+115384|0)>>2],W=e[o+4>>2],o=(r=Ge)+(Ge=0)|0,r=(I<<13)+W|0,r=o>>>0>>0?r+1|0:r,A?(x(0,0|o),x(1,0|r),pe=(ht=+S())*pe+ht):-2147483648&I?(x(0,0|o),x(1,r+1071644672|0),(pe=(qr=(ht=+S())*pe)+ht)<1&&(e[(A=H-16|0)+8>>2]=0,e[A+12>>2]=1048576,T[A+8>>3]=22250738585072014e-324*T[A+8>>3],pe=(pe=(ps=pe+1)+(qr+(ht-pe)+(pe+(1-ps)))+-1)==0?0:pe),pe*=22250738585072014e-324):(x(0,0|o),x(1,r+-1048576|0),pe=(ht=+S())*pe+ht,pe+=pe)}if(Ae(pe*=100)<2147483648){r=~~pe;break b}r=-2147483648;break b}}if((0|Nt)!=1)break h;if(r)r=(A=Ae(pe=pe*+(0|r)*100)<2147483648?~~pe:-2147483648)+100|0;else{if(Ae(pe*=100)<2147483648){r=~~pe;break b}r=-2147483648}}A=(0|O(r,e[Jt+134848>>2]))/100|0;break C}A=Ae(pe)<2147483648?~~pe:-2147483648,r&&(A=e[Jt+134848>>2]+O(A,r)|0)}e[Do+4>>2]=A}if((0|(Nt=Nt+1|0))==5)break}Lr(He,e[33709]);break i;case 11:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=134912+(r<<6)|0)>>2]=12,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1,A=(A=_t(l,88658))?Os(A,130400):3,o=134912+(r<<6)|0,e[e[47192]+148>>2]!=1?(e[52+(134912+(r<<6)|0)>>2]=A,A=u[A+102776|0]):(e[20+(134912+(r<<6)|0)>>2]=u[A+102764|0],A=u[A+102770|0]),e[o+12>>2]=A,Lr(He,e[33709]);break i;case 34:case 41:case 43:if(!((0|(A=e[33709]))<=0)){if(l=W-32|0,W=0,o=0,r=0,A>>>0>=4)for(I=-4&A,CA=0;Nt=2|r,Jt=1|r,o=(0|l)==e[134912+((Ge=3|r)<<6)>>2]?Ge:(0|l)==e[134912+(Nt<<6)>>2]?Nt:(0|l)==e[134912+(Jt<<6)>>2]?Jt:(0|l)==e[134912+(r<<6)>>2]?r:o,r=r+4|0,(0|I)!=(0|(CA=CA+4|0)););if(I=3&A)for(;o=(0|l)==e[134912+(r<<6)>>2]?r:o,r=r+1|0,(0|I)!=(0|(W=W+1|0)););(0|o)<=0||(e[33709]=o,A=o)}Lr(He,A);break i;case 7:if(A=_t(l,88741),r=_t(l,88860),(0|Os(A,130176))!=1)break i;A=e[He>>2],e[He>>2]=A+1,d[A+189424|0]=91,A=e[He>>2],e[He>>2]=A+1,d[A+189424|0]=91,A=Va((A=e[He>>2])+189424|0,r,800-A|0)+e[He>>2]|0,e[He>>2]=A+1,d[A+189424|0]=93,A=e[He>>2],e[He>>2]=A+1,d[A+189424|0]=93;break i;case 35:e[33692]==36&&(d[e[He>>2]+189424|0]=0,(o=ft(131104,r=(A=e[33707])+189424|0))&&(e[He>>2]=Ar(o,r)+A)),A=e[He>>2],e[He>>2]=A+1,d[A+189424|0]=1,A=e[He>>2],e[He>>2]=A+1,d[A+189424|0]=89,e[33692]=0;break i;case 8:if(!(A=_t(l,89299)))break i;d[134824]=1,r=e[He>>2],e[He>>2]=Va(r+189424|0,A,800-r|0)+e[He>>2];break i;case 13:d[134824]=1;break i;case 40:case 45:d[134824]=0;break i;case 4:if(!(A=_t(l,89360)))break i;if(Va(Ie+352|0,A,160),u[Ie+352|0]&&!tr(199328,Ie+352|0)){d[134760]=1,d[199328]=0,r=16384;break c}if((0|(A=Ja(Ie+352|0)))<0)break i;e[Ie+20>>2]=A,e[Ie+16>>2]=1,cA(A=Ie+352|0,89460,Ie+16|0),DA(e[He>>2]+189424|0,A),e[He>>2]=e[He>>2]+BA(A);break i;case 10:(0|(r=e[33709]))<=18&&(e[33709]=r+1),e[(A=134912+(r<<6)|0)>>2]=11,e[A+4>>2]=-1,e[A+8>>2]=-1,e[A+52>>2]=-1,e[A+56>>2]=-1,e[A+44>>2]=-1,e[A+48>>2]=-1,e[A+36>>2]=-1,e[A+40>>2]=-1,e[A+28>>2]=-1,e[A+32>>2]=-1,e[A+20>>2]=-1,e[A+24>>2]=-1,e[A+12>>2]=-1,e[A+16>>2]=-1,e[A+60>>2]=-1;C:if(A=_t(l,89514)){if(Va(Ie+352|0,A,160),e[34441]){if((0|(A=Ja(Ie+352|0)))<0||0|$A[e[34441]](1,A+e[33282]|0,Ge))break C;e[Ie+68>>2]=A,e[Ie+64>>2]=1,cA(Ie+352|0,89658,Ie- -64|0)}else{if(!Ge|u[Ie+352|0]==47?A=Tn(Ie+352|0):(e[Ie+48>>2]=Ge,e[Ie+52>>2]=Ie+352,cA(A=Ie+96|0,89564,Ie+48|0),A=Tn(A)),(0|A)<0)break C;e[Ie+36>>2]=A,e[Ie+32>>2]=1,cA(Ie+352|0,89623,Ie+32|0)}A=Ie+352|0,DA(e[He>>2]+189424|0,A),e[He>>2]=e[He>>2]+BA(A),e[4+(134912+(r<<6)|0)>>2]=1}if(Lr(He,e[33709]),(0|CA)==47){Ya(11,He),r=16384;break c}d[134772]=1,r=16384;break c;case 42:Ya(43,He),d[134772]=0,r=16384;break c;case 12:C:{if(A=_t(l,89714)){if(r=16384,(I=(0|(A=Os(A,130336)))<0?2:A)>>>0<=2&&(A=e[He>>2],e[Ie+84>>2]=I,e[Ie+80>>2]=1,cA(A+189424|0,89770,Ie+80|0),e[He>>2]=e[He>>2]+3,r=0),A=e[102784+(I<<2)>>2],!(o=_t(l,89907)))break C;break l}if(r=16384,o=_t(l,89907))break l;A=21;break u}if(I>>>0<3)break i;break u;case 0:(A=_t(l,89965))&&(Va(r=Ie+352|0,A,160),Ja(r)),r=cr(l,1,e[33708])?147456:0;break c;case 1:r=cr(l,2,A)?147456:0;break c;case 5:r=0,e[I>>2]==6&&(r=cr(l,38,A),A=e[33708]),r=524358+(cr(l,6,A)|r)|0;break c;case 6:r=0,(0|(o=e[I>>2]))==6&&(r=cr(l,38,A),o=e[I>>2]),(0|o)==7&&(r=cr(l,39,e[33708])|r),r=524358+(r|cr(l,7,e[33708]))|0;break c;case 37:if(r=524328,e[I>>2]!=6)break c;r=cr(l,38,A)+524328|0;break c;case 38:if(r=524358,(-2&e[I>>2])!=6)break c;r=cr(l,39,A)+524358|0;break c;case 14:case 46:break c;case 3:break p;default:break i}A=_t(l,88893),r=_t(l,88992),o=_t(l,89153),l=Os(A,130272),r=Os(r,130320),A=Ln(o,0),e[Ie>>2]=1,o=(0|A)<2?193:A- -64|0,r=(0|(A=(0|r)==1?19:l))==64?o:A,e[Ie+4>>2]=r,cA(A=Ie+352|0,89230,Ie),DA(e[He>>2]+189424|0,A),A=e[He>>2]+BA(A)|0,e[He>>2]=A,e[33707]=A,e[33692]=r}r=0;break c}A=Ln(o,1),o=e[33722],ae(1,e[33713]),(0|(A=(0|(o=(0|O(A,o))/100<<8))/(0|O(e[36429],10))|0))<=199&&(A=(0|o)/(0|O(e[36428],10))|0),r=r||16384}o=A>>>5|0,l=A,r=((A=(0|A)>4095)?o>>>0>=4095?4095:o:l)+(A?8388608|r:r)|0}if(H=Ie+560|0,r){if(A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,!(131072&r)){s=r;break e}DA(189360,134784),s=r;break e}e[c+2156>>2]=32;c:{u:{if(!(r=e[33285])){if(I=0,A=e[33283],e[A>>2]==e[A+4>>2])continue;if(!(r=e[33285]))break u}e[33285]=0;break c}e[33284]=e[33284]+1,A=e[33283],r=0|$A[e[A+8>>2]](A)}e[c+2152>>2]=r,I=0;continue}e[c+2156>>2]=A+57344}if(u[134824])continue;if(o=e[c+2156>>2],!((0|(A=e[c+2152>>2]))!=10|e[47268]!=-1)){(0|(s=ws(o)))==16384?(A=e[c+2148>>2],k[dA+(A<<1)>>1]=e[33284]-e[47353],e[Rr>>2]=A,s=524328,A=Ar(e[c+2156>>2],A+189424|0)+e[c+2148>>2]|0):A=e[c+2148>>2],d[0|(A=A+189424|0)]=32,d[A+1|0]=0;break e}n:if((0|o)==1){if((0|A)!=66){if((0|A)!=86)break n;for(A=e[c+2148>>2],e[c+2148>>2]=A+1,d[A+189424|0]=0;;){o:{c:{u:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])break o;if(!(r=e[33285]))break u}e[33285]=0;break c}e[33284]=e[33284]+1,A=e[33283],r=0|$A[e[A+8>>2]](A)}if(e[c+2156>>2]=r,!(gr(r)||(0|(A=e[c+2148>>2]))>=799)){e[c+2148>>2]=A+1,d[A+189424|0]=e[c+2156>>2];continue}}break}d[e[c+2148>>2]+189424|0]=0,s=147456;break e}r=e[c+2148>>2],d[0|(A=r+189424|0)]=32,d[A+1|0]=32,d[A+2|0]=32,d[A+3|0]=0,e[c+2148>>2]=r+3;o:{c:{u:{l:{i:{p:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])break l;if(!(r=e[33285]))break p}e[33285]=0;break i}e[33284]=e[33284]+1,A=e[33283],r=0|$A[e[A+8>>2]](A)}if(e[c+2152>>2]=r,o=0,(0|r)!=48)break u;break c}r=e[c+2152>>2]}if(e[47208]=0,e[47201]=1,(0|r)==49)break o;for(o=e[33285],l=0;;){u:{if(!o){if(A=e[33283],e[A>>2]==e[A+4>>2])break u;r=e[c+2152>>2]}if(!(gr(r)|l>>>0>58)){e[188832+(l<<2)>>2]=e[c+2152>>2],(r=e[33285])?(e[33285]=0,o=0):(e[33284]=e[33284]+1,A=e[33283],r=0|$A[e[A+8>>2]](A),o=e[33285]),l=l+1|0,e[c+2152>>2]=r,A=e[c+2148>>2],e[c+2148>>2]=A+1,d[A+189424|0]=32;continue}}break}o=2,e[188832+(l<<2)>>2]=0}e[47201]=o}o:{if(!(r=e[33285])){if(A=e[33283],e[A>>2]==e[A+4>>2])continue;if(!(r=e[33285]))break o}e[33285]=0,e[c+2152>>2]=r;continue}e[33284]=e[33284]+1,A=e[33283],e[c+2152>>2]=$A[e[A+8>>2]](A);continue}br=br+1|0,r=0,A=e[Y+340>>2];n:if(l=y[A>>1]){for(;;){if((65535&l)!=(0|o)){if(l=y[A+((r=r+2|0)<<1)>>1])continue;break n}break}o:switch(0|(A=y[A+(r<<1|2)>>1])){case 1:continue;case 0:break n;default:break o}e[c+2156>>2]=A,o=A}Se(o)?(te=1,r=e[c+2156>>2]):OA?(e[33285]=e[c+2152>>2],r=1328,e[c+2156>>2]=1328,e[c+2152>>2]=32,OA=0):(0|(r=e[c+2156>>2]))!=3851?(OA=0,(0|r)!=3405|e[c+2152>>2]!=8205||(r=3406,e[c+2156>>2]=3406)):(r=32,e[c+2156>>2]=32,OA=0);n:if(Es(r)){if(e[Y+8216>>2]=e[Y+8216>>2]+1,e[33692]|e[47200]!=2||Es(Oe)||(e[c+2544>>2]=0,e[c+2548>>2]=0,e[c+2304>>2]=84731,!IA(Y,c+2304|0,c+2160|0,c+2544|0,0,0))||(Zt(Y,A=c+2160|0,c+2544|0,-1,0),dr(r=A,A=c+2336|0),e[c+80>>2]=A,cA(r=c+2240|0,85451,c+80|0),A=e[c+2148>>2],(0|(r=BA(r)+A|0))>=800))break n;DA(A+189424|0,c+2240|0),e[c+2148>>2]=r}else Xe(e[c+2156>>2])&&(e[Y+8220>>2]=e[Y+8220>>2]+1);if(r=e[c+2152>>2],A=e[c+2156>>2],e[47204])if((0|I)>0)I=I-1|0;else{if(!((0|A)!=91|(0|r)!=91)){o=0,I=-1;break A}I=(0|A)==93&&(0|r)==93?2:I}if((0|A)==10){for(o=e[33285],l=0;;){n:{if(!o){if(A=e[33283],e[A>>2]==e[A+4>>2])break n;r=e[c+2152>>2]}if(gr(r)){l=(e[c+2152>>2]==10)+l|0,(r=e[33285])?(e[33285]=0,o=0):(e[33284]=e[33284]+1,A=e[33283],r=0|$A[e[A+8>>2]](A),o=e[33285]),e[c+2152>>2]=r;continue}}break}if((0|l)>0){s&&eA(A=or+189424|0,32,zA(c+2336|0,A)),A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],s=e[47203]?524358:O((0|l)>=3?3:l,30)+524328|0;break e}if(A=e[47268]<(0|br),br=0,!A){A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],s=262174;break e}}if(o=0,e[33692]|I)break A;if(A=0,!s)break r;if(gr(e[c+2156>>2])){A=s;break r}if(zt(e[c+2156>>2])&&j(e[c+2156>>2]))break r;e[33691]=e[c+2156>>2],d[0|(A=or+189424|0)]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2];break e}OA&&(e[c+2148>>2]=Ar(1328,e[c+2148>>2]+189424|0)+e[c+2148>>2]),s&&eA(A=or+189424|0,32,zA(c+2336|0,A)),A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0}s=589864;break e}if(!((0|(r=e[c+2156>>2]))!=46|e[c+2152>>2]!=46)){r:{a:{n:{if(!(r=e[33285])){if(r=e[33283],e[r>>2]==e[r+4>>2])break r;if(!(r=e[33285]))break n}e[33285]=0;break a}e[33284]=e[33284]+1,r=e[33283],r=0|$A[e[r+8>>2]](r)}if(f=r,(0|r)==46)for(e[c+2152>>2]=32,e[c+2156>>2]=8230,f=e[33285];;){a:{n:{if(!f){if(r=e[33283],e[r>>2]==e[r+4>>2]){f=46;break r}if(!(f=e[33285]))break n}e[33285]=0,r=0;break a}e[33284]=e[33284]+1,r=e[33283],f=0|$A[e[r+8>>2]](r),r=e[33285]}if((0|f)!=46)break r;e[c+2152>>2]=32,e[c+2156>>2]=8230,f=r}}(0|(r=e[c+2156>>2]))!=8230?e[33285]=f:(e[c+2152>>2]=f,r=8230)}if(CA=0,(0|(W=ws(r)))!=16384){r:if(536621&W)for(r=e[33285];;){if(!r&&(r=e[33283],e[r>>2]==e[r+4>>2])||!(536621&ws(e[c+2152>>2])))break r;(f=e[33285])?(e[33285]=0,r=0):(e[33284]=e[33284]+1,r=e[33283],f=0|$A[e[r+8>>2]](r),r=e[33285]),e[c+2152>>2]=f}if(1048576&W){e[m+780>>2]=W>>>12&15,OA=1,I=0,s=A;continue}(gr(e[c+2152>>2])|32768&W||Cn(e[c+2152>>2])||(0|(r=e[c+2152>>2]))==63||(l=0,e[33285]||(r=e[33283],l=e[r>>2]==e[r+4>>2],r=e[c+2152>>2]),l||(0|r)==1))&&(CA=1)}if((0|(r=e[c+2156>>2]))==57404&&(e[c+2156>>2]=60,r=60),e[47201]){s=0;r:if(!(1<<(l=Xr(r))&1879048255&&l>>>0<=30)){if(!((l=Xr(r))>>>0>27)){if(116672&(I=1<>2]))){e[Y+288>>2]=0,o=e[c+2156>>2],d[c+2336|0]=0,I=e[c+2152>>2],r=0;r:{a:if(!((0|(s=e[34064]))<=0))for(;;){if((0|o)==e[136272+(r<<4)>>2]){if(e[136276+(r<<4)>>2])break r;if(Ws(0,r))break a;break r}if((0|s)==(0|(r=r+1|0)))break}r=-1}r:if((0|r)>=0)e[c>>2]=r,cA(c+2336|0,86007,c),e[33285]=I;else if((l=!CA)|(0|o)!=46|(0|I)==46||(e[c+2600>>2]=0,e[c+2604>>2]=0,e[c+2540>>2]=86036,!IA(Y,c+2540|0,c+2544|0,c+2600|0,0,0))?r=Ys(c+2240|0,Y,o,0):(Zt(Y,r=c+2544|0,c+2600|0,-1,0),dr(s=r,r=c+2160|0),e[c+64>>2]=r,cA(r=c+2304|0,85451,c- -64|0)),s=r,l|!e[c+2148>>2]|2&u[Y+76|0]){for(r=e[33285],l=1;;){a:{n:{if(!r){if(r=e[33283],e[r>>2]==e[r+4>>2]|(0|o)==60|(0|o)!=(0|I))break a;if(l=l+1|0,I=e[33285])break n;e[33284]=e[33284]+1,r=e[33283],I=0|$A[e[r+8>>2]](r),r=e[33285];continue}if((0|o)==60|(0|o)!=(0|I))break a;I=r,l=l+1|0}r=0,e[33285]=0;continue}break}if(e[c+2152>>2]=I,CA&&(e[33285]=I),(0|l)==1){e[c+16>>2]=s,cA(c+2336|0,86219,c+16|0);break r}if((0|l)<=3){if(d[c+2336|0]=0,(0|(r=e[50786]))<=299&&(e[c+2336>>2]=u[86728]|u[86729]<<8|u[86730]<<16|u[86731]<<24,k[c+2340>>1]=u[86732]|u[86733]<<8),(0|l)>0){for(;e[c+32>>2]=s,cA(r=c+2160|0,86219,c+32|0),I=l>>>0>1,Jr(c+2336|0,r),l=l-1|0,I;);r=e[50786]}if((0|r)>299)break r;e[c+2160>>2]=u[86857]|u[86858]<<8|u[86859]<<16|u[86860]<<24,r=u[86860]|u[86861]<<8|u[86862]<<16|u[86863]<<24,d[c+2163|0]=r,d[c+2164|0]=r>>>8,d[c+2165|0]=r>>>16,d[c+2166|0]=r>>>24,Jr(c+2336|0,c+2160|0);break r}e[c+56>>2]=s,e[c+52>>2]=l,e[c+48>>2]=s,cA(c+2336|0,86932,c+48|0)}else e[33691]=o,e[33285]=I,k[c+2336>>1]=32;if(l=BA(s=c+2336|0),DA((r=e[c+2148>>2])+189424|0,s),e[c+2148>>2]=r+l,CA){if((0|o)==45){s=16384;break e}if(s=ws(o),!(2&u[Y+76|0]|(0|r)<=0)){s=(-32769&s)==266270?262148:(28672&s)==4096?266244:262148;break e}if(!(524288&s)){s=(28672&s)==4096?266244:262148;break e}if((0|s)>=0)break e}o=e[c+2156>>2]}}if(o|!(2097152&W)||(r=DA(e[c+2148>>2]+189424|0,Ys(c+2336|0,Y,e[c+2156>>2],1)),u[0|r]?(e[c+2148>>2]=e[c+2148>>2]+BA(r),W&=-28673,o=e[c+2156>>2]):o=0),I=0,CA){r:if(gr(f=e[c+2152>>2]))for(l=e[33285],r=0;;){if(!l&&(s=e[33283],e[s>>2]==e[s+4>>2])||!gr(f))break r;r=((0|f)==10)+r|0,(f=e[33285])?(e[33285]=0,l=0):(e[33284]=e[33284]+1,s=e[33283],f=0|$A[e[s+8>>2]](s),l=e[33285])}else r=0;s=(0|(I=e[c+2156>>2]))==46&&(0|r)<2?4194304|W:W;r:{if(!r){l=1,(0|I)!=44|(0|Oe)!=46|e[Y+212>>2]!=26741|Ge-48>>>0>=10||f-48>>>0>=10&&!j(f)||(e[c+2156>>2]=1367,l=0),(0|(W=e[c+2156>>2]))!=46|(0|f)!=39||(I=l,W=e[33283],(0|(Ie=e[W>>2]))==e[W+4>>2]?l=0:(l=0|$A[e[W+8>>2]](W),e[W>>2]=Ie),W=e[c+2156>>2],l=(0|l)!=115&I);a:if((0|W)!=46)l&=te;else{n:if(1&d[Y+106|0]){if(!(Oe-48>>>0<10)&&((I=Oe-73|0)>>>0>15|!(1<>>0<=15||gr(Ge))))break n;l=Oe-48>>>0>=10?0:!j(f)&(0|f)!=45&l}if(j(f)&&(l=u[Y+208|0]!=0&l),te){W=e[c+2156>>2];break a}W=32,e[c+2156>>2]=32,l=0}if(!(!l|(0|W)!=46|!e[47203]|(0|f)!=60)){or=e[c+2148>>2],A=s;break r}if(!l)break r}if(A=e[c+2148>>2]+189424|0,d[0|A]=32,d[A+1|0]=0,e[33285]=f,Oe-48>>>0<10&&(s=zt(f)?s:-4194305&s),(0|r)<2)break e;s=(0|s)==536621?536656:(0|s)==532520?532555:524358;break e}(e[33285]||(I=0,r=e[33283],e[r>>2]!=e[r+4>>2]))&&(I=0,gr(e[c+2152>>2])&&(e[33285]=f))}s=A}if(e[33712]!=1){if((0|o)!=(0|(r=e[c+2156>>2])))l=e[c+2148>>2],(0|r)==57404&&(r=60,e[c+2156>>2]=60);else{A:{if(Cn(o))r=57384;else{if(r=45,e[c+2156>>2]==45)break A;r=32}e[c+2156>>2]=r}l=e[c+2148>>2]}e[c+2148>>2]=Ar(r,l+189424|0)+e[c+2148>>2],gr(e[c+2156>>2])||Cn(e[c+2156>>2])||(A=e[c+2148>>2],k[dA+(A<<1)>>1]=e[33284]-e[47353],(0|A)<=(l+1|0)||eA(Kn+(l<<1)|0,255,A+~l<<1)),r=e[c+2148>>2],e[Rr>>2]=r;A:{r:{if((0|r)>725){if(!zt(e[c+2156>>2]))break r;r=e[c+2148>>2]}if((0|r)<796)continue;break A}if(r=e[c+2148>>2],!(e[c+2156>>2]-48>>>0>=10)&&(0|r)<796)continue}break}}d[0|(A=r+189424|0)]=32,d[A+1|0]=0,e[33285]=e[c+2152>>2],s=16384}H=c+2608|0,OA=s,as&&(A=e[m+780>>2],e[as>>2]=A||OA>>>12&7),A=(m+5184|0)+(e[m+6800>>2]<<1)|0,k[A+6>>1]=0,k[A+2>>1]=0,k[A+4>>1]=32767,W=O(4095&OA,8388608&OA?320:10),s=189424;e:{A:{r:if(A=u[189424]){for(;;){if(!!(255&(A=A<<24>>24))&A>>>0<33){if(A=u[0|(s=s+1|0)])continue;break r}break}if(u[0|s])break A}W=(0|(r=W-(A=e[47566])|0))>0?r:0,e[47566]=W+A,OA=u[190268]?524288|OA:OA,e[Y+8240>>2]=OA;break e}e[47566]=W,A=u[190268],e[Y+8240>>2]=OA,A&&(tt=1,e[47568]=e[47568]+1,(0|(A=e[47569]))<=0||(A=A-1|0,e[47569]=A,A||(d[190280]=0)))}e[49572]=1,e[47572]=655360,e[47573]=0,e[Y+8184>>2]=0,e[Y+8188>>2]=0,A=0,e[Y+288>>2]=0,e[(r=Y- -8192|0)>>2]=0,e[r+4>>2]=0,e[Y+8200>>2]=0,e[Y+8224>>2]=0,e[Y+8228>>2]=0,e[(r=Y+8232|0)>>2]=0,e[r+4>>2]=0,d[m+786|0]=32,k[m+784>>1]=8192,e[m+6812>>2]=32,k[m+1588>>1]=3,e[m+1584>>2]=0,s=0;e:if(!((0|(r=e[m+6800>>2]))<=0)){for(;;){if(k[(m+5184|0)+(s<<1)>>1]>0)break e;if((0|r)==(0|(s=s+1|0)))break}s=r}if(r=y[(m+5184|0)+(s<<1)>>1],k[m+1592>>1]=r,r)for(;A=!!(65535&~r)+A|0,r=y[(m+5184|0)+((s=s+1|0)<<1)>>1];);for(d[m+1594|0]=A,l=3,dA=1,s=0;;){Ge=e[m+6808>>2],er(m+6808|0,(He=(m+784|0)+l|0)-1|0),!u[Y+170|0]|e[m+6808>>2]-48>>>0>=10||zt(Ge)&&(e[m+6808>>2]=97),oe?e[m+6812>>2]=oe:M&&er(m+6812|0,M+189423|0),r=M;e:{A:if(s||(r=zA(m+6816|0,M+189424|0)+M|0,s=e[m+6816>>2])){if(te=zA(m+6804|0,A=r+189424|0),(0|s)==1){if(o=r-1|0,oe=32,Oe=0,e[m+6812>>2]!=32){r=o,A=32;break A}M=0,s=r;r:{a:switch(u[0|A]-43|0){case 0:s=r+1|0,M=64;break r;case 2:break a;default:break r}s=r+1|0,M=96}if(d[0|(A=s+189424|0)]-48>>>0>=10)f=s+1|0,te=-1;else{for(te=da(A);s=(A=s)+1|0,d[A+189424|0]-48>>>0<10;);f=s,s=A}if((0|(oe=e[47350]))>247)A=0;else if(A=0,!((0|(s=d[s+189424|0]))<0)&&(s=ca(84868,255&s,14))){r=(A=s-84868|0)+1|0,(0|te)==-1&&(te=e[105536+(r<<2)>>2],M=0);r:{a:switch(A-8|0){case 0:e[49574]=0,e[49573]=te;break r;case 4:break a;default:break r}(0|te)>=3?d[199304]=1:d[199304]=0}A=1,e[47350]=oe+1,e[198304+(oe<<2)>>2]=(r+M|0)+(te<<8),r=f}oe=e[m+6812>>2],eA(o+189424|0,32,r-o|0),ss=A+ss|0,s=0;break e}oe=0,(0|s)==32|e[49573]!=36?(Oe=0,A=s):(e[m+6812>>2]!=32|e[m+6804>>2]!=32||(e[49573]=20),Oe=0,A=hn(s,Y))}else e[m+6804>>2]=32,Oe=1,oe=0,te=0,A=32;A:if(ir){if(ir=1,dA=8,s=0,(0|A)!=93|e[m+6804>>2]!=93)break A;r=r+1|0,A=32,ir=0}else if((240&(s=e[49573]))!=64)if(ir=0,16&s)s=0;else{r:{a:{n:{o:{if(!((0|(f=(0|A)==8242||(0|A)==8217||(0|A)==146||(0|A)==180?39:A))!=8216&(0|f)!=63))if(zt(e[m+6808>>2])){if(f=A,zt(e[m+6804>>2])){f=39;break o}}else f=A;c:{if((0|f)!=1367){if((0|f)==1328){z|=1024,f=32;break o}if((A=f-44032|0)>>>0>11183)break o;if(o=((s=((I=65535&A)>>>0)/28|0)>>>0)%21|0,A=A-O(s,28)&65535,f-50500>>>0>587)break c;s=A?A+4519|0:0,o=o+4449|0;break a}z|=131072,or=e[m+6804>>2],A=e[m+6812>>2],f=32;break n}s=50500+(A+O(o,28)|0)|0,o=(I>>>0)/588|4352;break a}if(or=e[m+6804>>2],A=e[m+6812>>2],!((s=f-12592|0)>>>0>51)){o=4352|u[s+103296|0],s=0;break a}}c=r+189424|0;n:if(!((0|(s=e[Y+212>>2]))!=28268&(0|s)!=24934|(0|f)!=39)&&!Xe(A)&&(zA(m+6820|0,c+1|0),mn(e[m+6820>>2]))){o=601,s=0;o:switch(or-110|0){case 6:break a;case 0:break o;default:break n}if(e[Y+212>>2]!=24934)break a;d[0|c]=32;break a}if(e[m+6824>>2]=32,(0|(A=e[49897]))>0)e[49897]=A-1,s=0;else{if(!f){s=0,o=0;break r}n:{o:{c:{u:if((CA=e[Y+180>>2])&&(I=f,(Ie=Es(f))&&(I=hn(f,Y)),!mi(CA)))for(;;){e[m+16>>2]=0,e[m+624>>2]=I,A=zA(m+16|0,CA)+CA|0;l:if(e[m+624>>2]==e[m+16>>2]){if(u[0|A]){for(o=1,Nt=0,s=c;Jt=zA(m+16|0,A),br=zA(m+624|0,s),Rr=hn(e[m+624>>2],Y),e[m+624>>2]=Rr,s=s+br|0,Nt=(br=(0|Rr)==e[m+16>>2])+Nt|0,o&=br,u[0|(A=A+Jt|0)];);if(!o)break l;e[49897]=Nt}if(!(A=A+1|0))break u;if(8&u[188788]&&(e[m>>2]=CA,e[m+4>>2]=A,rr(e[47195],85187,m)),A=zA(m+6828|0,A)+A|0,u[0|A])break c;s=0;break o}for(;s=A,A=A+1|0,u[0|s];);for(;u[0|(s=(A=s)+1|0)];);if(mi(CA=A+2|0))break}s=0,o=f;break n}zA(m+6824|0,A),Ie&&Es(or)&&(e[m+6824>>2]=fn(e[m+6824>>2])),s=e[m+6824>>2]}o=e[m+6828>>2],z|=2097152,Ie&&(o=fn(o))}if((0|o)!=8)break a}o=r;break e}s?e[m+6804>>2]=s:s=0}zt(o)||mn(o)||Mt(e[Y+336>>2],o)||!zt(e[m+6808>>2])|!(!u[Y+170|0]|o-48>>>0>=10)&e[m+6804>>2]-48>>>0>=10||(o=32,Je=1);r:{a:{n:{o:{c:{if(e[m+6808>>2]-48>>>0<10){if(o-48>>>0<10){A=G;break c}if(1<<(A=o-32|0)&20481&&A>>>0<=14)break o;Je=1}else if(A=0,e[m+6812>>2]!=44||(A=G,(0|o)!=44))break c;o=32;break o}if((0|o)==91&&((0|(f=e[m+6804>>2]))==2||(o=91,(0|f)==91&&e[47204])))break n;G=A}if(zt(o)){o:{c:{u:{if(zt(e[m+6808>>2])){if(!u[Y+171|0]||(A=e[m+6808>>2],!((0|o)>12352)&&(0|A)<12353))break u}else A=e[m+6808>>2];if(Tr=Mt(e[Y+336>>2],A)?Tr:0,(0|(A=e[m+6808>>2]))!=32&&!Mt(e[Y+336>>2],A)){A=32,X=Cn(e[m+6808>>2])?X:256|X;break c}z=Es(o)?2|z:z,e[m+6808>>2]!=32|d[He-2|0]-48>>>0>=10|e[m+6812>>2]-48>>>0<10||(d[(m+784|0)+l|0]=32,A=1588+(O(PA,12)+m|0)|0,k[A>>1]=y[A>>1]+1,l=l+1|0)}if(A=32,(0|o)==32)break o;if(Tr=Tr+1|0,(0|(f=e[Y+600>>2]))<=0){A=o;break o}if(!((0|o)<=591&(0|(I=e[m+6808>>2]))>=(0|f))){if((0|o)<(0|f)){A=o;break o}if((0|Tr)<2){A=o;break o}if(!((0|I)<=591)){A=o;break o}}if(!zt(I)){A=o;break o}z|=16384,X|=128}Je=1}if(sa=sa+1|0,Es(A)){if(f=hn(A,Y),e[Y- -64>>2]){A=aa?f:712,s=aa?s:f,aa=1;break A}if(j(e[m+6812>>2])){if(e[m+6808>>2]==32){A=f;break A}if(A=32,e[Y+212>>2]!=26465)break r;for(o=85240,I=(m+784|0)+l|0,te=0;;){if(c=BA(o),u[0|(Ge=I-c|0)]==32&&!Zr(Ge+1|0,o,c=c-1|0)){if((0|(o=d[o+c|0]))==(0|f)){A=f;break A}if((0|o)==65&&ci(Y,f)){A=f;break A}}if(o=e[131184+((te=te+1|0)<<2)>>2],(0|te)==11)break}break r}if(A=32,(0|f)==32)break A;if(!Es(e[m+6812>>2])){A=f;break A}if(!j(e[m+6804>>2])){A=f;break A}if(zA(m+16|0,189424+(r+te|0)|0),!(e[Y+212>>2]!=28268|(0|Tr)!=2|(0|f)!=106|e[m+6812>>2]!=73)){A=f;break A}if(e[m+6808>>2]==32){A=f;break A}if(!zt(e[m+16>>2])){A=f;break A}X|=256,oe=32,Je=1;break A}if(!dA){dA=0;break A}if((0|Tr)<3){dA=0;break A}if((0|A)!=115){dA=0;break A}if(e[Y+212>>2]!=25966){dA=0;break A}if(e[m+6804>>2]!=32){dA=0;break A}if(dA|=4,A=32,u[(o=l+m|0)+783|0]!=39)break A;d[o+783|0]=32;break A}A=32;o:{c:{u:{l:{i:switch(o-39|0){default:if((0|o)==95)break A;case 1:case 2:case 3:case 4:case 5:if(o-48>>>0>=10||u[Y+170|0]&&zt(e[m+6808>>2])&&!((f=e[m+6804>>2])-48>>>0<10|f-2406>>>0<10))break o;if((0|(I=e[m+6808>>2]))==32)break c;if(f=e[m+6808>>2],I-48>>>0<10)break u;if((0|(I=f))==(0|(f=e[Y+128>>2])))break l;Je=1;break A;case 6:if(!mn(e[m+6812>>2])&&zt(e[m+6804>>2])){if(e[m+6808>>2]!=32){Je=1;break A}if(z|=128,(0|PA)<=0)break A;o=1572+(O(PA,12)+m|0)|0,e[o>>2]=16384|e[o>>2];break A}if(o=e[m+6804>>2],!(e[m+6812>>2]!=32|(0|o)!=32)){xt=4;break A}if((0|o)==45){r=r+1|0,xt=4;break A}if(A=45,e[m+6808>>2]!=32||!zt(Ge)||zt(e[m+6812>>2]))break A;d[(m+784|0)+l|0]=32,o=1588+(O(PA,12)+m|0)|0,k[o>>1]=y[o>>1]+1,l=l+1|0;break A;case 7:if(e[m+6808>>2]==46){Je=1;break A}if(A=46,(0|PA)<=0||(o=1572+(O(PA,12)+m|0)|0,1&d[o+1|0])||!zt(e[m+6812>>2]))break A;e[o>>2]=65536|e[o>>2],A=(A=mn(e[m+6804>>2]))||e[m+6804>>2]==45?32:46;break A;case 0:break i}i:{if((0|(f=e[m+6812>>2]))!=46||(o=115,e[m+6804>>2]!=115)){if(!Se(f))break i;o=e[m+6804>>2]}if(zt(o))break a}if(1&(o=e[Y+88>>2])){if(zt(e[m+6804>>2]))break a;o=e[Y+88>>2]}if(2&o&&zt(e[m+6812>>2]))break a;if(!(!Mt(e[Y+332>>2],e[m+6812>>2])|(0|Ge)!=32)){r=(e[m+6804>>2]==32)+r|0;break a}if(f=(0|(o=e[m+6808>>2]))!=115|Xs,Xs=0,!(1&f))break A;Xs=!!(0|mn(o)),xt=4;break A}if((0|f)==44&G){Je=1;break A}G=1;break o}if((0|f)!=32)break o}zt(Ge)&&(zt(e[m+6812>>2])||(d[(m+784|0)+l|0]=32,A=1588+(O(PA,12)+m|0)|0,k[A>>1]=y[A>>1]+1,l=l+1|0))}A=o;break A}ir=1,o=r+1|0,G=A;break e}A=39,Xs=0;break A}Je=1,oe=32}else{if(A-48>>>0<10){s=0,o=(0|(f=e[49574]+1|0))>(15&e[49573]),e[49574]=o?0:f,A=o?32:A,Je|=o,ir=0;break A}s=0,e[49574]=0,A=(o=e[m+6808>>2]-48>>>0<10)?32:A,Je|=o,ir=0}if(mn(A)){if(e[m+6808>>2]==32){z|=262144,o=r;break e}if(o=e[m+6816>>2]-9>>>0<2,I=1&Je){te=0;A:if(!((0|b)>(0|(A=r-1|0))))for(;;){if(!(f=k[(m+5184|0)+(A<<1)>>1]))break A;if(te=((0|f)>0)+te|0,!((0|b)<=(0|(A=A-1|0))))break}d[1594+(O(PA,12)+m|0)|0]=te}if(X=o?262144|X:X,d[(m+784|0)+l|0]=32,A=l+1|0,!((0|PA)>298||(o=(m+1584|0)+O(PA,12)|0,(0|(f=y[o+4>>1]))>=(0|A)))){if((0|ss)<=0?b=e[o>>2]:(b=198300+(e[47350]<<2)|0,e[b>>2]=128|e[b>>2],ss=0,b=64|e[o>>2]),c=e[47352],d[o+6|0]=c,e[o>>2]=b|(sa?dA:-2&dA)|(u[199304]?2048:0)|z,(0|c)>0){for(;z=(b=m+784|0)+A|0,b=b+(A=A-1|0)|0,d[0|z]=u[0|b],(0|A)>(0|f););d[0|b]=32,k[o+4>>1]=f+1,A=l+2|0}f=(m+1584|0)+O(PA=PA+1|0,12)|0,e[f>>2]=0,k[f+4>>1]=A,l=r;A:if(!((0|(o=e[m+6800>>2]))<=(0|r))){for(;;){if(k[(m+5184|0)+(l<<1)>>1]>0)break A;if((0|o)==(0|(l=l+1|0)))break}l=o}if(te=y[(m+5184|0)+(l<<1)>>1],k[f+8>>1]=te,sa=0,o=0,te)for(;o=!!(65535&~te)+o|0,te=y[(m+5184|0)+((l=l+1|0)<<1)>>1];);d[f+10|0]=o,e[47352]=0,dA=1,z=X,X=0,aa=0}Je=0,s=I?0:s,o=I?M:r}else(0|l)>795?(o=r,r=b,A=l):(A=Ar(A,(m+784|0)+l|0)+l|0,o=r,r=b);e[47352]<(0|xt)&&(e[47352]=xt),xt=0,b=r,l=A}if(Oe||(M=o,!((0|l)<799)))break}(0|ss)<=0|PA||(A=198300+(e[47350]<<2)|0,e[A>>2]=128|e[A>>2],e[m+1584>>2]=64|e[m+1584>>2],PA=1),A=(m+784|0)+l|0,e[Y+8204>>2]=A-1,r=0,d[0|A]=0,d[m+1590|0]=0,d[1590+(O(PA,12)+m|0)|0]=8;e:if((0|PA)<=0)e[m+1584>>2]=512|e[m+1584>>2],l=e[49572];else{A=PA-1|0;A:if((0|PA)!=1)for(s=A;;){if(!Cn(d[y[1588+(O(s,12)+m|0)>>1]+(m+784|0)|0])){r=s;break A}if(f=(0|s)>1,s=s-1|0,!f)break}if(r=(m+1584|0)+O(r,12)|0,e[r>>2]=16|e[r>>2],4194304&OA&&(A=(m+1584|0)+O(A,12)|0,256&(r=e[A>>2])||(e[A>>2]=65536|r)),e[m+1584>>2]=512|e[m+1584>>2],!((0|PA)<=0|(0|(l=e[49572]))>990))for(f=3|(A=m+624|0),I=2|A,oe=m+754|0,Oe=!(4194304&OA),M=0,b=0;;){e[47354]=e[47354]+1;A:{if((0|(A=e[49827]))<=0||(A=A-1|0,e[49827]=A,A)){if(u[190280])break A}else d[190280]=0;A=y[1588+(O(M,12)+m|0)>>1]+(m+784|0)|0;r:if(!(d[0|A]-48>>>0>=10)&&(r=m+624|0,s=A,e[Y+112>>2]!=1227133512)){for(;;){a:{if(d[0|s]-48>>>0<10)d[0|r]=u[0|s],r=r+1|0,s=s+1|0;else{if(e[Y+124>>2]!=d[0|s]|u[s+1|0]!=32||(l=s+2|0,u[s+3|0]==32|d[0|l]-48>>>0>=10|u[s+4|0]==32))break a;M=M+1|0,s=l}if(r>>>0>>0)continue;break r}break}eA(A+(r=r-(G=m+624|0)|0)|0,32,(s=(l=s-A|0)-r|0)>>>0<=l>>>0?s:0),SA(A,G,r)}for(r=0;s=r,r=r+1|0,d[A+s|0]-48>>>0<10;);r:if(s-5>>>0<=27){for(d[m+626|0]=32,k[m+624>>1]=8224,u[0|A]!=48&e[Y+132>>2]>=(0|s)||(r=(m+1584|0)+O(M,12)|0,e[r>>2]=524288|e[r>>2]),X=(m+1584|0)+O(M,12)|0,te=0,l=f;r=A,!((A=d[0|A])-48>>>0>=10&(0|A)!=e[Y+128>>2])&&(d[0|l]=A,A=l+1|0,G=s,(0|(s=s-1|0))<=0?l=A:e[Y+112>>2]>>>s&1?(c=e[X+4>>2],z=(m+16|0)+O(te,12)|0,e[z>>2]=e[X>>2],e[z+4>>2]=c,e[z+8>>2]=e[X+8>>2],te=te+1|0,(0|(z=e[Y+124>>2]))!=32&&(d[l+1|0]=z,A=l+2|0),d[0|A]=32,l=A+1|0,8&u[X+2|0]||((xt=e[Y+112>>2])>>>G-2&1&&(d[A+1|0]=48,d[A+2|0]=48,xt=e[Y+112>>2],l=A+3|0),xt>>>G-3&1&&(d[0|l]=48,l=l+1|0))):l=A,A=r+1|0,l>>>0>>0););if(s=e[X+4>>2],A=(m+16|0)+O(te,12)|0,e[A>>2]=e[X>>2],e[A+4>>2]=s,s=e[X+20>>2],e[A+16>>2]=e[X+16>>2],e[A+20>>2]=s,s=e[X+12>>2],e[A+8>>2]=e[X+8>>2],e[A+12>>2]=s,s=1,(0|te)>0)for(;A=(m+16|0)+O(s,12)|0,e[A>>2]=-262209&e[A>>2],(0|te)>=(0|(s=s+1|0)););if(A=u[r+4|0]|u[r+5|0]<<8|u[r+6|0]<<16|u[r+7|0]<<24,s=u[0|r]|u[r+1|0]<<8|u[r+2|0]<<16|u[r+3|0]<<24,d[0|l]=s,d[l+1|0]=s>>>8,d[l+2|0]=s>>>16,d[l+3|0]=s>>>24,d[l+4|0]=A,d[l+5|0]=A>>>8,d[l+6|0]=A>>>16,d[l+7|0]=A>>>24,A=u[r+12|0]|u[r+13|0]<<8|u[r+14|0]<<16|u[r+15|0]<<24,r=u[r+8|0]|u[r+9|0]<<8|u[r+10|0]<<16|u[r+11|0]<<24,d[l+8|0]=r,d[l+9|0]=r>>>8,d[l+10|0]=r>>>16,d[l+11|0]=r>>>24,d[l+12|0]=A,d[l+13|0]=A>>>8,d[l+14|0]=A>>>16,d[l+15|0]=A>>>24,d[l+16|0]=0,l>>>0<=f>>>0)break r;for(A=u[X+6|0],te=0,s=f;;){for(b=se(Y,s,(m+16|0)+O(te,12)|0,255&A);A=u[0|s],s=s+1|0,(0|A)!=32;);if(A=0,d[X+6|0]=0,te=te+1|0,!(s>>>0>>0))break}}else{if(e[47352]=0,b=se(Y,A,r=(m+1584|0)+O(M,12)|0,u[r+6|0]),(0|(s=e[47352]))>u[r+18|0]&&(d[r+18|0]=s,e[47352]=0),!(!(4096&b)|u[0|A]==32))for(;eA(m+624|0,0,150),e[m+624>>2]=538976288,e[m+628>>2]=538976288,d[m+632|0]=32,se(Y,SA(I,A,s=zA(m+16|0,A)),r,0),u[0|(A=A+s|0)]!=32;);50331648&b&&(W=(A=Oe|(~e[33264]+PA|0)!=(0|M))?W:10,A|!as||(e[as>>2]=4,W=10))}if(128&b&&!((0|(r=e[33264]))<=0)){if(A=0,s=r,l=3&r)for(;G=(m+1584|0)+O(s+M|0,12)|0,e[G>>2]=1048576|e[G>>2],s=s-1|0,(0|l)!=(0|(A=A+1|0)););if(r>>>0>=4)for(;A=(m+1584|0)+O(s+M|0,12)|0,e[A>>2]=1048576|e[A>>2],e[(r=A-12|0)>>2]=1048576|e[r>>2],e[(r=A-24|0)>>2]=1048576|e[r>>2],e[(A=A-36|0)>>2]=1048576|e[A>>2],s=s-4|0;);e[33264]=s}}if(l=e[49572],(0|PA)<=(0|(M=M+1|0)))break e;if(!((0|l)<991))break}}if((0|(s=e[47351]))<(0|(f=e[47350]))){for(oe=e[47202],Oe=e[49846],te=e[47352];;){A=(r=e[198304+(s<<2)>>2])>>8;e:{A:switch((31&r)-9|0){case 0:oe=A;break e;case 4:Oe=A;break e;case 3:break A;default:break e}te=r>>>0>=256?A+te|0:0}if(!(!(128&r)&(0|f)>(0|(s=s+1|0))))break}e[47352]=te,e[47351]=s,e[49846]=Oe,e[47202]=oe}e[49572]=l+2,e[(A=190288+(l<<3)|0)>>2]=589824,k[A+4>>1]=o,e[A+8>>2]=589824,k[A+12>>1]=o,r=PA&&e[47199]?W:10,e[33285]?A=0:(A=e[33283],A=e[A>>2]==e[A+4>>2]),W=A?r:W,M=tt,f=0,PA=0,H=I=H-32192|0,e[I+24>>2]=0,e[I+28>>2]=0,e[I+16>>2]=0,e[I+20>>2]=0,e[I+8>>2]=0,e[I+12>>2]=0,e[I>>2]=0,e[I+4>>2]=0,o=e[49572],c=y[190284+(o<<3)>>1];e:{if((0|(s=o-3|0))<0)A=s;else{for(;;){if(f=(0|(r=127&u[(A=190288+(s<<3)|0)+3|0]))<(0|f)?f:r,y[A+4>>1])A=s;else if(A=-1,r=(0|s)>0,s=s-1|0,r)continue;break}if(f>>>0>3)break e}for(;;){if((0|(A=A-1|0))<0)break e;if(64&u[0|(r=190288+(A<<3)|0)]){d[r+3|0]=4;break e}if(!(u[r+3|0]<4))break}}if(A=e[Y+292>>2],s=0,(0|o)<=0)f=0;else for(G=-1,f=0;;){r=A,e[Y+292>>2]!=(0|A)&&(k[(A=190288+(s<<3)|0)>>1]=32|y[A>>1]),(0|f)>0&&(X=e[(b=190288+(s<<3)|0)+4>>2],e[(l=(A=s-f<<3)+190288|0)>>2]=e[b>>2],e[l+4>>2]=X,(0|G)!=-1&&(k[4+(A+190288|0)>>1]=G),G=-1);e:{if(u[2+((l=s<<3)+190288|0)|0]==21){if(A=u[(b=l+190288|0)+7|0],2&u[0|b])break e;A:if((0|A)!=(0|r)){if(b=u[10+(l+190288|0)|0]-9|0){if((0|b)==12)break A;break e}if(u[18+(l+190288|0)|0]!=21)break e}(0|G)==-1&&(G=(A=y[4+(l+190288|0)>>1])||-1),f=f+1|0}A=r}if((0|o)==(0|(s=s+1|0)))break}if(e[49572]=o-f,rs(A),(r=e[Y+36>>2])&&!((0|(A=(f=e[49572])-1|0))<0))for(oe=256&r,z=4&r,Oe=8&r,X=15&r,Je=16&r,tt=2&r,r=r>>>8&1,s=0;;){if(l=f,o=s,f=A,(0|(A=u[(b=(dA=A<<3)+190288|0)+2|0]))==21){e:{A:{if((0|(s=l-2|0))>=0)for(;;){if(u[2+((A=s<<3)+190288|0)|0]==21)break A;if(A=(0|s)>0,s=s-1|0,!A)break}A=e[Y+292>>2];break e}A=u[7+(A+190288|0)|0]}rs(A),A=u[b+2|0]}if(s=o,(A=e[144464+((255&A)<<2)>>2])&&(s=r,!(32&u[0|b]))){s=u[A+11|0],G=0,tt&&((0|(l=u[0|A]))!=118&(0|l)!=82||(o=Je?0:o,G=1));e:{A:{r:{a:switch((l=253&s)-4|0){case 1:break r;case 0:break a;default:break A}if(X&&(s=1,!o)||(0|(s=o))!=2||(s=2,!(A=u[A+13|0])))break e;d[b+2|0]=A;break e}if(X&&(s=2,!o)||(0|(s=o))!=1||(s=1,!(A=u[A+13|0])))break e;d[b+2|0]=A;break e}s=0,Oe&&(s=l?o:0)}s=A=G?0:s,y[4+(dA+190288|0)>>1]&&(s=A=z?0:A,oe&&(s=A||1))}if(!((0|(A=f-1|0))>=0))break}if(rs(e[Y+292>>2]),e[49572]<=0)Je=-2,s=0;else{for(s=-1,o=0,b=0,Oe=0;;){A=b<<3,(0|s)!=-1&&(k[4+(A+190288|0)>>1]=s),u[(G=A+190288|0)+2|0]==21&&rs(u[7+(A+190288|0)|0]),X=e[49572];e:{if(!(32&u[0|(l=A+190288|0)])){o=(0|(r=X-1|0))>(0|b)?e[144464+(u[10+(A+190288|0)|0]<<2)>>2]:o,!(y[l+12>>1]|(0|r)==(0|b))&&(te=0,u[o+11|0]|!o)||(te=1),f=u[G+2|0];A:if(!((0|(Je=e[49848]))<=0))for(r=A+190288|0,s=0;;){if(oe=O(s,3),u[oe+199408|0]==(255&f)&&!((z=u[2+(oe+199408|0)|0])&(1^te)|(4&u[r+3|0]?2&z:0)|(y[r+4>>1]?0:4&z))){if(f=u[1+(oe+199408|0)|0],d[G+2|0]=f,!(2&u[e[144464+(f<<2)>>2]+4|0])|u[r+3|0]<2)break A;d[r+3|0]=0;break A}if((0|Je)==(0|(s=s+1|0)))break}if(!(255&f)){s=y[4+(A+190288|0)>>1];break e}}s=e[l+4>>2],A=(I+32|0)+(Oe<<5)|0,r=e[l>>2],e[A>>2]=r,e[A+4>>2]=s,r=e[144464+(r>>>14&1020)>>2],e[A+8>>2]=r,d[A+17|0]=u[r+11|0],Oe=Oe+1|0,s=-1}if(!((0|Oe)<1e3&(0|X)>(0|(b=b+1|0))))break}if(f=0,s=0,!((0|(Je=Oe-2|0))<=0))for(;;){e:if(y[4+((I+32|0)+(f<<5)|0)>>1]){for(r=(0|f)>(0|Je)?f:Je,s=0,A=f;;){if((0|A)!=(0|r)){if(s=(0|s)>(0|(l=u[3+((o=I+32|0)+(A<<5)|0)|0]))?s:l,!y[4+(o+((A=A+1|0)<<5)|0)>>1])continue}else A=r;break}if((0|A)<=(0|f))break e;if(r=~f+A|0,o=0,l=A-f&7)for(;d[6+((I+32|0)+(f<<5)|0)|0]=s,f=f+1|0,(0|l)!=(0|(o=o+1|0)););if(r>>>0<7)break e;for(;d[(r=(I+32|0)+(f<<5)|0)+6|0]=s,d[r+38|0]=s,d[r+70|0]=s,d[r+102|0]=s,d[r+134|0]=s,d[r+166|0]=s,d[r+198|0]=s,d[r+230|0]=s,(0|(f=f+8|0))!=(0|A););}else A=f+1|0;if(f=A,!((0|Je)>(0|A)))break}}for(e[I+40>>2]=e[36125],rs(e[Y+292>>2]),Ge=(0|s)<4,b=1,oe=1,X=0,r=0,s=0,tt=0;;){e:{A:{r:{a:{if(r){if(o=(A=I+32|0)+((G=s-1|0)<<5)|0,X=u[2+(A+(s<<5)|0)|0],(0|G)>0){if(A=b-(s=(0|b)>0)|0,G>>>0>=(f=s?b:2)>>>0)for(;l=(s=(I+32|0)+(f<<5)|0)-32|0,b=e[s+12>>2],e[l+8>>2]=e[s+8>>2],e[l+12>>2]=b,b=e[s+4>>2],e[l>>2]=e[s>>2],e[l+4>>2]=b,b=e[s+28>>2],e[l+24>>2]=e[s+24>>2],e[l+28>>2]=b,b=e[s+20>>2],e[l+16>>2]=e[s+16>>2],e[l+20>>2]=b,(0|G)>=(0|(f=f+1|0)););b=A}te=e[144464+(X<<2)>>2],e[o>>2]=0,e[o+4>>2]=0,e[o+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,d[o+2|0]=r,A=e[144464+(r<<2)>>2],e[o+8>>2]=A,X=o}else{if((0|s)>=(0|Je)|(0|tt)>=997)break a;l=u[(o=(f=s<<5)+(I+32|0)|0)+2|0],A=e[144464+(l<<2)>>2],e[o+8>>2]=A,G=y[o+4>>1],(0|l)==21&&rs(u[7+(f+(I+32|0)|0)|0]),b=G?s:b,te=e[144464+(u[o+34|0]<<2)>>2],e[o+40>>2]=te,G=s}if(!A){r=0,s=G+1|0;continue}if(KA(Y,256,o,I+32040|0,I),(0|(s=e[I+32052>>2]))>0&&(f=(I+32|0)+(G<<5)|0,te=e[144464+(s<<2)>>2],e[f+40>>2]=te,d[f+34|0]=s,d[f+49|0]=u[te+11|0]),s=0,r)r=A;else if((0|(f=e[I+32056>>2]))<=0)r=A;else{r=e[144464+(f<<2)>>2],e[o+8>>2]=r,s=u[o+2|0],d[o+2|0]=f,f=y[o>>1];n:if(u[r+11|0]!=2)k[o>>1]=65531&f;else{if(k[o>>1]=4|f,u[A+11|0]==2)break n;d[o+3|0]=0}KA(Y,256,o,I+32040|0,I)}if((0|(l=e[I+32048>>2]))<=0)f=r;else{if(f=e[144464+(l<<2)>>2],d[o+2|0]=l,e[o+8>>2]=f,A=u[f+11|0],Oe=1,(0|l)==1){dA=(0|A)==2;break A}l=y[o>>1];n:if((0|A)!=2)k[o>>1]=65531&l;else{if(k[o>>1]=4|l,u[r+11|0]==2)break n;d[o+3|0]=0}KA(Y,256,o,I+32040|0,I)}if(dA=0,(0|(A=u[f+11|0]))!=2){Oe=0;break A}if(dA=1,Oe=0,A=2,u[o+3|0]>1){PA=0;break A}l=o+3|0,PA=PA+1|0,r=o;n:{if(8&(z=e[Y+12>>2])){for(;;){o:switch(z=r,r=r+32|0,u[z+49|0]){case 0:break A;case 2:break o;default:continue}break}if(u[0|(r=z+35|0)]>1)break A;if(u[o+6|0]<=3&&(d[0|l]=0),u[z+38|0]<4)break n;break A}if(1&PA|(0|PA)<2)break A;if(2&z)break r;if(Ge)r=l;else if(r=l,y[o+36>>1])break r}d[0|r]=0;break A}e[36423]=tt+2,k[(A=145840+(tt<<5)|0)>>1]=0,d[A+2|0]=9,d[A+20|0]=2,e[A+12>>2]=W,k[A+4>>1]=c,d[A+17|0]=0,d[A+18|0]=0,e[A+8>>2]=e[36125],k[A+32>>1]=0,d[A+34|0]=9,d[A+52|0]=0,e[A+44>>2]=0,k[A+36>>1]=0,d[A+49|0]=0,d[A+50|0]=0,e[A+40>>2]=e[36126],rs(e[Y+292>>2]),H=I+32192|0;break e}PA=1}if(!(8&(r=y[o+32>>1]))|(0|G)<=0||(l=u[te+11|0])>>>0>15|!(1<>1]=8^r),Ie=y[o+36>>1]){A:if(r=e[Y+4>>2]){r:switch(0|A){default:s=512&r?11:s;break;case 0:break A;case 2:break r}if(u[te+11|0]==2){(l=12&r)&&(s=(0|l)!=12?23:11);r:if(dA){a:switch(3&r){case 2:s=10;break r;case 0:break r;default:break a}s=23}u[o+35|0]<4||(s=256&r?10:s)}}if(!((0|o)==(0|X)|(0|tt)<=0)){A:{r:{a:switch(0|(r=7&e[Y>>2])){case 0:break A;case 1:break a;default:break r}if(s-12>>>0>4294967293)break A}s=u[r+101916|0]}s=e[47205]>0?24:s}}if(e[o+72>>2]=e[144464+(u[o+66|0]<<2)>>2],r=e[I+32060>>2],r=s||r||s,!Oe){d[(l=(z=tt<<5)+145840|0)+17|0]=A,e[l+8>>2]=f,d[l+16|0]=0,k[l>>1]=y[o>>1],d[l+3|0]=15&u[o+3|0],d[l+6|0]=u[o+6|0],s=u[o+7|0],k[l+4>>1]=0,d[l+7|0]=s,Oe=u[f+10|0],d[l+2|0]=Oe;A:if(s=y[o+4>>1]){if(k[l+4>>1]=s,M=1&M?5:1,d[(o=z+145840|0)+20|0]=M,s=oe,oe=0,!s){M=0;break A}d[o+20|0]=8|M,M=0}else d[20+(z+145840|0)|0]=0;e[(s=z+145840|0)+12>>2]=e[I+32084>>2]<<1,!Ie|(0|Oe)!=24||(0|(o=e[47205]))<=0||(e[l+8>>2]=e[36126],e[s+12>>2]=O(o,14)),(1<>>0<=8:0)|2&u[f+7|0]&&(e[s+12>>2]=128,d[l+16|0]=0),d[(A=z+145840|0)+21|0]=255,d[A+22|0]=255,k[A+18>>1]=5120,tt=tt+1|0}s=G+1|0;continue}break}k[88922]=1,e[44462]=0,ss&&(k[145776+(e[36423]<<5)>>1]=2,A=198304+(e[47350]<<2)|0,e[A>>2]=128,e[(A=A-4|0)>>2]=128|e[A>>2]),d[190268]=OA>>>19&1,In&&(e[In>>2]=OA<<14>>31&189360)}H=m+6832|0,Je=e[47192],dA=e[t+12>>2],r=0,l=0,b=0,z=0,X=0,xt=0,W=0,H=c=H-6e3|0;e:if(!((0|(o=(tt=e[36423])-1|0))<=0)){for(;d[2+(c+O(r,6)|0)|0]=0,4&u[(A=r<<5)+145840|0]?(s=c+O(z,6)|0,d[s+1|0]=0,A=A+145840|0,d[s+3|0]=u[A+49|0],A=u[A+3|0],d[0|s]=A,z=z+1|0,xt=(A>>>0>3)+xt|0):u[e[8+(A+145840|0)>>2]+10|0]!=27|(0|z)<=0||(A=(c+O(z,6)|0)-4|0,d[0|A]=4|u[0|A]),(0|o)!=(0|(r=r+1|0)););if(d[c+O(z,6)|0]=0,z)if(e[Je+148>>2]==1){if(!((0|tt)<=0)){for(A=-2&tt,s=1&tt,r=145840;b=u[r+17|0]==2&&u[r+3|0]>3?l:b,b=u[r+49|0]==2&&u[r+35|0]>3?1|l:b,r=r- -64|0,l=l+2|0,(0|A)!=(0|(X=X+2|0)););!s|u[r+17|0]!=2||(b=u[r+3|0]>3?l:b)}if(d[(f=(A=b<<5)+145840|0)+3|0]=7,e[Je+212>>2]==30313&&(u[(A=A+145840|0)+7|0]||(d[A+7|0]=Vr(55),tt=e[36423])),!((0|tt)<=0)){for(X=0,r=145840,A=145840,l=G=e[36125],o=0,oe=1;;){if(u[r+17|0]?M=e[36125]:(M=e[36125],G=(s=u[e[r+8>>2]+14|0]>50)?M:G,oe|=s),s=u[r+20|0]?M:l,4&u[0|r]){M=u[r+7|0],l=e[144464+(M<<2)>>2];A:{if((0|(z=e[Je+212>>2]))==6840683){if(e[s>>2]!=49||(z=e[l>>2]-49|0)>>>0>5|!(1<>2]}if(!((0|z)!=6516078&(0|z)!=31336)){z=0,M||(o=Vr(1&(z=o|oe)?13621:12593),d[r+7|0]=o,l=e[144464+(o<<2)>>2]),(0|b)!=(0|X)|(1024|e[l>>2])!=13621||(d[f+3|0]=6),e[G>>2]==3420466&&(d[A+7|0]=Vr(e[l>>2]==3420466?13619:12594));r:{if(e[s>>2]==12597){if((0|(M=e[l>>2]))!=12597)break r;d[A+7|0]=Vr(13109)}M=e[l>>2]}o=z,(0|M)==12593&&((0|(M=e[G>>2]))==13621&&(d[r+7|0]=Vr(12850),M=e[G>>2]),(0|M)==13619&&(d[r+7|0]=Vr(13107),M=e[G>>2]),(0|M)==3420466&&(d[r+7|0]=Vr(13364)),d[r+3|0]=0)}}oe=0,G=l,A=r}else l=s;if(r=r+32|0,!((0|(X=X+1|0))<(0|(s=e[36423]))))break}if(l=0,r=145840,!((0|s)<=0))for(;4&u[0|r]&&((A=u[r+7|0])||(d[r+7|0]=17,A=17),A=e[144464+(A<<2)>>2],d[r+21|0]=u[A+12|0],d[r+22|0]=u[A+13|0]),r=r+32|0,(0|s)!=(0|(l=l+1|0)););}}else{if(A=e[Je+152>>2],A=Je+O(Ge=(0|A)>7?1:A,6)|0,Y=u[0|(Ge?A+637:Je+157)],OA=u[0|(Ge?636+(A+dA|0):156+(Je+dA|0))],d[133068]=(0|dA)==4,!((0|z)<=0)){for(Oe=z-1|0,te=dA-1>>>0>1,s=0,o=0;;){m=c+O(o,6)|0,W=((A=u[0|m])<<24>>24>3)+W|0;A:if((0|A)==6){A=o-3|0,r=o;r:{for(;;){if((0|r)<=(0|s)|(0|A)>=(0|r))break r;a:switch(f=c+O(r=r-1|0,6)|0,u[0|f]-4|0){case 2:break r;case 0:break a;default:continue}break}d[0|f]=3}r=o;r:{for(;;){if((0|z)<=(0|(r=r+1|0)))break r;a:switch(u[c+O(r,6)|0]-4|0){case 0:break r;case 2:break a;default:continue}break}d[m+2|0]=2,d[0|m]=5,A=s;break A}if(u[0|m]==6){d[m+2|0]=2,I=0;r:if((0|z)<=(0|(A=o+1|0)))f=o,ir=0;else if(ir=1,(0|(l=d[c+O(A,6)|0]))>4)f=o;else{for(b=(xt-W|0)>1,f=o;;){if(r=A,(255&l)==4&&(A=b+1|0,b=1,!((0|A)<=1))){A=r;break r}if(ir=(0|z)>(0|(A=r+1|0)),(0|A)==(0|z))break;if(f=r,(0|(l=d[c+O(A,6)|0]))>4)break r}f=Oe,A=z}l=-1,M=0,b=0,oe=-1,X=0,G=-1;r:{if((0|(r=s))<(0|A)){for(;l=(Ie=(0|(G=d[c+O(r,6)|0]))>3)&&(0|l)<0?r-s|0:l,I=(X=(0|b)>(0|G))?I:(0|b)<(0|G)?r:M,oe=Ie?r:oe,M=X?M:r,Ie=(0|r)!=(0|f),b=X?b:G,r=r+1|0,Ie;);if(X=M,G=oe,(0|l)>=0)break r}l=A,M=X,oe=G}e[33269]=f-M,e[33268]=l,e[33270]=M,e[33271]=I;r:if(u[133068])e[33270]=A,e[33271]=A;else if((0|oe)>=0){if((0|A)!=(0|z))break r;d[c+O(oe,6)|0]=7}else d[c+O(M,6)|0]=7;Te(c,Ge,s,A,OA),!ir&!!(0|dA)||(OA=te?u[Je+156|0]:u[Je+157|0])}else A=s}else A=s;if((0|A)>=(0|o))s=A;else if(4&u[m+2|0]){for(s=o+1|0,l=-1,oe=0,M=0,b=0,r=A,I=-1;l=(X=(0|(f=d[c+O(r,6)|0]))>3)&&(0|l)<0?r-A|0:l,oe=(G=(0|f)<(0|b))?oe:(0|f)>(0|b)?r:M,I=X?r:I,M=G?M:r,X=(0|r)!=(0|o),b=G?b:f,r=r+1|0,X;);e[33269]=o-M,e[33270]=M,e[33271]=oe,e[33268]=(0|l)<0?s:l,u[133068]?(e[33270]=s,e[33271]=s):(0|I)>=0?d[c+O(I,6)|0]=7:d[c+O(M,6)|0]=7,Te(c,Ge,A,s,Y)}else s=A;if((0|z)==(0|(o=o+1|0)))break}if(!((0|s)>=(0|z))){for(l=-1,oe=0,M=0,b=0,r=s,I=-1;l=(f=(0|(A=d[c+O(r,6)|0]))>3)&&(0|l)<0?r-s|0:l,oe=(o=(0|A)<(0|b))?oe:(0|A)>(0|b)?r:M,I=f?r:I,M=o?M:r,b=o?b:A,(0|z)!=(0|(r=r+1|0)););e[33270]=M,e[33271]=oe,e[33269]=~M+z,e[33268]=(0|l)<0?z:l,u[133068]?(e[33270]=z,e[33271]=z):(0|I)>=0?d[c+O(I,6)|0]=7:d[c+O(M,6)|0]=7,Te(c,Ge,s,z,OA)}}if((0|tt)<=0)break e;for(r=0,X=0;;){if(G=s=(f=r<<5)+145840|0,A=c+O(X,6)|0,l=u[0|A],d[s+3|0]=l,4&u[0|s]){o=f+145840|0,s=u[A+4|0],d[o+21|0]=s,b=u[A+5|0],d[o+16|0]=0,d[o+22|0]=b;A:{if(1&(M=u[A+2|0]))A=2;else{if(l>>>0<6)break A;A=u[A+1|0]}d[o+16|0]=A}s>>>0<=(255&b)>>>0?(A=b,b=s):(d[o+21|0]=b,d[o+22|0]=s,A=s),(s=u[7+(f+145840|0)|0])&&(A=(255&A)+(255&b)>>>1|0,s=e[144464+(s<<2)>>2],d[o+22|0]=A+u[s+13|0],d[o+21|0]=A+u[s+12|0]),2&M&&(d[G+3|0]=8|l),X=X+1|0}if((0|tt)==(0|(r=r+1|0)))break}}}if(H=c+6e3|0,X=e[47192],r=0,te=0,I=0,W=0,H=c=H-160|0,e[36423]>=2)for(dA=e[30450],l=1;;){if(l=(A=l)+1|0,z=u[(o=(b=A<<5)+145840|0)+3|0],2&(M=y[o>>1])){for(;(31&(f=e[198304+(W<<2)>>2]))==2&&(jA(127&f,f>>>8|0),e[36432]=110,e[36433]=100,e[36434]=450,e[36430]=5,M=e[50786],G=e[32972],(0|(s=e[G+84>>2]))>0&&(M=(0|O(s,M))/100|0),oe=u[((0|(s=(0|M)>=359?359:M))<=80?80:s)+101856|0],s=(0|(s=(0|M)>=450?450:M))>399?6:(0|s)>379?7:oe,e[32526]=(0|O(s,e[G+72>>2]))/256,e[32527]=(0|O(s,e[G+76>>2]))/256,e[32528]=(0|O(s,e[G+80>>2]))/256,s>>>0>7||(G=s-1|0,e[32528]=G,e[32526]=s,e[32527]=G)),W=W+1|0,!(128&f););M=y[o>>1]}G=l<<5,oe=A-1|0,s=7&z;e:{A:{r:{a:{n:{o:{c:{u:{l:{i:switch(OA=u[17+(b+145840|0)|0],0|(f=4&M?2:OA)){case 2:break n;case 3:case 8:break o;case 5:break c;case 6:case 7:break u;case 4:break l;case 0:break i;default:break e}r=0;break e}if((0|(A=u[17+(145840+(oe<<5)|0)|0]))!=6?(s=(0|A)==4?60:e[34063]>0||s>>>0<4?48:60,d[18+(b+145840|0)|0]=s):(s=25,d[18+(b+145840|0)|0]=25),!(16&u[0|X])|!u[20+(b+145840|0)|0]||(d[18+(b+145840|0)|0]=60,s=60),64&u[e[8+(b+145840|0)>>2]+6|0]&&(s=s+30|0,d[18+(b+145840|0)|0]=s),r=0,!(8&M))break e;d[18+(b+145840|0)|0]=u[X+164|0]+s;break e}!(o=u[(A=b+145840|0)+20|0])|1&d[e[A+8>>2]+7|0]&u[17+(145840+(oe<<5)|0)|0]==2||(d[18+(b+145840|0)|0]=15),s=u[17+(G+145840|0)|0],8&u[e[8+(b+145840|0)>>2]+4|0]|s|u[17+(145840+(oe<<5)|0)|0]!=8||(d[18+(b+145840|0)|0]=25),64&u[e[8+((A=oe<<5)+145840|0)>>2]+5|0]&&(d[18+(b+145840|0)|0]=30),!o|!(16&e[X>>2])||(d[18+(b+145840|0)|0]=30);u:if(u[20+(G+145840|0)|0]|!(32&u[e[8+(b+145840|0)>>2]+4|0])|(0|s)!=4)e[12+(b+145840|0)>>2]=256;else{if(o=b+145840|0,u[17+(A+145840|0)|0]==2){e[o+12>>2]=200;break u}e[o+12>>2]=150}if((0|f)!=7||(te|=(0|s)==2,(254&u[17+(A+145840|0)|0])!=2))break e;e[12+(b+145840|0)>>2]=e[12+(A+145840|0)>>2]+255>>>1;break e}(254&(s=u[17+((A=oe<<5)+145840|0)|0]))==6|(0|s)==3|32&e[e[8+(A+145840|0)>>2]+4>>2]&&(d[18+(b+145840|0)|0]=30);c:if((254&(o=u[17+(G+145840|0)|0]))==2){te=u[20+(G+145840|0)|0]&&(0|o)!=2?te:1,d[(o=b+145840|0)+18|0]=40,z=0;u:{l:switch(0|s){case 0:if((A=e[12+(A+145840|0)>>2])>>>0>39)break u;z=40-A|0;break u;case 2:break u;default:break l}if(u[20+(b+145840|0)|0])break c;z=20;l:switch(s-3|0){case 1:if(z=0,!(8&u[e[8+(A+145840|0)>>2]+4|0]))break u;break c;case 0:break u;case 5:break l;default:break c}z=12}d[o+18|0]=z}if(!(16&u[0|X])|!u[20+(b+145840|0)|0]||u[(A=b+145840|0)+18|0]>19)break e;d[A+18|0]=20;break e}o=u[X+296|0],f=s=b+145840|0,e[s+12>>2]=256,d[s+19|0]=o;o:if(u[s+20|0]){M=25;c:switch(u[17+(145840+(oe<<5)|0)|0]-2|0){case 0:if(M=12,1&d[e[8+(b+145840|0)>>2]+7|0])break o;break;case 1:break c;default:break o}d[18+(b+145840|0)|0]=M}if((0|(G=u[17+(G+145840|0)|0]))==2){I=1;break e}if(d[(o=b+145840|0)+22|0]=r,(254&u[17+((s=oe<<5)+145840|0)|0])==2)break a;if(s=r,(0|(f=e[36423]))<=(0|A))break A;for(;;){if(u[17+((s=A<<5)+145840|0)|0]==2){s=u[22+(s+145840|0)|0],d[o+22|0]=s;break A}if((0|f)==(0|(A=A+1|0)))break}break r}if(Je=b+145840|0,Oe=s^s>>>0<2,s=(tt=8&z)?25:u[296+(Oe+X|0)|0]-I|0,d[Je+19|0]=s,(e[36423]-3|0)>(0|A)||(0|(f=255&s))<=(0|(s=e[X+52>>2]))||(d[Je+19|0]=s),s=0,z=0,!(M=u[o+52|0]))for(;f=e[o+40>>2],z=u[o+49|0]==2?(~e[f+4>>2]>>>20&1)+z|0:z,s=u[f+10|0]==27?2:s,f=o,o=o+32|0,!(M=u[f+84|0]););f=Je+96|0,A=(Ge=A+2<<5)+145840|0,e[34063]=z,m=u[e[o+40>>2]+10|0],G=G+145840|0,u[17+(Ge+145840|0)|0]|u[e[G+8>>2]+10|0]!=23?(o=f,f=A,A=G):o=b+145968|0,G=u[e[f+8>>2]+15|0];n:if(z)G=u[e[X+96>>2]+(u[e[A+8>>2]+15|0]+O(G,10)|0)|0],u[A+17|0]!=8|(254&u[f+17|0])!=4||(G=8&u[e[o+8>>2]+4|0]?G-15|0:G);else{if(Y=e[X+100>>2],Ge=u[e[A+8>>2]+15|0],o=u[A+20|0],G=u[Y+(Ge+O(o|u[f+20|0]?(0|G)==1:G,10)|0)|0],!o|!(32&u[0|X]))break n;G=u[1+(Y+O(Ge,10)|0)|0]+G>>>1|0}o=M>>>1|0,Ge=!z,M=(0|(G=(0|O(e[130104+(z?(0|z)==1?4:8:0)>>2],G))/128|0))<=8?8:G;n:if((0|Oe)!=7)tt&&(M=e[X+200>>2]+M|0);else{if(M=(G=e[X+200>>2])+M|0,!tt)break n;M=((0|G)/2|0)+M|0}G=o&Ge|(0|m)==27,(o=y[304+(X+(Oe<<1)|0)>>1])||(o=y[X+316>>1]),M=O(o<<16>>16,M),(z=u[(o=b+145840|0)+7|0])&&(Oe=u[e[144464+(z<<2)>>2]+14|0])&&(M=(0|O(M,Oe))/100|0),(G|(0|s)==2)==1&&(2097152&(s=e[X+12>>2])||(M=(0|O(262144&s?282:256+((280-(u[e[8+(b+145840|0)>>2]+14|0]<<1)|0)/3|0)&65535,M))/256|0)),Oe=b+145840|0,s=O(e[32526],e[X+196>>2]),tt=(0|OA)!=2?256:(0|((0|s)>(0|M)?M:s))/128|0,e[Oe+12>>2]=tt,(s=u[Oe+16|0])>>>0>=19&&(pi(84371,28,dA),d[Oe+16|0]=0,z=u[o+7|0],s=0),M=s+1|0,(s=255&z)?(Nn(s,c+8|0),s=Ri(e[c+132>>2])):s=e[129280+((255&M)<<2)>>2],G=b+145840|0,1&(I|te)&&(o=(b=oe<<5)+145840|0,I=u[0|s],s=u[G+21|0],s=((0|O(I,u[G+22|0]-s|0))/256|0)+s|0,d[o+22|0]=s,r=(s-(r=(0|s)==255?255:r)|0)>16?s-16|0:r,d[o+21|0]=r,o=0,(0|r)<(0|s)&&(d[Oe+16|0]=M,o=2),e[(r=b+145840|0)+12>>2]=tt,d[r+16|0]=o,s=u[Je+19|0],d[r+19|0]=u[r+17|0]!=3&&s>>>0>18?18:s),r=(0|OA)!=2,o=-2&(s=y[A>>1]),k[A>>1]=o;n:{o:{c:switch(u[A+17|0]-3|0){case 5:if(u[f+17|0]==2)break n;o=1|s;break o;case 0:break c;default:break n}if(k[A>>1]=1|s,u[f+17|0]!=2&&e[e[A+8>>2]>>2]!=12146)break n}k[A>>1]=o}r?(0|(A=r<<4))<=((s=u[G+22|0])-(o=u[G+21|0])|0)||(o=(0|(A=s-A|0))>0?A:0,d[G+21|0]=o):(s=u[G+22|0],o=u[G+21|0]),A=255&o,r=((0|O(u[e[129280+(u[Oe+16|0]<<2)>>2]+127|0],s-A|0))/256|0)+A|0,I=0,te=0;break e}o=e[12+(s+145840|0)>>2],e[f+12>>2]=o,(0|OA)==3&&(o=e[32526],e[f+12>>2]=o),s=r;a:switch(G-5|0){case 0:e[f+12>>2]=(O(o,160)>>>0)/100;break r;case 2:break a;default:break A}e[f+12>>2]=(O(o,120)>>>0)/100}s=r}te=0,d[(A=b+145840|0)+16|0]=0,o=A,s=(A=255&s)-16|0,d[o+21|0]=A>>>0>=s>>>0?s:0}if(!(e[36423]>(0|l)))break}if(H=c+160|0,15&(o=e[47197])|e[36456]){A=0,f=0,H=s=H-80|0;e:if((r=e[33222])||(e[33223]=500,r=it(500),e[33222]=r,r)){if(!((e[36423]-2|0)<2)){for(A=o>>8,X=128&o?0:A,z=A&o<<24>>31,G=2&o,o=s+32|1,b=1;;){if(Fs(s,e[(l=(oe=b<<5)+145840|0)+8>>2],l,G,s+72|0),A=s+32|0,(13&(r=u[l+20|0]))==1&&(d[s+32|0]=32,A=o),!X|(0|X)!=32&!!(0|r)|b>>>0<2||(zA(s+76|0,s),e[s+76>>2]-880>>>0>4294967103||(A=Ar(X,A)+A|0)),4&u[0|l]&&((r=u[3+(oe+145840|0)|0])>>>0<2||(r=r>>>0>=5?5:r,r=G?r>>>0>3?712:716:d[r+94144|0],e[s+76>>2]=r,A=Ar(r,A)+A|0)),M=0,e[s+72>>2]=0,u[0|(r=s)])for(;r=zA(s+76|0,r)+r|0,e[s+72>>2]>>>M-1&1|!z|(0|M)<=0||(I=e[s+76>>2])-880>>>0>4294967103||fi(I)&&(A=Ar(z,A)+A|0),M=M+1|0,A=Ar(e[s+76>>2],A)+A|0,u[0|r];);if(u[e[l+8>>2]+10|0]!=21&&(8&(r=y[l>>1])&&(A=Fs(A,e[36128],l,G,0),r=y[l>>1]),!(4&r)|u[17+(oe+145840|0)|0]==2||(A=Fs(A,e[36136],l,G,0)),(r=u[7+(oe+145840|0)|0])&&(A=Fs(A,e[144464+(r<<2)>>2],l,G,0))),(A=(l=A-(s+32|0)|0)+f|0)>>>0<$[33223])r=e[33222];else{if(r=A+500|0,e[33223]=r,!(r=Ut(e[33222],r))){e[33223]=0,r=86135;break e}e[33222]=r}if(d[(M=l)+(l=s+32|0)|0]=0,DA(r+f|0,l),f=A,!((0|(b=b+1|0))<(e[36423]-2|0)))break}if(!r){r=86135;break e}}d[A+r|0]=0}else e[33223]=0,r=86135;H=s+80|0,15&u[188788]&&(e[t>>2]=r,rr(e[47195],84367,t)),(A=e[36456])&&$A[0|A](r)}u[190280]?(e[36423]=0,A=1):(RA(0),(A=e[t+8>>2])?(H=r=H+-64|0,Rt(r,A,60),tn(r,1),s=0,(A=dt(r,0))&&(s=A,u[202976]&&(s=dt(202976,2))),H=r- -64|0,e[44468]=s):s=e[44468],A=1,s&&(r=e[32972],(s=it(1344))&&(r=SA(s,r,1344),s=216192+(e[50758]<<4)|0,e[s>>2]=11,e[s+8>>2]=r,r=e[50758]+1|0,e[50758]=(0|r)<=169?r:0),e[44468]=0))}else A=0,d[190280]=0;else A=0,e[36423]=0,e[50758]=0,e[50757]=0;return H=t+16|0,A}function aA(A,t){var r=0,s=0,o=0,l=0;r=1073741825;e:{A:{r:{a:{n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{v:{I:{x:{L:{_:{U:{y:{M:{Q:{F:{Ae:{R:{q:{z:{oe:{j:{Fe:{K:{f:{g:{re:{k:{se:{w:{s:{tA:{te:{t:{pe:{W:{me:{be:{rA:{de:{N:{Se:{B:{Oe:{$:{Ie:{we:{ze:{Ne:{Le:{_e:{Re:{je:{We:{ke:{sA:{ae:{Ye:{He:{Ee:{Ve:{P:{Me:{Y:{mA:{hA:{CA:{bA:{IA:{wA:{kA:{EA:{MA:{BA:{vA:{xA:{yA:{DA:{TA:{GA:{PA:{QA:{FA:{SA:{OA:{zA:{NA:{LA:{_A:{RA:{jA:{WA:{YA:{HA:switch(0|t){case 0:t=A-9>>>0<5?1073741825:0,t=(A=(0|A)==133)?1073741825:t;break F;case 1:d:{S:{G:{O:{D:{T:{X:{H:{Z:{ee:{ne:{le:{fe:{ge:{if((0|(t=-256&A))<=2047){if(!t)break ge;if((0|t)==1536)break fe;if((0|t)!=1792||(r=0,s=1,(0|A)!=1807))break d;break t}if((0|t)<=69631){if((0|t)==2048)break le;if((0|t)!=8192)break d;switch(r=131076,A-8204|0){case 1:break ne;case 0:break t;default:break ee}}if((0|t)==69632)break Z;if((0|t)!=917504)break d;switch(r=8388608,A-917505|0){case 62:break G;case 58:break O;case 57:break D;case 45:break T;case 43:break X;case 32:break H;case 0:break t;default:break S}}if(r=16,(0|A)!=173)break d;break t}if(r=0,s=1,A-1536>>>0<6)break t;s=(0|A)==1757,t=(A=(0|A)==1564)?2:0;break Q}if(r=0,s=1,(0|A)!=2274)break d;break t}return me=64,4}if(r=1073741826,(-2&A)==8206)break t;if(A-8234>>>0<5)return me=0,2;if(r=128,A-8289>>>0<4||(r=2,A-8294>>>0<4))break t;if(r=8388608,A-8298>>>0>=6)break d;break t}t=!(A-69821&-17),A=0;break M}me=536870976;break y}me=268435520;break y}me=-2147483584;break y}me=134217792;break y}me=67108928;break y}me=1073741888;break y}if(r=131072,s=64,A-917536>>>0<96)break t}break s;case 2:d:{S:{G:{O:{D:{T:{X:{if((0|(t=-256&A))<=130303){if((0|t)<=127743){if((0|t)<=64767){if((0|t)<=11007){if((0|t)==8192)break X;if((0|t)!=9216)break d;if(A-9255>>>0>=25)break T;break w}if((0|t)==11008)break D;if((0|t)!=11776||(r=-2147483648,A-11845>>>0>=59))break d;break t}if((0|t)<=126975){if((0|t)==64768)break O;if((0|t)!=65280||(r=4194304,A-65520>>>0>=9))break d;break t}if((0|t)==126976|(0|t)==127232|(0|t)==127488)break te;break d}if((0|t)<=129023){if((0|t)<=128255){if((0|t)==127744|(0|t)==128e3)break te;break d}if((0|t)==128256|(0|t)==128512|(0|t)==128768)break te;break d}if((0|t)<=129535){if((0|t)==129024|(0|t)==129280)break te;break d}if((0|t)==129536|(0|t)==129792|(0|t)==130048)break te;break d}if((0|t)<=919039){if((0|t)<=917759){if((0|t)<=130815){if((0|t)==130304)break te;if((0|t)!=130560)break d;break te}if((0|t)==130816)break te;if((0|t)!=917504)break d;if((-128&A)!=917632)break G;break se}if((0|t)<=918271){if((0|t)==917760)break S;if(r=4194304,(0|t)!=918016)break d;break t}if((0|t)==918272|(0|t)==918528)break se;if(r=4194304,(0|t)!=918784)break d;break t}if((0|t)<=920319){if((0|t)<=919551){if((0|t)==919040)break se;if(r=4194304,(0|t)!=919296)break d;break t}if((0|t)==919552|(0|t)==919808)break se;if(r=4194304,(0|t)!=920064)break d;break t}if((0|t)<=920831){if((0|t)==920320)break se;if(r=4194304,(0|t)!=920576)break d;break t}if((0|t)==920832|(0|t)==921088)break se;if(r=4194304,(0|t)!=921344)break d;break t}if(r=4194304,(0|A)!=8293)break d;break t}if(r=-2147483648,A-9291>>>0>=21)break d;break t}if((-16&A)==11248|A-11219>>>0<25|(0|A)==11209|A-11194>>>0<3||(0|(t=-2&A))==11124)break w;if(r=-2147483648,(0|t)!=11158)break d;break t}if(r=65536,A-64976>>>0>=32)break d;break t}if((0|A)==917504)break se;if(r=4194304,A-917506>>>0>=30)break d;break t}if(r=4194304,A>>>0>917999)break t}t=(A=!(65534&~A))>>>16|0,A<<=16;break M;case 6:d:{S:{G:{O:{D:{T:{X:{H:{Z:{ee:{ne:{le:{if((0|(t=-256&A))<=7679){if((0|t)<=767){if(!t)break le;if((0|t)==256)break ne;if((0|t)!=512)break s;if((0|A)!=585)break ee;break U}if((0|t)==768)break Z;if((0|t)==1024)break H;if((0|t)!=7424||(r=16777216,(0|A)!=7574))break s;break t}if((0|t)<=119807){if((0|t)==7680)break X;if((0|t)==8448)break T;if((0|t)!=65280||(r=256,A-65345>>>0>=6))break s;break t}if((0|t)<=120319){if((0|t)==119808)break D;if((0|t)!=120064)break s;if(A>>>0>=120070)break O;break k}if((0|t)==120320)break G;if((0|t)!=120576)break s;if(A>>>0>=120597)break S;break k}if(r=768,A-97>>>0<6)break t;if(r=16777216,A-105>>>0>=2)break s;break t}r=(t=(0|A)==329)>>>9|0,t=(A=(0|A)==303)?16777216:t<<23;break _}if((0|A)==616)break U;if(r=16777216,(0|A)!=669)break s;break t}r=128;Z:switch(A-976|0){case 35:break d;case 0:case 1:case 2:case 5:case 32:case 33:break t;default:break Z}if((-2&A)!=1012)break s;break t}s=(A=!(A-1110&-3))>>>8|0,A<<=24;break L}s=(t=(0|A)==7883)>>>8|0,t=(A=(0|A)==7725)?16777216:t<<24;break Q}if(A-8458>>>0<10)break k;if((t=A-8495|0)>>>0<11)break YA;break pe}if((0|(t=-2&A))==119842)break re;if(A-119808>>>0<85)break k;if(A-119894>>>0<2|A-119946>>>0<2)break re;if((0|A)==119995|A-119896>>>0<69|A-119982>>>0<12)break k;if((0|t)==119998)break re;if(A-119997>>>0<7)break k;if(r=16777344,(0|t)==120050)break t;if(r=128,A>>>0<=120004)break s;break t}if((-2&A)==120102)break re;if(A-120094>>>0<28)break k;O:{if((0|A)<=120257){if(A-120154>>>0<2)break re;if(r=16777344,A-120206>>>0>=2)break O;break t}if(A-120258>>>0<2)break re;if(r=16777344,A-120310>>>0<2)break t}if(r=128,A>>>0<=120145)break s;break t}if(A-120362>>>0<2|A-120414>>>0<2)break re;if(r=16777344,A-120466>>>0<2)break t;if(A-120540>>>0<31|A>>>0>120571|A>>>0<120486)break k;if(r=128,A-120514>>>0>=25)break s;break t}if(A-120772>>>0<8|A-120746>>>0<25|A-120714>>>0<31|A-120688>>>0<25||(0|A)!=120597&A>>>0<120629|A-120656>>>0<31)break k;if(r=128,A-120630>>>0<25)break t;break s}break U;case 7:d:{S:{G:{O:{D:{T:{X:{H:{Z:{ee:{ne:{le:{fe:{ge:{E:{ce:{J:{V:{ie:{ue:{Be:{ve:{if((0|(t=-256&A))<=11263){if((0|t)<=3583){if((0|t)<=1535){if((0|t)==512)break ve;if((0|t)==768)break Be;if((0|t)!=1280||(r=4096,(0|A)!=1369))break s;break t}if((0|t)==1536)break ue;if((0|t)==1792)break ie;if((0|t)!=2304||(r=4096,(0|A)!=2417))break s;break t}if((0|t)<=7167){if((0|t)==3584)break V;if((0|t)==6144)break J;if((0|t)!=6656||(r=8192,(0|A)!=6823))break s;break t}if((0|t)==7168)break ce;if((0|t)==7424)break E;if((0|t)!=8192)break s;if(r=16793600,!(t=A-8305|0))break t;if((0|t)==14)break ge;break fe}if((0|t)<=43263){if((0|t)<=40959){if((0|t)==11264)break le;if((0|t)==11776)break ne;if((0|t)!=12288)break s;switch(r=8192,A-12293|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:break Z;case 0:case 44:case 45:case 46:case 47:case 48:break t;default:break ee}}if((0|t)==40960)break H;if((0|t)==42496)break X;if((0|t)!=42752)break s;if(A-42775>>>0>=9)break T;break g}if((0|t)<=65279){if((0|t)==43264)break D;if((0|t)==43520)break O;if((0|t)!=43776||(r=20480,(-4&A)!=43868))break s;break t}if((0|t)==65280)break G;if((0|t)==92928)break S;if((0|t)!=93952)break s;if(r=4096,A-94099>>>0<13)break t;if(r=8192,(-2&A)!=94176)break s;break t}if(r=16797696,(0|A)==690)break t;if(A-688>>>0<9)return me=0,20480;if(A-697>>>0<7)break g;if((0|(t=-2&A))==704)return me=0,20480;if(r=4096,A-710>>>0<10||(r=12288,(0|t)==720)||(r=20480,A-736>>>0<5))break t;r=(A=(-3&A)==748)>>>20|0,A<<=12;break x}t=(0|A)==890?20480:0,t=(A=(0|A)==884)?4096:t;break F}if(r=8192,(0|A)==1600)break t;if(r=4096,A-1765>>>0>=2)break s;break t}if(r=4096,(-2&A)==2036)break t;if(r=8192,(0|A)!=2042)break s;break t}t=(A=!(A-3654&-129))>>>19|0,A<<=13;break M}if(r=8192,(0|A)!=6211)break s;break t}if(r=12288,(0|A)==7291)break t;if(r=4096,A-7288>>>0>=6)break s;break t}if(r=16797696,(0|A)==7522||(r=20480,A-7468>>>0<63))break t;r=16384;E:switch(A-7588|0){default:if((0|A)==7544)break t;case 1:case 2:case 3:if(A-7579>>>0>=37)break s;break t;case 0:case 4:break E}return me=0,16793600}return me=0,16384}if(r=16384,A-8336>>>0>=13)break s;break t}t=(r=(0|A)==11389)>>>18|0,r=(A=(0|A)==11388)?16793600:r<<14;break I}if(r=-2147479552,(0|A)!=11823)break s;break t}if(A-12445>>>0<2)break t;if((0|A)==12540)break d}if(A-12541>>>0>=2)break s;break t}if(r=8192,(0|A)!=40981)break s;break t}if((0|A)==42508)break v;if((0|A)==42623)break g;if(r=20480,(-2&A)!=42652)break s;break t}if((0|A)==42864)return me=0,16384;if((0|A)==42888)break g;if(r=20480,(-2&A)!=43e3)break s;break t}r=(t=(0|A)==43494)>>>19|0,t=(A=(0|A)==43471)?8192:t<<13;break _}if((0|A)==43632||(0|A)==43741)break v;if(r=8192,A-43763>>>0>=2)break s;break t}if(r=12288,(0|A)==65392)break t;if(r=135168,(-2&A)!=65438)break s;break t}if(r=8192,(-2&A)==92994)break t;break s}return me=0,12288;case 8:r=128;d:{S:{G:{O:{D:{T:{X:{H:{Z:{if((0|(t=-256&A))<=12543){if((0|t)<=5887){if((0|t)<=3583){if(!t)break Z;if((0|t)!=1536||(t=8388608,(0|A)!=1651))break B;break de}if((0|t)==3584)break H;if((0|t)!=4352||(r=4194304,A-4447>>>0>=2))break B;break N}if((0|t)<=8447){if((0|t)==5888)break X;if((0|t)!=6400||(t=A-6581|0)>>>0>=6)break B;r=e[(t=81432+(t<<3)|0)>>2],s=e[t+4>>2];break N}if((0|t)==8448)break T;if((0|t)!=12288||(t=2048,(0|A)!=12294))break B;break de}if((0|t)<=68863){if((0|t)<=63999){if((0|t)==12544)break D;if((0|t)!=43520)break B;if((t=A-43701|0)>>>0<8)break S;break Se}if((0|t)==64e3)break d;if((0|t)!=65280||(t=4194304,(0|A)!=65440))break B;break de}if((0|t)<=100095){if((0|t)==68864)break O;if((0|t)!=70400||(r=8192,(0|A)!=70493))break B;break be}if((0|t)==100096)break G;if((0|t)!=126464)break B;break N}s=(t=!(A-170&-17))>>>18|0,r=t<<14;break N}if(r=33554432,A-3648>>>0<5)break N;if(t=0,l=33554432,(0|A)==3759)break de;if(A-3776>>>0>=5)break B;break N}if(r=8388608,A-6051>>>0>=2)break B;break N}if(A-8501>>>0>=4)break B;break N}if(t=4194304,(0|A)!=12644)break B;break de}if(r=4096,(-2&A)!=68898)break B;break N}if(r=2048,A-100333>>>0<5)break N;break B}if(r=33554432,!(211>>>t&1))break Se;break N}if((t=A-64014|0)>>>0>=28)break B;r=e[(t=81480+(t<<3)|0)>>2],s=e[t+4>>2];break N;case 10:d:{S:{G:{O:{D:{T:{if((0|(t=-256&A))<=119807){if((0|t)<=8447){if(!t)break T;if((0|t)!=768)break s;switch(r=128,A-976|0){case 0:case 1:case 2:case 36:case 37:break t;default:break s}}if((0|t)==8448)break D;if((0|t)!=65280||(r=256,A-65313>>>0>=6))break s;break t}if((0|t)<=120319){if((0|t)==119808)break O;if((0|t)!=120064)break s;if(A>>>0>=120070)break G;break k}if((0|t)==120320)break S;if((0|t)!=120576)break s;if(A-120772>>>0>=8)break d;break k}if(r=768,A-65>>>0>=6)break s;break t}r=128;D:switch(A-8450|0){case 0:case 5:break t;default:break D}if(A-8458>>>0<10)break k;if((t=A-8469|0)>>>0<20)break WA;if((-4&A)==8508)break t;break Oe}if(A-119982>>>0<12|A>>>0>120004|A-119977>>>0<4|A-119973>>>0<2||(0|A)==119970|(-2&A)==119966|A-119808>>>0<85)break k;if(r=128,A-119894>>>0>=71)break s;break t}if(A-120138>>>0<7|A>>>0>120145|(0|A)==120134|A-120128>>>0<5||A-120123>>>0<4|A-120094>>>0<28|(0|A)!=120070&A>>>0<120075|A-120086>>>0<7)break k;if(r=128,A-120077>>>0>=8)break s;break t}if(A-120540>>>0<31|A>>>0<120486)break k;if(r=128,A-120488>>>0>=25)break s;break t}if(A-120714>>>0<31|A-120598>>>0<31)break k;if(r=128,A-120656>>>0<31)break t;break s;case 11:d:{S:{G:{O:{D:{T:{X:{H:{Z:{ee:{ne:{le:{fe:{ge:{E:{ce:{J:{if((0|(t=-256&A))<=43263){if((0|t)<=3839){if((0|t)<=3071){if((0|t)==2304)break J;if((0|t)!=2816)break f;if((0|A)>3005)break E;if((0|A)!=2878)break ce;return me=0,132096}if((0|t)==3072)break ge;if((0|t)!=3328)break f;switch(r=132096,A-3535|0){case 0:case 16:break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:break f;default:break fe}}if((0|t)<=6911){if((0|t)==3840)break le;if((0|t)!=4096)break f;if(r=1024,A-4139>>>0<2)break t;switch(A-4145|0){case 0:case 7:case 10:case 11:case 37:case 38:case 49:case 54:case 55:case 82:case 83:break t;case 86:case 87:case 88:case 89:case 90:case 91:case 94:case 105:case 106:break d;default:break ne}}if((0|t)==6912)break ee;if((0|t)==7168)break Z;if((0|t)!=12288||(r=135168,(-2&A)!=12334))break f;break t}if((0|t)<=70399){if((0|t)<=43775){if((0|t)==43264)break H;if((0|t)!=43520)break f;return me=0,A-43643&-3?1024:4096}if((0|t)==43776)break X;if((0|t)==69888)break T;if((0|t)!=70144||(r=4096,(0|A)!=70197))break f;break t}if((0|t)<=70911){if((0|t)==70400)break D;if((0|t)!=70656)break f;t=(0|A)==70845?132096:1024,t=(A=(0|A)==70832)?132096:t;break F}if((0|t)==70912)break O;if((0|t)==71168)break G;if((0|t)!=119040)break f;switch(r=131072,A-119141|0){case 8:break g;case 1:break s;case 0:break t;default:break S}}t=(0|A)==2519?132096:1024,t=(A=(0|A)==2494)?132096:t;break F}if(r=132096,(0|A)!=2903)break f;break t}if((0|A)==3006)return me=0,132096;if(r=132096,(0|A)!=3031)break f;break t}if((A=A-3266|0)>>>0>20||(r=132096,!(1<>>22|0,A<<=10;break x}r=1024;ee:switch(A-6965|0){default:if((0|A)==6916)break t;break;case 0:case 6:break t;case 1:case 2:case 3:case 4:case 5:break ee}if(A-6973>>>0<5)break t;ee:switch(A-6979|0){case 1:break g;case 0:break t;default:break ee}if((0|A)==7042|(0|A)==7073|(-2&A)==7078)break t;if((0|A)==7082)break g;if((0|A)==7143|A-7146>>>0<3)break t;r=(A=(0|A)==7150)>>>22|0,A<<=10;break x}t=(0|A)==7415?4096:1024,t=(A=(0|A)==7393)?4096:t;break F}t=(0|A)==43456?4096:1024,t=(A=(0|A)==43347)?4096:t;break F}if(r=4096,(0|A)!=44012)break f;break t}if(r=4096,(0|A)!=70080)break f;break t}r=132096;D:switch(A-70462|0){case 0:case 25:break t;case 15:break D;default:break f}break g}if(r=132096,(0|A)!=71087)break f;break t}if(r=4096,(0|A)!=71350)break f;break t}if(r=135168,A-119150>>>0<5)break t;break f}break g;case 12:t=((0|A)==8419)<<6,A=0;break M;case 13:d:{S:{G:{O:{D:{T:{X:{H:{Z:{ee:{ne:{le:{fe:{ge:{E:{ce:{J:{V:{ie:{ue:{Be:{ve:{Ue:{xe:{Ke:{aA:{Xe:{nA:{Ze:{iA:{oA:{ye:{Je:{qe:{lA:{De:{Te:{cA:{$e:{uA:{eA:{he:{Ge:{Pe:{Qe:{AA:{dA:{Ce:{fA:{gA:{pA:{if((0|(t=-256&A))<=43775){if((0|t)<=5887){if((0|t)<=2559){if((0|t)<=1535){if((0|t)==768)break pA;if((0|t)==1024)break gA;if((0|t)!=1280)break s;if(A-1425>>>0>=17)break fA;break g}if((0|t)<=2047){if((0|t)==1536)break Ce;if((0|t)!=1792)break s;if(r=1024,(0|A)==1809)break t;if((-16&A)!=1840)break dA;return me=0,5120}if((0|t)==2048)break AA;if((0|t)!=2304)break s;if(A>>>0>=2307)break Qe;break f}if((0|t)<=3583){if((0|t)<=3071){if((0|t)==2560)break Pe;if((0|t)!=2816)break s;switch(r=1024,A-2876|0){case 0:break g;case 3:break t;case 1:case 2:break he;default:break Ge}}if((0|t)==3072)break eA;if((0|t)!=3328)break s;if((0|(t=-2&A))!=3328)break uA;break f}if((0|t)<=4095){if((0|t)==3584)break $e;if((0|t)!=3840)break s;if((0|(t=-2&A))!=3864)break cA;break g}if((0|t)==4096)break Te;if((0|t)!=4864||(r=1024,(0|A)!=4959))break s;break t}if((0|t)<=8191){if((0|t)<=6655){if((0|t)==5888)break De;if((0|t)==6144)break lA;if((0|t)!=6400)break s;if((t=A-6432|0)>>>0<=18&&(r=1024,1<>>0>=3)break s;break t}if((0|t)<=7167){if((0|t)==6656)break qe;if((0|t)!=6912)break s;if(r=1024,(-4&A)==6912)break t;if((0|A)!=6964)break Je;break g}if((0|t)==7168)break ye;if((0|t)!=7424)break s;if(r=4096,A-7620>>>0<12||(r=1024,A-7655>>>0<14))break t;if((A=A-7669|0)>>>0>=11)break s;t=e[(A=82104+(A<<3)|0)>>2];break m}if((0|t)<=42495){if((0|t)<=11519){if((0|t)==8192)break oA;if((0|t)!=11264||(r=4096,A-11503>>>0>=3))break s;break t}if((0|t)==11520)break iA;if((0|t)!=12288)break s;if(A-12330>>>0>=4)break Ze;break g}if((0|t)<=43263){if((0|t)==42496)break nA;if((0|t)!=43008)break s;if(A-43045>>>0>=2)break Xe;break f}if((0|t)==43264)break aA;if((0|t)!=43520)break s;switch(r=1024,A-43561|0){case 83:case 150:case 152:break g;case 0:case 1:case 2:case 3:case 4:case 5:case 8:case 9:case 12:case 13:case 26:case 35:case 135:case 137:case 138:case 139:case 142:case 143:case 149:break t;default:break Ke}}if((0|t)<=71423){if((0|t)<=69375){if((0|t)<=66047){if((0|t)==43776)break xe;if((0|t)==64256)break Ue;if((0|t)!=65024)break s;if(r=536870912,A-65024>>>0<15||(s=64,(0|A)==65039))break t;if(r=4096,s=0,(-16&A)!=65056)break s;break t}if((0|t)<=68095){if((0|t)==66048)break ve;if((0|t)!=66304||(r=1024,A-66422>>>0>=5))break s;break t}if((0|t)==68096)break Be;if((0|t)!=68864||(r=5120,(-4&A)!=68900))break s;break t}if((0|t)<=70399){if((0|t)<=69887){if((0|t)==69376)break ue;if((0|t)!=69632)break s;if(A-69688>>>0>=14)break ie;break f}if((0|t)==69888)break V;if((0|t)!=70144)break s;if(r=1024,A-70191>>>0<3)break t;switch(A-70196|0){case 2:break g;case 0:case 3:case 10:break t;case 1:case 4:case 5:case 6:case 7:case 8:case 9:break ce;default:break J}}if((0|t)<=70911){if((0|t)==70400)break E;if((0|t)!=70656)break s;if((-8&A)!=70712)break ge;break f}if((0|t)==70912)break fe;if((0|t)!=71168)break s;if(r=1024,A-71219>>>0<8)break t;switch(A-71229|0){case 2:break g;case 0:case 3:break t;case 1:break ne;default:break le}}if((0|t)<=92927){if((0|t)<=72703){if((0|t)==71424)break zA;if((0|t)==71680)break ee;if((0|t)!=72192)break s;if(A-72193>>>0>=10)break Z;break f}if((0|t)<=73215){if((0|t)==72704)break H;if((0|t)!=72960)break s;if((t=A-73009|0)>>>0<19)break SA;break $}if((0|t)==73216)break X;if((0|t)!=92672||(r=4096,A-92912>>>0>=5))break s;break t}if((0|t)<=122879){if((0|t)<=113663){if((0|t)==92928)break T;if((0|t)!=93952||(r=4096,A-94095>>>0>=4))break s;break t}if((0|t)==113664)break D;if((0|t)!=119040)break s;switch(r=4096,A-119143|0){case 0:case 1:case 2:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 67:case 68:case 69:case 70:break t;default:break s}}if((0|t)<=125183){if((0|t)==122880)break O;if((0|t)!=124928||(r=4096,A-125136>>>0>=7))break s;break t}if((0|t)==125184)break G;if((0|t)!=917760||(r=536870912,A-917760>>>0>=240))break s;break t}if(A-768>>>0<69)break g;if(r=21504,(0|A)==837)break t;if(A-838>>>0<9)break g;if(r=4194304,(0|A)==847)break t;if((-8&A)==848)break g;if(r=4096,A-861>>>0>=6)break s;break t}if(r=4096,A-1155>>>0>=5)break s;break t}if(r=4096,A-1443>>>0<13||(r=5120,A-1456>>>0<14))break t;if((A=A-1471|0)>>>0>=9)break s;t=e[(A=81944+(A<<3)|0)>>2];break m}if(A-1552>>>0<11)break f;if(r=5120,A-1611>>>0<8)break t;if(A-1619>>>0<4)break f;Ce:switch(A-1623|0){case 1:break g;case 0:break t;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 25:case 127:case 128:case 129:case 130:case 131:case 132:case 133:break f;default:break Ce}if(r=4096,A-1759>>>0<2)break t;if((t=A-1761|0)>>>0<8)break jA;break Ie}if(A-1856>>>0<11)break g;if(r=5120,A-1958>>>0<11)break t;if(r=4096,A-2027>>>0>=9)break s;break t}r=1024;AA:switch((-2&A)-2070|0){case 2:break g;case 0:break t;default:break AA}if(A-2260>>>0<12|A-2089>>>0<4|A-2075>>>0<9|A-2085>>>0<3)break f;if(A-2275>>>0<7)return me=0,5120;if(r=4096,A-2282>>>0<6||(r=5120,A-2288>>>0<15))break t;if(r=1024,(0|A)!=2303)break s;break t}r=1024;Qe:switch(A-2362|0){case 2:break g;case 0:break t;default:break Qe}if(A-2369>>>0<8)break f;r=4096;Qe:switch(A-2381|0){case 0:case 4:case 5:case 6:case 7:case 111:break t;case 8:case 9:case 10:case 21:case 22:case 52:break f;default:break Qe}if(A-2497>>>0<4)break f;if((0|A)==2509)break t;if(r=1024,(-2&A)!=2530)break s;break t}if(A-2561>>>0<2)break f;r=4096;Pe:switch(A-2620|0){case 0:case 17:case 128:case 145:break t;case 5:case 6:case 11:case 12:case 15:case 16:case 21:case 52:case 53:case 57:case 69:case 70:case 133:case 134:case 135:case 136:case 137:case 139:case 140:case 166:case 167:case 190:case 191:case 192:break f;default:break Pe}if(A-2813>>>0>=3)break s;break t}if((0|A)==2817)break f}if(A-2881>>>0<4)break f;r=4096;he:switch(A-2893|0){case 0:break t;case 9:break f;default:break he}if((-2&A)==2914)break f;r=1024;he:switch(A-3008|0){default:if((0|A)!=2946)break s;break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:break s;case 0:break t;case 13:break he}break g}r=1024;eA:switch(A-3072|0){case 77:case 188:case 205:break g;case 0:case 62:case 63:case 64:case 70:case 71:case 72:case 74:case 75:case 76:case 85:case 86:case 98:case 99:case 129:case 191:case 198:case 204:break t;default:break eA}if((-2&A)!=3298)break s;break t}if(r=4096,A-3387>>>0<2)break t;if(A-3393>>>0<4)break f;if((0|A)==3405)break t;if((0|t)==3426)break f;switch(A-3530|0){case 0:break t;case 8:case 9:case 10:case 12:break f;default:break s}}if((t=A-3633|0)>>>0<10)break RA;break we}if((r=A-3893|0)>>>0>4|!(1<>>22|0,r=(A=(0|A)==4237)?4096:r<<10;break I}r=1024;De:{Te:switch(A-5906|0){case 0:case 1:case 32:case 33:break t;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:break De;default:break Te}switch(A-5970|0){case 0:case 1:case 32:case 33:break t;default:break De}}if(r=4194304,(-2&A)==6068)break t;if((t=A-6071|0)>>>0<16)break _A;break Ne}if(r=536870912,A-6155>>>0<3||(r=67109888,A-6277>>>0<2))break t;if(r=1024,(0|A)!=6313)break s;break t}if(A-6679>>>0<2)break f;r=1024;qe:switch(A-6683|0){case 0:case 59:case 61:case 62:case 63:case 64:case 65:case 66:case 67:case 71:case 74:case 75:case 76:case 77:case 78:case 79:case 80:case 81:case 88:case 89:break t;default:break qe}if(r=4096,A-6832>>>0<14)break t;if((A=A-6773|0)>>>0>=11)break s;t=e[(A=82016+(A<<3)|0)>>2];break m}if(A-6966>>>0<5)break t;Je:switch(A-6972|0){case 0:case 6:break t;default:break Je}if(A-7019>>>0<9)break g;switch(A-7040|0){case 43:break g;case 0:case 1:case 34:case 35:case 36:case 37:case 40:case 41:case 44:case 45:case 104:case 105:case 109:case 111:case 112:case 113:break t;default:break s}}if(r=1024,A-7212>>>0<8)break t;r=12288;ye:switch(A-7222|0){case 1:break g;case 0:break t;default:break ye}if(A-7380>>>0<13)break g;r=4096;ye:switch(A-7376|0){case 0:case 1:case 2:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 29:case 36:break t;default:break ye}if((-2&A)!=7416)break s;break t}if(r=128,A-8400>>>0<13)break t;if((A=A-8417|0)>>>0>=15)break s;t=e[(A=82192+(A<<3)|0)>>2];break m}if(r=1024,(-32&A)!=11744)break s;break t}if(r=4096,A-12441>>>0>=2)break s;break t}if((0|A)==42607)break g;if(A-42612>>>0<8)break f;if((0|(A&=-2))==42620)break g;if((0|A)==42654)break d;if(r=4096,(0|A)!=42736)break s;break t}r=4096;Xe:switch(A-43204|0){case 0:break t;case 1:break f;default:break Xe}if(A-43232>>>0>=18)break s;break t}if(A-43302>>>0<5)break f;if(A-43307>>>0<3)break g;if(A-43335>>>0<11|A-43392>>>0<3)break f;if(r=4096,(0|A)==43443||(r=1024,A-43446>>>0<4))break t;s=(t=(0|A)==43493)>>>20|0,t=(A=(0|A)==43452)?1024:t<<12;break Q}if((-2&A)==43756)break t;if(r=4096,(0|A)!=43766)break s;break t}r=1024;xe:switch(A-44005|0){case 0:case 3:break t;case 8:break xe;default:break s}break g}if(r=5120,(0|A)!=64286)break s;break t}if(r=4096,(0|A)!=66272)break s;break t}if((-4&A)==68108)break f;if((t=A-68097|0)>>>0<6)break LA;break Le}if(r=4096,A-69446>>>0>=11)break s;break t}if(A-69811>>>0<4)break f;if(r=1024,(0|A)==69633)break t;if(r=4096,A-69817>>>0>=2)break s;break t}r=1024;V:switch(A-69888|0){case 51:case 52:case 115:break g;case 0:case 1:case 2:case 39:case 40:case 41:case 42:case 43:case 45:case 46:case 47:case 48:case 49:case 50:break t;default:break V}if((-2&A)==70016|A-70070>>>0<9)break t;if(r=4096,A-70090>>>0>=3)break s;break t}if((0|A)==70367)break t}if(A-70371>>>0<6)break t;if(r=4096,A-70377>>>0>=2)break s;break t}if((-2&A)==70400)break f;r=4096;E:switch(A-70460|0){case 0:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 52:case 53:case 54:case 55:case 56:break t;case 4:break E;default:break s}break f}if((0|A)==70722)break g;if(A-70723>>>0<2)break f;if((t=A-70835|0)>>>0<=13)break S;break _e}if((t=A-71090|0)>>>0<12)break NA;break Re}switch(A-71339|0){case 0:case 2:break t;default:break ne}}if(A-71344>>>0<6)break t;if(r=4096,(0|A)!=71351)break s;break t}if(r=1024,A-71727>>>0<10)break t;if(r=4096,A-71737>>>0>=2)break s;break t}if((0|A)==72244)break g;if(A-72245>>>0<10)break f;if(r=4096,(0|A)==72263)break t;if(A-72273>>>0<11)break f;if(r=1024,A-72330>>>0<13)break t;r=(t=(0|A)==72345)>>>20|0,t=(A=(0|A)==72344)?8192:t<<12;break _}if((t=A-72752|0)>>>0<16)break OA;break je}if(r=1024,A-73459>>>0>=2)break s;break t}if(r=1024,A-92976>>>0>=7)break s;break t}if(r=1024,(0|A)!=113822)break s;break t}if(r=1024,A-122888>>>0<17)break t;if((A=A-122880|0)>>>0>=43)break s;t=e[(A=82816+(A<<3)|0)>>2];break m}if(r=12288,A-125252>>>0<3||(r=1024,(0|A)==125255)||(r=4096,A-125256>>>0<3))break t;break s}if(!(1<>>0>=10))break d;break t}if(r=256,A-65296>>>0>=10)break d;break t}if(r=128,A-120782>>>0<50)break t}break s;case 15:d:{if((0|(t=-256&A))!=12288){if((0|t)!=8448)break d;t=(A=(0|(r=-16&A))==8560)>>>18|0,s=A<<14,r=(A=(0|r)==8544)?32768:s;break I}if(A-12321>>>0<9||A-12344>>>0<3)return me=0,2048;if(r=2048,(0|A)==12295)break t}break s;case 16:d:{S:{G:{if((0|(t=-256&A))<=9215){if((0|t)==4864)break G;if((0|t)!=6400||(r=134217728,(0|A)!=6618))break d;break t}if((0|t)==9216)break S;if((0|t)!=127232)break d;if(r=0,s=-2147483648,(0|A)==127232)break t;if(s=268435456,A-127233>>>0>=10)break d;break t}if(r=134217728,A-4969>>>0>=9)break d;break t}if(r=0,s=-2147483648,A-9352>>>0<20)break t}break s;case 17:s=(A=(0|A)==8256)>>>25|0,A<<=7;break L;case 18:d:{S:{G:{O:{if((0|(t=-256&A))<=11775){if((0|t)<=6143){if(r=-2147483624,!t)break t;if((0|t)!=1280||(r=24,(0|A)!=1418))break d;break t}if((0|t)==6144)break O;if((0|t)!=8192)break d;if(r=-2147483624,(-2&A)==8208)break t;A=A-8211>>>0<2,t=-2147483640;break b}if((0|t)<=65023){if((0|t)==11776)break G;if((0|t)!=12288)break d;t=(0|A)==12336,r=(A=(0|A)==12316)||t?-2147483640:8,me=A?0:t?130:0;break h}if((0|t)==65024)break S;if((0|t)!=65280||(r=24,(0|A)!=65293))break d;break t}if(r=24,(0|A)!=6150)break d;break t}if(r=-2147483624,(0|A)==11799)break t;A=(-2&A)==11834,t=-2147483640;break b}if(r=8,s=8388608,A-65073>>>0<2||(r=152,s=0,(0|A)==65123))break t}return me=0,8;case 19:d:{S:{G:{O:{D:{T:{if((0|(t=-256&A))<=11775){if((0|t)<=8959){if(t)break T;break w}if((0|t)==8960)break D;if((0|t)==9984)break O;if((0|t)!=10496)break s;break K}if((0|t)<=64767){if(r=-2147483648,(0|t)==11776)break t;if((0|t)!=12288)break s;switch(r=-2147483616,A-12301|0){case 0:case 2:break t;default:break G}}if((0|t)==64768)break S;if((0|t)==65024)break d;if((0|t)!=65280)break s;if(r=32,(0|A)==65379)break t;break s}if((0|t)!=8192)break s;T:switch(A-8318|0){default:if(r=-2147483648,(0|A)!=8262)break s;break t;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:break s;case 0:case 16:break T}break k}r=-2147483520;D:switch(A-8969|0){case 1:break s;case 0:case 2:break t;default:break D}if((0|A)!=9002)break s;return me=0,-2139095040}if(r=-2147483520,(0|A)==10182)break t;break Fe}return me=0,(-2&A)==12318?-2147483616:-2147483648}if(r=-2147483648,(0|A)!=64830)break s;break t}s=(A=!(A-65090&-3))>>>27|0,A<<=5;break L;case 20:case 21:if(!(A&=-256))break C;if(r=-2147483616,(0|A)==8192)break t;break tA;case 22:d:{S:{G:{O:{D:{T:{X:{H:{Z:{ee:{ne:{le:{fe:{ge:{E:{ce:{J:{V:{ie:{ue:{Be:{ve:{Ue:{xe:{Ke:{aA:{Xe:{nA:{Ze:{iA:{oA:{ye:{Je:{qe:{lA:{De:{Te:{cA:{$e:{uA:{eA:{he:{Ge:{Pe:{Qe:{AA:{dA:{Ce:{if((0|(t=-256&A))<=43519){if((0|t)<=5887){if((0|t)<=2303){if((0|t)<=1535){if(!t)break Ce;if((0|t)==768)break dA;if((0|t)!=1280)break s;if(r=0,s=538968064,A-1371>>>0<2)break t;switch(s=268435456,A-1373|0){case 0:break t;case 1:break Qe;default:break AA}}if((0|t)==1536)break Ge;if((0|t)==1792)break he;if((0|t)!=2048)break s;if((t=A-2103|0)>>>0<8)break QA;break We}if((0|t)<=3839){if((0|t)==2304)break eA;if((0|t)==3328)break uA;if((0|t)!=3584||(r=64,(-2&A)!=3674))break s;break t}if((0|t)<=4863){if((0|t)==3840)break $e;if((0|t)!=4096)break s;if(r=268435520,(-2&A)==4170)break t;if(r=0,s=16777216,(0|A)!=4347)break s;break t}if((0|t)==4864)break cA;if((0|t)!=5632)break s;switch(r=64,A-5741|0){case 1:break n;case 0:break t;default:break Te}}if((0|t)<=11263){if((0|t)<=6655){if((0|t)==5888)break De;if((0|t)==6144)break GA;if((0|t)!=6400)break s;t=(0|A)==6469,r=(A=(0|A)==6468)||t?268435520:0,me=A?536870912:t?1073741824:0;break h}if((0|t)<=7167){if((0|t)==6656)break lA;if((0|t)!=6912)break s;if((0|(t=-2&A))!=7002)break qe;break j}if((0|t)==7168)break Je;if((0|t)!=8192)break s;switch(r=-2147483520,A-8214|0){case 1:break w;case 0:break t;case 16:break ye;default:break oA}}if((0|t)<=41983){if((0|t)==11264)break iA;if((0|t)==11776)break Ze;if((0|t)!=12288)break s;switch(r=-2147483584,s=272629760,A-12289|0){case 2:break w;case 0:break t;case 1:break Xe;default:break nA}}if((0|t)<=43007){if((0|t)==41984)break aA;if((0|t)!=42496)break s;switch(r=64,s=268435456,A-42739|0){case 4:break o;case 0:break n;case 3:break r;case 2:break t;case 1:break xe;default:break Ke}}if((0|t)==43008)break Ue;if((0|t)!=43264)break s;switch(r=4096,A-43310|0){case 0:break t;case 1:break j;default:break ve}}if((0|t)<=70655){if((0|t)<=67839){if((0|t)<=65279){if((0|t)==43520)break Be;if((0|t)==43776)break ue;if((0|t)!=65024)break s;if(r=0,s=268435456,(0|(l=-2&A))==65040)break t;if((t=A-65042|0)>>>0<8)break DA;break ke}if((0|t)==65280)break ie;if((0|t)==66304)break V;if((0|t)!=67584||(r=64,(0|A)!=67671))break s;break t}if((0|t)<=69375){if((0|t)==67840)break J;if((0|t)==68096)break ce;if((0|t)!=68352)break s;switch(r=64,A-68410|0){case 0:case 1:case 2:case 3:case 4:case 5:case 95:case 96:case 97:case 98:break t;default:break s}}if((0|t)<=69887){if((0|t)==69376)break E;if((0|t)!=69632)break s;if(A-69703>>>0>=2)break ge;break j}if((0|t)==69888)break fe;if((0|t)!=70144)break s;if((t=A-70200|0)>>>0<=4)break le;if((0|A)!=70313)break s;break j}if((0|t)<=74751){if((0|t)<=71423){if((0|t)==70656)break ne;if((0|t)==70912)break ee;if((0|t)!=71168||(r=268435520,A-71233>>>0>=2))break s;break t}if((0|t)<=72703){if((0|t)==71424)break Z;if((0|t)!=72192)break s;if(A-72258>>>0>=2)break H;break j}if((0|t)==72704)break X;if((0|t)!=73216||(r=268435520,A-73463>>>0>=2))break s;break t}if((0|t)<=93695){if((0|t)==74752)break T;if((0|t)==92672)break O;if((0|t)!=92928)break s;if(r=268435520,A-92983>>>0<2)break t;t=(0|A)==92996?268435520:0,t=(A=(0|A)==92985)?64:t;break F}if((0|t)<=121343){if((0|t)==93696)break D;if((0|t)!=113664||(r=268435520,s=-2147483648,(0|A)!=113823))break s;break t}if((0|t)==121344)break yA;if((0|t)!=125184)break s;r=((0|A)==125279)<<30,t=0,me=(A=(0|A)==125278)?536870912:r;break i}r=-1879048128,s=536870912;Ce:{fA:{gA:{pA:{VA:switch(A-33|0){default:switch(A-183|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:break Ce;case 8:break gA;case 0:break pA;default:break fA}case 2:case 9:me=66;break u;case 11:return me=268435456,-2147483584;case 13:return me=-2147483648,-1879048128;case 25:return me=134217728,-2147483584;case 26:return me=67108864,-2147483584;case 1:case 6:break C;case 0:break t;case 3:case 4:case 5:case 7:case 8:case 10:case 12:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 27:case 28:case 29:break Ce;case 30:break VA}return me=1073741824,-1879048128}return me=0,134230016}me=1078984704;break u}if((0|A)==161)break sA}break w}t=(0|A)==903,r=(A=(0|A)==894)?64:t?134217792:0,me=A?1073741824:t?67108864:0;break h}if((0|A)==1417)break Pe;if((0|A)!=1475)break s;break oe}me=1075838976;break c}me=-2143289344;break a}r=64,s=268435456;Ge:switch(A-1548|0){case 15:break r;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 16:case 17:break s;case 0:break t;case 19:break Ge;case 18:break j;default:break G}break o}if((t=A-1792|0)>>>0<6)break FA;if(r=64,s=134217728,(-2&A)==1798)break t;s=67108864;he:{Ge:{Pe:switch(A-1800|0){default:switch(A-2040|0){case 1:break he;case 0:break Ge;default:break s}case 3:break s;case 0:break t;case 1:break Pe;case 2:case 4:break oe}me=1073741824;break A}me=268435456;break A}me=536870912;break a}t=(0|A)==2405,r=(A=(0|A)==2404)||t?268435520:0,me=A?-2143289344:t?16777216:0;break h}if(r=0,s=-2143289344,(0|A)!=3572)break s;break t}r=64;$e:switch(A-3848|0){case 5:me=-2143289344;break A;case 6:me=16777216;break A;case 0:break t;default:break $e}if(A-3854>>>0<5)break t;if(r=0,s=268435456,(0|A)!=3860)break s;break t}if((t=A-4961|0)>>>0<4)break PA;if(r=64,s=134217728,A-4965>>>0<2)break t;t=(0|A)==4968,r=(A=(0|A)==4967)||t?268435520:0,me=A?1073741824:t?16777216:0;break h}if(A-5867>>>0>=3)break s;break t}if(r=268435520,A-5941>>>0<2)break t;if((A=A-6100|0)>>>0>=7)break s;t=e[(A=83240+(A<<3)|0)>>2];break m}if(r=268435520,(-4&A)!=6824)break s;break t}if(r=64,(0|A)==7005)break t;if(r=268435520,(0|t)!=7006)break s;break t}if(A-7227>>>0<2)break j;if(r=64,A-7229>>>0<3||(r=268435520,(-2&A)==7294))break t;if(r=4096,(0|A)!=7379)break s;break t}me=33554432;break u}if((-8&A)==8224)break w;if(A-8242>>>0<3)break t;if(A-8240>>>0<9)break w;if((t=A-8251|0)>>>0<21)break TA;break ae}if((0|A)==11513){me=-2147483648;break c}if(r=0,s=1073741824,(-2&A)==11514)break t;if(s=-2147483648,(0|A)!=11518)break s;break t}r=-1879048128;Ze:switch(A-11822|0){case 4:case 6:me=268435456;break u;case 5:me=-2147483648;break u;case 7:me=67108864;break u;case 14:return me=-2147483648,-1879048128;case 19:return me=268435456,-2147483584;case 30:case 32:return me=0,-2147483584;case 0:break t;default:break Ze}break w}if((0|A)==12349)break z;if((0|A)!=12539)break s;return me=0,16}return me=-2143289344,-1879048128}t=(0|A)==42239,r=(A=(0|A)==42238)?64:t?268435520:0,me=A?268435456:t?-2147483648:0;break h}Ke:switch(A-42509|0){case 1:break n;case 0:break t;case 2:break Ke;default:break s}break o}me=134217728;break A}if(A-43126>>>0<2)break j;if(r=268435520,A-43214>>>0>=2)break s;break t}if((0|A)==43463)break oe;if(r=268435520,(-2&A)!=43464)break s;break t}if(A-43613>>>0<3)break j;if(r=64,(0|A)==43743)break t;if(r=268435520,(-2&A)!=43760)break s;break t}if(r=268435520,(0|A)!=44011)break s;break t}r=268435520,s=541065216;ie:switch(A-65281|0){case 1:case 6:return me=0,32;case 11:me=272629760;break A;case 13:me=-2143289344;break a;case 100:return me=0,16;case 25:me=138412032;break A;case 26:me=71303168;break A;case 30:me=1077936128;break a;case 96:break n;case 59:break k;case 0:break t;case 99:break ie;default:break s}me=268435456;break A}r=(t=(0|A)==66512)>>>26|0,t=(A=(0|A)==66463)?64:t<<6;break _}if(r=64,(0|A)!=67871)break s;break t}if(r=268435520,(-2&A)==68182)break t;if(r=64,A-68336>>>0>=6)break s;break t}if(r=268435520,A-69461>>>0>=5)break s;break t}if(r=64,A-69705>>>0<5)break t;if(r=268435520,A-69822>>>0>=4)break s;break t}if(A-69953>>>0<2)break j;if((t=A-70085|0)>>>0<=26)break S;break Ye}if((0|t)!=2)break j;break oe}if(r=268435520,A-70731>>>0<2)break t;s=(t=(0|A)==70747)>>>26|0,t=(A=(0|A)==70733)?64:t<<6,me=A?268435456:s;break i}r=268435520;ee:switch((-2&A)-71106|0){case 0:break t;case 2:break d;default:break ee}if(r=8192,A-71110>>>0<3)break t;if(r=268435520,A-71113>>>0>=15)break s;break t}if(r=268435520,A-71484>>>0>=3)break s;break t}if(r=268435520,A-72347>>>0<2)break t;if(r=64,A-72353>>>0>=2)break s;break t}if(r=268435520,A-72769>>>0<2)break t;r=(t=(0|A)==72817)>>>26|0,t=(A=(0|A)==72771)?64:t<<6;break _}if(r=64,s=134217728,A-74865>>>0<2)break t;if(s=0,A-74864>>>0>=5)break s;break t}t=(0|A)==93848?268435520:0,t=(A=(0|A)==93847)?64:t;break F}if(r=268435520,(-2&A)==92782)break t;if(s=-2147483648,(0|A)!=92917)break s;break t}if((0|A)==1748)break n;break s}if(!(1<>>0<=17&&(r=-2147483616,1<>>27|0,A<<=5;break x;case 24:r=(A=A>>>0<256)>>>1|0,A<<=31;break x;case 25:d:{S:{G:{O:{D:{T:{X:{H:{if((0|(t=-256&A))<=12287){if((0|t)<=767){if(!t)break H;if((0|t)!=512)break d;if(A-751>>>0>=17)break X;break g}if((0|t)==768)break T;if((0|t)!=7936)break d;switch(r=4096,A-8125|0){case 0:case 2:case 3:case 4:case 16:case 17:case 18:case 32:case 33:case 34:case 48:case 49:case 50:case 64:case 65:break t;default:break d}}if((0|t)<=43775){if((0|t)==12288)break D;if((0|t)!=42752||(r=4096,(-2&A)!=42784))break d;break t}if((0|t)==43776)break O;if((0|t)==65280)break G;if(r=0,s=78,(0|t)!=127744)break d;break t}H:switch(A-168|0){default:r=-2147479424;Z:switch(A-94|0){case 0:break t;case 2:break Z;default:break d}return me=0,-2147479552;case 0:case 7:break g;case 1:case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 10:case 11:case 13:case 14:case 15:break d;case 12:case 16:break H}break g}if((0|A)==749|A-741>>>0<7)break g;if(A-706>>>0>=4)break S;break g}if((A=A-885|0)>>>0>16||(r=4096,!(1<>>0>=2)break d;break t}if(r=4096,(0|A)!=43867)break d;break t}r=4224;G:switch(A-65342|0){default:if((0|A)!=65507)break d;break;case 0:break t;case 1:break d;case 2:break G}break g}if(r=4096,A-722>>>0<14)break t}break s;case 26:d:{S:{G:{O:{D:{T:{if((0|(t=-256&A))<=9471){if((0|t)<=8447){if(t)break d;break w}if((0|t)==8448)break T;if((0|t)==8704)break D;if(r=-2147483648,(0|t)!=8960)break s;break t}if((0|t)<=10495){if((0|t)==9472)break O;if((0|t)==9728)break G;if((0|t)==9984)break w;break s}if((0|t)==10496)break S;if((0|t)==10752)break w;if(r=-2147483648,(0|t)!=11008)break s;break t}if((0|A)==8472)return me=0,67108864;if((0|A)==8596)break q;if(r=-2147483648,A>>>0<=8591)break s;break t}if(r=-2147483640,(0|A)==8722)break t;t=-2147483648,me=(A=A-8942>>>0<4)?33554432:0;break i}if(r=-2147483648,s=130,A-9723>>>0<2)break t;t=-2147483648,me=(A=A-9725>>>0<2)?134:0;break i}if(r=-2147483648,s=128,(0|A)==9839)break t;break w}if(r=-2147483648,s=130,(-2&A)==10548)break t;t=-2147483648,me=(A=(0|A)==10626)?134217728:0;break i}if((0|t)==8192)break He;break s;case 27:d:{S:{G:{O:{D:{T:{X:{H:{Z:{ee:{ne:{le:{fe:{ge:{E:{ce:{J:{V:{ie:{ue:{Be:{ve:{Ue:{xe:{if((0|(t=-256&A))<=12287){if((0|t)<=9727){if((0|t)<=8959){if(!t)break xe;if((0|t)!=8448)break s;switch(r=0,s=130,A-8482|0){case 7:break k;case 0:break t;case 1:case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 10:case 11:break ue;case 12:break ve;default:break Ue}}if((0|t)==8960)break ie;if((0|t)==9216)break V;if((0|t)!=9472)break s;switch(r=-2147483520,(-2&A)-9632|0){case 0:break t;case 10:break q;default:break J}}if((0|t)<=11007){if((0|t)==9728)break ce;if((0|t)==9984)break E;if(r=-2147483648,(0|t)!=10240)break s;break t}if((0|t)==11008)break ge;if((0|t)==11776)break fe;if((0|t)!=12032)break s;if(r=1048576,A>>>0<12246)break t;switch(r=262144,(-2&A)-12272|0){case 0:break t;case 2:break d;default:break le}}if((0|t)<=127999){if((0|t)<=127231){if((0|t)==12288)break ne;if((0|t)==12800)break ee;if((0|t)!=126976)break s;t=(0|A)==127183,r=0,me=(A=(0|A)==126980)||t?134:128;break h}if((0|t)==127232)break Z;if((0|t)==127488)break H;if((0|t)!=127744)break s;if(A>>>0>=127777)break X;break R}if((0|t)<=128767){if((0|t)==128e3)break T;if((0|t)==128256)break D;if((0|t)!=128512)break s;if((t=A-128581|0)>>>0<11)break CA;break Ee}if((0|t)==128768)break O;if((0|t)==129280)break G;if((0|t)!=129536)break s;me=128;break c}t=(0|A)==174,r=-2147483648,me=(A=(0|A)==169)||t?130:0;break h}switch(A-8616|0){case 0:break w;case 1:case 2:break Be;default:break ue}}return me=0,67108864}return me=130,-2147483520}if(r=-2147483520,A-8597>>>0<5)break t;if(A-8604>>>0<18)break K;if((t=A-8624|0)>>>0<8)break xA;break Ve}if(A>>>0<8968)break w;if((0|(t=-2&A))==8986)break l;if(A-8972>>>0<20|A-8994>>>0<6)break w;if((0|A)==9e3)break q;if(A-9003>>>0<81)break w;if(r=-2147483648,s=128,(0|A)==9096)break t;if(A-9085>>>0<30)break w;if(r=-2147483520,s=0,(0|t)==9140)break t;ie:switch(A-9143|0){case 0:case 25:break t;case 24:break q;default:break ie}if(A-9140>>>0<40)break w;if((0|A)==9186)break t;if((t=A-9193|0)>>>0<4)break l;r=-2147483648,s=134;ie:switch(A-9200|0){case 0:case 3:break t;default:break ie}if(t>>>0<11)break q;if(s=130,A-9208>>>0<3)break t;if(s=0,A>>>0<=9186)break s;break t}if(r=-2147483648,A-9216>>>0<75||(r=33792,s=130,(0|A)==9410)||(s=0,A-9398>>>0<26))break t;if(r=17408,A-9424>>>0>=26)break s;break t}if(A-9646>>>0<8)break K;if(s=130,(0|A)==9654)break t;if((-4&A)==9660)break K;J:switch(A-9664|0){case 0:break t;case 6:case 7:case 10:case 11:case 15:case 16:case 17:case 18:case 19:case 34:case 36:break K;default:break J}return me=0,A-9703>>>0<6?-2147483520:-2147483648}ce:switch((-16&A)-9728>>>4|0){case 0:if(A>>>0<9733)break q;r=-2147483520,s=128;J:switch(A-9733|0){case 0:break t;case 9:break J;case 1:break K;default:break P}break q;case 2:if((t=A-9760|0)>>>0<11)break BA;if(r=-2147483648,s=130,A>>>0<=9773)break P;break t;case 3:if(r=-2147483648,s=130,A-9784>>>0>=3)break P;break t;case 4:r=-2147483520,s=130;J:switch(A-9792|0){case 0:case 2:break t;default:break J}if(r=-2147483648,s=134,A>>>0<=9799)break P;break t;case 5:if(r=-2147483648,s=134,A>>>0<9812)break t;if(s=130,(0|A)!=9823)break P;break t;case 6:if((0|A)==9734)break K;if((0|A)==9824)return me=130,-2147483520;if(r=-2147483520,s=128,A-9825>>>0<2)break t;if((t=A-9827|0)>>>0<6)break MA;break Me;case 8:if(r=-2147483648,A>>>0<=9861)break P;break t;case 10:r=-2147483648,s=130;J:switch(A-9888|0){case 1:break l;case 0:break t;default:break J}if(s=134,(-2&A)!=9898)break P;break t;case 11:if(r=-2147483648,s=130,(-2&A)==9904)break t;if(s=134,A-9917>>>0>=2)break P;break t;case 12:if((-2&A)==9924)break l;r=-2147483648,s=130;J:switch(A-9928|0){case 0:case 7:break t;case 6:break J;default:break P}break l;case 14:t=(0|A)==9962,r=-2147483648,me=(A=(0|A)==9961)?130:t?134:128;break h;case 13:break wA;case 9:break kA;case 15:break ce;case 7:break EA;case 1:break vA;default:break P}if((0|A)==9972|A>>>0<9970)break q;if(r=-2147483648,s=134,A>>>0<9974||(0|A)!=9974&&(s=130,A>>>0<9977))break t;if((A=A-9977|0)>>>0<5)break IA;break P}E:{ce:{J:{V:{ie:switch((-16&A)-9984>>>4|0){case 0:if(r=0,s=130,(0|A)==9986||(s=128,A>>>0<9989)||(s=134,(0|A)==9989))break E;s=150;ue:switch((-2&A)-9994|0){case 0:break E;case 2:break J;default:break ue}if(s=130,A-9992>>>0<6)break E;t=(0|A)==9999,r=0,s=(A=(0|A)==9998)?128:t?130:0;break E;case 1:if(r=0,s=128,A>>>0<10002)break E;if((A=A-10002|0)>>>0>11||(s=130,!(1<>>0<2)break E;s=(A=A-10069&-3)?0:536871046;break E;case 6:if((t=A-10082|0)>>>0<3)break ce;if(r=0,s=128,A>>>0<=10084)break V;break E;case 9:if(r=0,s=134,A-10133>>>0>=3)break V;break E;case 10:if(r=0,s=130,(0|A)!=10145)break V;break E;case 11:t=(0|A)==10175,r=0,s=(A=(0|A)==10160)||t?134:0;break E;case 3:break ie;default:break V}if(r=0,s=130,A-10035>>>0<2)break E}r=0,s=0;break E}s=146;break E}r=e[(A=83992+(t<<3)|0)>>2],s=e[A+4>>2]}return me=s,-2147483648|r}if(r=-2147483648,s=130,A-11013>>>0<3||(s=134,A-11035>>>0<2))break t;t=(0|A)==11093,r=-2147483648,me=(A=(0|A)==11088)||t?134:0;break h}if(A-11904>>>0>=26)break S;return me=0,1048576}if(A-12276>>>0>=8)break s;break t}if((A=A-12306|0)>>>0>14||(r=-2147483648,!(1<>>0<26||A-127312>>>0<26)return me=0,33792;if((t=A-127344|0)>>>0<=15&&(r=33792,s=130,1<>>0<26))break t;if((0|A)==127374)break R;if(r=0,s=134,A-127377>>>0<10)break t;if(s=102,A>>>0<=127461)break s;break t}r=0,s=134;H:{Z:switch(A-127489|0){case 0:case 25:break t;case 1:break z;case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:break H;default:break Z}switch(A-127535|0){case 0:break t;case 8:break z;default:break H}}if((-2&A)==127568|A-127538>>>0<9)break t;if(s=128,A>>>0<=127583)break s;break t}if((0|A)==127777)break z;if(A-127789>>>0<9|A-127799>>>0<70)break R;if((0|A)==127877)break Ae;if(A-127870>>>0<22)break R;if(A-127780>>>0<112)break z;r=0,s=130;X:switch(A-127894|0){case 44:case 45:case 46:case 49:break Ae;case 0:case 1:case 3:case 4:case 5:break t;default:break X}if(A-127904>>>0<42)break R;if(s=150,(0|A)==127946||(s=146,A-127947>>>0<2))break t;if(A-127951>>>0<5)break R;if(s=134,A-127968>>>0<17||(s=130,A-127902>>>0<83))break t;if((t=A-127987|0)>>>0<5)break bA;break Y}r=0,s=130;T:switch(A-128063|0){case 0:case 2:break t;default:break T}if((0|A)==128124|(-5&A)-128129>>>0<3|(0|A)==128110|A-128112>>>0<9||(-2&A)==128066|A-128102>>>0<4|A-128070>>>0<11)break Ae;T:switch(A-128253|0){case 1:me=128;break c;case 0:break z;default:break T}if(s=150,(0|A)==128170)break t;break R}if(A>>>0<128318)break R;if(r=0,A>>>0<128326)break t;if(A-128329>>>0<2)break z;if(A-128331>>>0<4|A-128336>>>0<24)break R;if(A-128367>>>0<2)break z;if((-2&A)==128372){me=146;break c}if(A-128371>>>0<7)break z;if(s=150,!(t=A-128378|0))break t;if((0|t)==13|A-128394>>>0<4)break z;if(s=146,(0|A)==128400||(s=150,A-128405>>>0<2))break t;s=134;D:switch(A-128420|0){case 0:break t;case 1:case 4:case 13:case 14:case 24:case 30:case 31:case 32:case 45:case 46:case 47:case 56:case 57:case 58:case 61:case 63:case 68:case 75:case 79:case 86:break z;default:break D}A=A>>>0>128506,t=0;break p}if(r=0,s=128,A-128981>>>0>=4)break s;break t}if(A>>>0<129292)break s;if(A-129328>>>0<10)break Ae;r=0,s=150;G:switch(A-129304|0){case 35:break s;case 0:case 1:case 2:case 3:case 4:case 6:case 7:case 14:break t;default:break G}if(A-129341>>>0<2)break Ae;if(s=0,(0|A)==129350||(s=198,(-4&A)==129456))break t;if((t=A-129461|0)>>>0<5)break hA;break mA}if(r=1048576,A-11931>>>0<89)break t;break s}return me=0,524288;case 29:return me=16777216,1073741825;case 28:break t;case 30:break HA;default:break s}return me=0,(0|A)==32?1073741825:1}if(!(1079>>>t&1))break pe;t=e[(A=81344+(t<<3)|0)>>2];break m}if(557553>>>t&1)break k;if((-4&A)!=8508)break Oe;break t}if(!(207>>>t&1))break Ie;break f}if(r=1024,!(1017>>>t&1))break we;break t}if(r=1024,!(32895>>>t&1))break Ne;break t}if(r=1024,!(55>>>t&1))break Le;break t}if(r=1024,!(3087>>>t&1))break Re;break t}if((A=A-71453|0)>>>0>=15)break s;t=e[(A=82312+(A<<3)|0)>>2];break m}if(!(49023>>>t&1))break je;t=e[(A=82432+(t<<3)|0)>>2];break m}if(!(514623>>>t&1))break $;t=e[(A=82664+(t<<3)|0)>>2];break m}t=e[(A=83160+(t<<3)|0)>>2];break m}if(r=268435520,!(197>>>t&1))break We;break t}t=e[(A=83208+(t<<3)|0)>>2];break m}if((A=A-6145|0)>>>0>=10)break s;t=e[(A=83296+(A<<3)|0)>>2];break m}if(!(1077711>>>t&1))break ae;t=e[(A=83376+(t<<3)|0)>>2];break m}if(!(159>>>t&1))break ke;t=e[(A=83544+(t<<3)|0)>>2];break m}if((A=A-121479|0)>>>0>=4)break s;t=e[(A=83608+(A<<3)|0)>>2];break m}if(!(195>>>t&1))break Ve;break K}if((A=A-9745|0)>>>0>=13)break P;t=e[(A=83640+(A<<3)|0)>>2];break m}if(1101>>>t&1)break q;if(r=-2147483648,s=130,A>>>0<=9773)break P;break t}if(!(45>>>t&1))break Me;t=e[(A=83744+(t<<3)|0)>>2];break m}if((A=A-9851|0)>>>0>=5)break P;t=e[(A=83792+(A<<3)|0)>>2];break m}if((A=A-9874|0)>>>0>=11)break P;t=e[(A=83832+(A<<3)|0)>>2];break m}if((A=A-9937|0)>>>0>=4)break P;t=e[(A=83920+(A<<3)|0)>>2];break m}t=e[(A=83952+(A<<3)|0)>>2];break m}if(!(23>>>t&1))break Y;t=e[(A=84016+(t<<3)|0)>>2];break m}if(r=0,s=150,!(1991>>>t&1))break Ee;break t}if(s=150,27>>>t&1)break t}t=0,me=(A=A-129489>>>0<13)?150:134;break i}A=A-127992>>>0<3,t=0;break p}if(A-9837>>>0<2)break t}me=128;break u}if(A-8623>>>0<13)break w;if(A-8636>>>0<18)break K;if((t=A-8656|0)>>>0<22&&(s=0,3157995>>>t&1)||(r=-2147483648,s=0,A-8661>>>0<31))break t;break s}if(A>>>0<128592)break R;if(r=0,s=0,A>>>0<128640)break t;if(!((t=A-128675|0)>>>0>29|!(1<>>0<128710)break R;if(s=150,(0|A)==128716)break t;if(A-128715>>>0<5)break z;if(A-128720>>>0<3)break R;if(!((t=A-128736|0)>>>0>=10|!(575>>>t&1)))break z;if(s=134,A-128747>>>0<2)break t;s=130;Ee:switch(A-128752|0){case 0:case 3:break t;default:break Ee}A=A-128756>>>0<6,t=0;break p}r=-2147483648;He:switch(A-8260|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:break s;case 0:case 14:break t;default:break He}if((0|(A=A-8315|0))!=16&&A)break s;return me=0,8}if(r=268435520,s=1073741824,(0|A)!=69955)break s;break t}if(A-8266>>>0<8)break w;if(r=-2147483640,(0|A)==8275)break t;if(r=-2147483648,A-8277>>>0>=10)break s;break t}me=542113792;break u}if(r=-2147483648,s=0,A-65093>>>0<2||(r=64,s=268435456,(0|l)==65104))break t;r=268435520,s=-2147483648;ke:switch(A-65106|0){case 3:me=134217728;break A;case 5:me=536870912;break a;case 4:break o;case 2:break r;case 0:break t;case 15:case 22:break ke;default:break s}break k}if((0|A)==2142)break oe;if(r=64,A-2096>>>0<15)break t;break s}if(r=1024,A-72850>>>0<22)break t;if((A=A-72874|0)>>>0>=13)break s;t=e[(A=82560+(A<<3)|0)>>2];break m}if(r=4096,A-71103>>>0<2)break t;if(r=1024,(-2&A)!=71132)break s;break t}if((0|A)==70726)break g;if(r=4096,(-2&A)!=70850)break s;break t}if(r=4096,A-68325>>>0>=2)break s;break t}if((0|A)==6109)break g;if(r=4096,A-6089>>>0>=11)break s;break t}ze:switch(A-3959|0){case 0:case 2:return me=0,8389632;default:break ze}if((0|t)==3968|A-3953>>>0<14)break f;if(!((t=A-3970|0)>>>0>=6|!(55>>>t&1)))break g;if(A-3981>>>0<11)break f;if(r=1024,A-3993>>>0<36)break t;if(r=4096,(0|A)!=4038)break s;break t}if(A-3655>>>0<6)break g;if(!((t=A-3761|0)>>>0>11|!(1<>>0<5)break t;if(r=1024,(0|A)!=3789)break s;break t}if(A-1770>>>0<3)break t;if(r=1024,(0|A)!=1773)break s;break t}if((-2&A)==73028)break g;r=1024;$:switch(A-73104|0){default:if((0|A)!=73031)break s;break t;case 2:case 3:case 4:case 6:break s;case 0:case 1:case 5:break t;case 7:break $}break g}if((A=A-8492|0)>>>0>=30)break s;t=e[(A=81704+(A<<3)|0)>>2];break m}r=0;break N}s=(t=(-3&A)==43712)>>>20|0,r=t<<12}if((0|(o=-65536&A))==131072)break rA;if((0|o)==65536)break be;if(t=r,l=s,o)break me}if(A-13312>>>0<6582||A-19968>>>0<20976)break e;if(o=2048,A-63744>>>0<366)return me=l,2048|t;if(r=t,s=l,A-64112>>>0>=106)break me;break W}if(o=2099200,A-183984>>>0<7473|A-178208>>>0<5762|A-177984>>>0<222|A-131072>>>0<42711||A-173824>>>0<4149||(o=2048,A-194560>>>0<542))break W;break me}if(o=2048,A-110960>>>0<396|A-94208>>>0<6125|A-100352>>>0<755)break W}o=0}return me=s,r|o}if((-4&A)==8508)break k;if(r=128,!(A-8517>>>0<3)&&(r=16777344,(-2&A)!=8520))break s}me=s;break h}t=(A=A>>>0>131069)?65536:0,me=A?0:128;break i}if((0|A)==11776)break w}me=0;break c}me=0;break u}return me=0,4194304}return me=0,128}return me=0,16777344}return me=0,4096}return me=0,1024}return me=0,-2147483520}return me=0,A-10214>>>0<10?-2147483520:-2147483648}me=0;break a}me=0;break A}me=130;break c}me=130;break u}me=134;break c}return me=150,0}me=0;break i}me=A?0:s;break i}return me=t,A}return 131072}return me=0,16777216}me=A?0:r;break i}return me=s,A}return me=r,A}me=A?0:t;break h}return me=0,8192}me=e[A+4>>2];break i}me=A?8388608:0;break i}return r}return me=0,-2147483616}me=A?134:128}return t}me=134}return-2147483648}return 0}me=1073741824;break a}me=-2147483648}return 268435520}me=67108864}return 64}return me=l,2099200|t}function kA(A){var t,r=0,s=0,o=0,l=0,c=0;(t=it(8244))&&(e[t+328>>2]=2,d[132848]=0,e[t+684>>2]=0,e[t+688>>2]=0,e[t+320>>2]=0,e[t+324>>2]=0,d[t+268|0]=0,d[t+228|0]=0,e[t+8216>>2]=0,e[t+8220>>2]=0,e[t+224>>2]=104944,e[t+216>>2]=383,e[t+220>>2]=96,eA(t+344|0,0,292),e[t+8196>>2]=0,e[(r=t+8188|0)>>2]=0,e[r+4>>2]=0,e[t+8180>>2]=0,e[t+8184>>2]=0,d[t+460|0]=22,d[t+461|0]=129,d[t+466|0]=38,d[t+462|0]=38,d[t+463|0]=36,d[t+464|0]=22,d[t+465|0]=224,d[t+456|0]=22,d[t+457|0]=22,d[t+458|0]=44,d[t+459|0]=22,d[t+454|0]=46,d[t+455|0]=129,d[t+446|0]=22,d[t+447|0]=38,d[t+448|0]=28,d[t+449|0]=193,d[t+450|0]=38,d[t+451|0]=22,d[t+452|0]=46,d[t+453|0]=46,d[t+441|0]=129,d[t+442|0]=38,d[t+443|0]=22,d[t+444|0]=38,d[t+445|0]=193,e[t+332>>2]=104912,e[t+336>>2]=104916,e[t+340>>2]=105232,d[t+296|0]=18,d[t+297|0]=18,k[t+304>>1]=182,k[t+306>>1]=140,d[t+298|0]=20,k[t+308>>1]=220,k[t+310>>1]=220,k[t+312>>1]=220,d[t+299|0]=20,d[t+300|0]=20,k[t+314>>1]=240,d[t+301|0]=22,k[t+316>>1]=260,k[t+318>>1]=280,d[t+302|0]=22,d[t+303|0]=20,r=eA(t,0,212),e[r+200>>2]=20,e[r+192>>2]=25966,e[r+196>>2]=500,e[r+80>>2]=95,e[r+16>>2]=1,e[r+20>>2]=3,e[r+8>>2]=2,e[r+52>>2]=19,d[r+168|0]=3,e[r+92>>2]=2,e[r+72>>2]=4,e[r+40>>2]=115,e[r+44>>2]=95,e[r+140>>2]=105244,NA(r,201),e[r+120>>2]=2,e[r+124>>2]=44,e[r+164>>2]=100,e[r+128>>2]=46,e[r+132>>2]=14,e[r+112>>2]=1227133512,e[r+116>>2]=49,e[r+104>>2]=1,s=e[26313],e[r+636>>2]=e[26312],e[r+640>>2]=s,s=e[26315],e[r+644>>2]=e[26314],e[r+648>>2]=s,s=e[26317],e[r+652>>2]=e[26316],e[r+656>>2]=s,s=e[26319],e[r+660>>2]=e[26318],e[r+664>>2]=s,s=e[26321],e[r+668>>2]=e[26320],e[r+672>>2]=s,s=e[26323],e[r+676>>2]=e[26322],e[r+680>>2]=s,s=u[104928]|u[104929]<<8,d[r+160|0]=s,d[r+161|0]=s>>>8,s=u[104924]|u[104925]<<8|u[104926]<<16|u[104927]<<24,d[r+156|0]=s,d[r+157|0]=s>>>8,d[r+158|0]=s>>>16,d[r+159|0]=s>>>24),o=DA(t+228|0,A),r=0;e:{A:if(s=u[0|A]){for(;r=(s<<24>>24)+(r<<8)|0,s=u[0|(A=A+1|0)];);r:{a:{n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{v:{I:{x:{L:{_:{U:{y:{M:{Q:{F:{Ae:{R:{q:{z:{oe:{j:{Fe:{K:{f:{g:{re:{k:{se:{w:{s:{tA:{te:{t:{pe:{W:{me:{be:{rA:{de:{N:{Se:{B:{Oe:{$:{Ie:{we:{ze:{Ne:{Le:{_e:{Re:{je:{We:{ke:{sA:{ae:{Ye:{He:{Ee:{Ve:{P:{Me:{if((0|r)<=28008){if((0|r)<=26464){if((0|r)<=25696){Y:switch(r-24934|0){case 20:break i;case 1:case 2:case 3:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 18:case 19:break A;case 8:break $;case 12:break We;case 7:break ke;case 0:break sA;case 13:break Me;default:break Y}Y:switch(r-25189|0){case 1:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 11:case 12:case 13:break A;case 14:break pe;case 2:break Re;case 0:break je;case 9:break Me;default:break Y}switch(r-25441|0){case 18:break x;case 0:break $;case 24:break Le;default:break A}}Y:switch(r-25964|0){case 1:case 4:case 5:case 6:break A;case 8:break Se;case 9:break Oe;case 7:break $;case 3:break Ie;case 2:break we;case 0:break Ve;default:break Y}Y:switch(r-26209|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:break A;case 17:break de;case 8:break N;case 0:break B;default:break Y}switch(r-25697|0){case 4:break ze;case 0:break Ne;default:break A}}if((0|r)<=27488){Y:switch(r-26729|0){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 13:case 14:case 15:break A;case 16:break tA;case 12:break te;case 11:break t;case 9:break pe;case 0:break W;default:break Y}Y:switch(r-26977|0){case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 15:case 16:case 17:break A;case 19:break k;case 18:break se;case 3:break w;case 14:break s;case 0:break $;default:break Y}switch(r-26465|0){case 20:break W;case 13:break me;case 0:case 3:break be;default:break A}}Y:switch(r-27489|0){case 13:break p;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 12:case 15:case 16:case 17:case 18:case 19:case 21:case 22:case 23:break A;case 24:break oe;case 20:break j;case 14:break Fe;case 11:break K;case 10:break f;case 0:break g;default:break Y}switch(r-27745|0){case 19:break q;case 0:break z;case 21:break He;default:break A}}if((0|r)<=29792){if((0|r)<=28768){Y:switch(r-28009|0){case 3:break p;case 11:break Ae;case 2:break R;case 1:case 4:case 5:case 6:case 7:case 8:case 12:case 13:case 14:case 15:break A;case 10:break w;case 9:break W;case 0:case 16:break ae;default:break Y}Y:switch(r-28258|0){case 0:break Q;case 10:break F;case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 9:break A;case 3:break W;default:break Y}switch(r-28525|0){case 0:break M;case 5:break W;default:break A}}if((0|r)<=29539){Y:switch(r-28769|0){case 19:break U;case 11:break y;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 20:case 21:case 22:case 23:break A;case 0:break W;case 24:break ae;default:break Y}Y:switch(r-29295|0){case 6:break L;case 0:break _;case 1:case 2:case 3:case 4:case 5:break A;default:break Y}if((0|r)==29045)break ae;break A}switch(r-29540|0){case 19:break C;case 18:break h;case 13:break b;case 8:break v;case 5:break I;case 7:break x;case 14:break pe;case 0:break c;default:break A}}if((0|r)>6514801)break P;if((0|r)<=30058)switch(r-29793|0){case 19:break l;case 17:break i;case 0:case 4:break p;case 13:break C;case 7:break ae;default:break A}if((0|r)<=30312)switch(r-30059|0){case 0:break u;case 15:break ae;case 7:break c;default:break A}if((0|r)==30313)break o;if((0|r)==31336)break n;if((0|r)!=6451321)break A}if(e[t+296>>2]=303174162,e[t+300>>2]=370545684,e[t+600>>2]=2432,e[t+8>>2]=0,e[t+12>>2]=65540,e[t+100>>2]=e[t+96>>2],A=e[25889],e[t+304>>2]=e[25888],e[t+308>>2]=A,A=e[25891],e[t+312>>2]=e[25890],e[t+316>>2]=A,bs(t),d[t+345|0]=2|u[t+345|0],d[t+406|0]=16|u[t+406|0],d[t+407|0]=16|u[t+407|0],d[t+408|0]=16|u[t+408|0],d[t+409|0]=16|u[t+409|0],d[t+410|0]=16|u[t+410|0],d[t+411|0]=16|u[t+411|0],d[t+412|0]=16|u[t+412|0],d[t+413|0]=16|u[t+413|0],d[t+414|0]=16|u[t+414|0],d[t+415|0]=16|u[t+415|0],d[t+416|0]=16|u[t+416|0],d[t+417|0]=16|u[t+417|0],d[t+418|0]=16|u[t+418|0],d[t+419|0]=16|u[t+419|0],d[t+420|0]=16|u[t+420|0],d[t+456|0]=4|u[t+456|0],d[t+457|0]=4|u[t+457|0],e[t+112>>2]=613567144,e[t+104>>2]=16,(0|r)!=6451321)break e;e[t+104>>2]=1,e[t+108>>2]=512,r=6451321;break e}if((0|r)>7364975)break Ye;if((0|r)>6840682)break Ee;if((0|r)==6514802)break _e;if((0|r)==6516078)break n;if((0|r)!=6779491)break A}if(e[t+600>>2]=896,e[t+328>>2]=8,e[t+296>>2]=336858127,e[t+300>>2]=353768980,e[t+332>>2]=103632,A=e[25905],e[t+304>>2]=e[25904],e[t+308>>2]=A,A=e[25907],e[t+312>>2]=e[25906],e[t+316>>2]=A,eA(t+344|0,0,256),d[t+388|0]=129,d[t+389|0]=129,d[t+390|0]=129,d[t+391|0]=129,d[t+420|0]=129,d[t+421|0]=129,d[t+422|0]=129,d[t+423|0]=129,d[t+360|0]=129,d[t+392|0]=129,d[t+393|0]=129,d[t+417|0]=129,d[t+418|0]=129,d[t+419|0]=129,d[t+420|0]=129,d[t+408|0]=6,d[t+409|0]=4,d[t+410|0]=6,d[t+411|0]=6,d[t+412|0]=6,d[t+413|0]=193,d[t+414|0]=6,d[t+415|0]=6,d[t+406|0]=6,d[t+407|0]=129,d[t+398|0]=4,d[t+399|0]=193,d[t+400|0]=6,d[t+401|0]=193,d[t+402|0]=6,d[t+403|0]=4,d[t+404|0]=4,d[t+405|0]=4,d[t+394|0]=4,d[t+395|0]=4,d[t+396|0]=4,d[t+397|0]=193,e[t+44>>2]=130,e[t+8>>2]=2,e[t+12>>2]=6,e[t+16>>2]=0,e[t+20>>2]=2,e[t+104>>2]=264,e[t+108>>2]=6146,d[t+391|0]=193,d[t+389|0]=193,d[t+390|0]=193,d[t+421|0]=193,e[t+100>>2]=e[t+96>>2],d[t+416|0]=4|u[t+416|0],(0|r)!=6779491)break e;e[t+40>>2]=1,r=6779491;break e}if((0|r)==6840683)break rA;if((0|r)==6972015)break re;if((0|r)!=7107687)break A}e[t+296>>2]=134875662,e[t+300>>2]=252968960,e[t+328>>2]=5,d[t+169|0]=1,e[t+132>>2]=33,e[t+104>>2]=99336,e[t+8>>2]=0,e[t+12>>2]=262182,A=e[26069],e[t+304>>2]=e[26068],e[t+308>>2]=A,A=e[26071],e[t+312>>2]=e[26070],e[t+316>>2]=A;break e}if((0|r)<=7564649){if((0|r)==7364976)break $;if((0|r)==7435619)break ae;if((0|r)!=7563374)break A;e[t+148>>2]=1,e[t+112>>2]=24,e[t+104>>2]=1,e[t+100>>2]=e[t+96>>2],r=7563374;break e}if((0|r)==7564650)break m;if((0|r)==7959909)break n;if((0|r)!=1885958500)break A}e[t+104>>2]=0;break e}e[t+4>>2]=48,e[t+8>>2]=0,e[t+144>>2]=1,e[t+104>>2]=16779472,e[t+32>>2]=1,e[t+24>>2]=1,A=e[25881],e[t+304>>2]=e[25880],e[t+308>>2]=A,A=e[25883],e[t+312>>2]=e[25882],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=24934;break e}e[t+600>>2]=4608,e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+8>>2]=0,e[t+12>>2]=36,e[t+104>>2]=1024,e[t+100>>2]=e[t+96>>2],e[t+40>>2]=1,A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,r=24941;break e}for(e[t+600>>2]=1536,e[t+224>>2]=0,e[t+216>>2]=1631,e[t+220>>2]=1536,e[t+104>>2]=2884720,e[t+328>>2]=7,e[t+40>>2]=1,H=r=H-16|0,e[r+12>>2]=-1,A=89684;o=zA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=1|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=89743;o=zA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=2|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=89795;o=zA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=4|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=89941;o=zA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=16|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=90045;o=zA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=32|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=90045;o=zA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=8|u[0|l]),A=A+o|0,s;);for(e[r+12>>2]=-1,A=90045;o=zA(r+12|0,A),(0|(s=e[r+12>>2]))>=33&&(d[0|(l=(t+s|0)-1192|0)]=64|u[0|l]),A=A+o|0,s;);H=r+16|0,r=24946;break e}e[t+600>>2]=1056,e[t+12>>2]=34,e[t+216>>2]=1118,e[t+220>>2]=1072,eA(t+344|0,0,256),d[t+406|0]=4,d[t+366|0]=4,d[t+367|0]=4,d[t+369|0]=4,d[t+370|0]=4,d[t+371|0]=4,d[t+372|0]=4,d[t+361|0]=4,d[t+362|0]=4,d[t+363|0]=4,d[t+364|0]=4,d[t+373|0]=4,d[t+380|0]=4,d[t+381|0]=4,d[t+382|0]=4,d[t+383|0]=4,d[t+375|0]=4,d[t+376|0]=4,d[t+377|0]=4,d[t+378|0]=4,d[t+384|0]=4,d[t+360|0]=129,e[t+328>>2]=6,e[t+296>>2]=134744588,e[t+300>>2]=286261248,e[t+40>>2]=1,e[t+8>>2]=0,e[t+104>>2]=1032,e[t+108>>2]=66,A=e[25885],e[t+304>>2]=e[25884],e[t+308>>2]=A,A=e[25887],e[t+312>>2]=e[25886],e[t+316>>2]=A,r=25189;break e}iA(t),e[t+328>>2]=6,e[t+56>>2]=2,e[t+36>>2]=263,e[t+40>>2]=1074,e[t+124>>2]=32,e[t+104>>2]=184554728,e[t+8>>2]=2,d[t+386|0]=64&u[t+386|0]|129,r=25191;break e}e[t+12>>2]=262182,e[t+40>>2]=1,r=6514802;break e}e[t+328>>2]=14,e[t+296>>2]=303173393,e[t+300>>2]=336986112,e[t+104>>2]=1024,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=22,e[t+44>>2]=120,A=e[25893],e[t+304>>2]=e[25892],e[t+308>>2]=A,A=e[25895],e[t+312>>2]=e[25894],e[t+316>>2]=A,d[t+463|0]=64&u[t+463|0]|129,d[t+465|0]=64&u[t+465|0]|129,r=25465;break e}e[t+8>>2]=0,e[t+104>>2]=184618072,e[t+32>>2]=1,A=e[26101],e[t+304>>2]=e[26100],e[t+308>>2]=A,A=e[26103],e[t+312>>2]=e[26102],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=25697;break e}e[t+296>>2]=336860180,e[t+300>>2]=336991764,e[t+8>>2]=0,e[t+104>>2]=16846872,e[t>>2]=8,e[t+4>>2]=48,e[t+80>>2]=87,e[t+32>>2]=1,e[t+36>>2]=256,e[t+40>>2]=2,A=e[25897],e[t+304>>2]=e[25896],e[t+308>>2]=A,A=e[25899],e[t+312>>2]=e[25898],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=25701;break e}e[t+132>>2]=33,e[t+104>>2]=16779328,e[t+8>>2]=0,e[t+12>>2]=8,e[t+204>>2]=101,e[t+60>>2]=2,e[t+40>>2]=2,A=e[25901],e[t+304>>2]=e[25900],e[t+308>>2]=A,A=e[25903],e[t+312>>2]=e[25902],e[t+316>>2]=A,d[t+441|0]=64|u[t+441|0],d[t+445|0]=64|u[t+445|0],d[t+449|0]=64|u[t+449|0],d[t+455|0]=64|u[t+455|0],d[t+461|0]=64|u[t+461|0],d[t+465|0]=64|u[t+465|0],r=25966;break e}e[t+328>>2]=4,e[t+296>>2]=336858640,e[t+300>>2]=353768980,e[t+104>>2]=16782344,e[t+20>>2]=2,e[t+12>>2]=22,e[t+4>>2]=2,e[t+8>>2]=2,e[t+332>>2]=103640,A=e[25997],e[t+304>>2]=e[25996],e[t+308>>2]=A,A=e[25999],e[t+312>>2]=e[25998],e[t+316>>2]=A,r=25967;break e}e[t+296>>2]=269422096,e[t+300>>2]=370545684,e[t+104>>2]=86017320,e[t+108>>2]=6144,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=534,e[t+100>>2]=e[t+96>>2],e[t+44>>2]=120,A=e[25913],e[t+304>>2]=e[25912],e[t+308>>2]=A,A=e[25915],e[t+312>>2]=e[25914],e[t+316>>2]=A;$:{Ie:{if((0|r)<=26976){if((0|r)==24942)break Ie;if((0|r)!=25441)break $;e[t+12>>2]=566,e[t+336>>2]=103664,r=25441;break e}if((0|r)!=26977){if((0|r)!=7364976)break $;e[t+8>>2]=3,e[t+12>>2]=310,r=7364976;break e}e[t+104>>2]=85984264,r=26977;break e}e[t+104>>2]=153093416,e[t+108>>2]=2048,e[t+140>>2]=103676,r=24942;break e}e[t+40>>2]=2;break e}e[t+296>>2]=303173648,e[t+300>>2]=303174162,e[t+104>>2]=3147080,e[t+12>>2]=65792,e[t+84>>2]=1,A=e[25921],e[t+304>>2]=e[25920],e[t+308>>2]=A,A=e[25923],e[t+312>>2]=e[25922],e[t+316>>2]=A,r=25973;break e}e[t+600>>2]=1536,e[t+216>>2]=1740,e[t+220>>2]=1568,e[t+104>>2]=96,e[t+224>>2]=103696,e[t+340>>2]=103872,e[t+40>>2]=1,r=26209;break e}e[t+328>>2]=5}e[t+104>>2]=86024,e[t+164>>2]=130,d[t+465|0]=64&u[t+465|0]|129;break e}e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+8>>2]=3,e[t+12>>2]=36,e[t+144>>2]=2,e[t+104>>2]=118658312,e[t+28>>2]=1,e[t+100>>2]=e[t+96>>2],A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=26226;break e}k[t+170>>1]=257,e[t+148>>2]=1,e[t+12>>2]=2,r=6840683;break e}e[t+144>>2]=2,e[t+104>>2]=2098176,e[t+8>>2]=0,e[t+12>>2]=32,e[t+40>>2]=3,e[t+28>>2]=1;break e}e[t+8>>2]=3,e[t+100>>2]=e[t+96>>2],r=26478;break e}e[t+328>>2]=18,e[t+296>>2]=320081425,e[t+300>>2]=353768980,e[t+600>>2]=2304,e[t+112>>2]=84648,e[t+104>>2]=16,e[t+8>>2]=6,e[t+12>>2]=65540,e[t+100>>2]=e[t+96>>2],A=e[25973],e[t+304>>2]=e[25972],e[t+308>>2]=A,A=e[25975],e[t+312>>2]=e[25974],e[t+316>>2]=A;W:{me:{be:{if((0|r)<=28529){if((0|r)==26485)break be;if((0|r)!=28261)break W;A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+132>>2]=22,e[t+112>>2]=-1431655768,e[t+108>>2]=32768|e[t+108>>2],bs(t);break e}if((0|r)==28530)break me;if((0|r)!=28769)break W;e[t+600>>2]=2560,bs(t);break e}A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,e[t+600>>2]=2688,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+8>>2]=2,bs(t);break e}e[t+600>>2]=2816}bs(t);break e}d[0|o]=104,d[o+1|0]=98,d[o+2|0]=115,d[o+3|0]=0,(0|r)!=29554?(A=e[26093],e[t+304>>2]=e[26092],e[t+308>>2]=A,A=e[26095],e[t+312>>2]=e[26094],e[t+316>>2]=A):(A=e[25977],e[t+304>>2]=e[25976],e[t+308>>2]=A,A=e[25979],e[t+312>>2]=e[25978],e[t+316>>2]=A),e[t+328>>2]=3,e[t+296>>2]=336859409,e[t+300>>2]=353768980,k[t+168>>1]=261,e[t+8>>2]=0,e[t+12>>2]=16,e[t+144>>2]=1,e[t+184>>2]=1056,e[t+104>>2]=33572172,e[t+108>>2]=330,e[t+36>>2]=3,d[t+465|0]=64&u[t+465|0]|129,d[t+458|0]=64&u[t+458|0]|129;break e}e[t+104>>2]=17990912,e[t+8>>2]=3,e[t+12>>2]=36,r=26740;break e}e[t+328>>2]=3,e[t+296>>2]=320016657,e[t+300>>2]=353768980,e[t+124>>2]=32,e[t+128>>2]=44,e[t+104>>2]=186758144,e[t+12>>2]=1081398,e[t+16>>2]=2,e[t+4>>2]=32,e[t+8>>2]=0,e[t+116>>2]=899,e[t+120>>2]=1,d[t+169|0]=1,e[t+76>>2]=2,A=e[25981],e[t+304>>2]=e[25980],e[t+308>>2]=A,A=e[25983],e[t+312>>2]=e[25982],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,NA(t,3),r=26741;break e}for(e[t+600>>2]=1328,e[t+8>>2]=3,A=e[25985],e[t+304>>2]=e[25984],e[t+308>>2]=A,A=e[25987],e[t+312>>2]=e[25986],e[t+316>>2]=A,o=eA(t+344|0,0,256),d[t+429|0]=129,d[t+416|0]=129,d[t+403|0]=129,d[t+399|0]=129,d[t+400|0]=129,d[t+397|0]=129,d[t+393|0]=129,s=103952,l=50,c=50;d[0|(A=o+c|0)]=2|u[0|A],A=o+u[s+1|0]|0,d[0|A]=2|u[0|A],A=o+u[s+2|0]|0,d[0|A]=2|u[0|A],c=u[0|(s=s+3|0)],A=103952,(0|s)!=103982;);for(s=t+344|0;d[0|(o=s+l|0)]=4|u[0|o],o=s+u[A+1|0]|0,d[0|o]=4|u[0|o],o=s+u[A+2|0]|0,d[0|o]=4|u[0|o],l=u[0|(A=A+3|0)],(0|A)!=103982;);d[t+168|0]=6,e[t+104>>2]=5128,d[t+413|0]=4|u[t+413|0];break e}e[t+328>>2]=4,e[t+296>>2]=336858640,e[t+300>>2]=353768980,e[t+104>>2]=16782440,e[t+20>>2]=2,e[t+12>>2]=22,e[t+4>>2]=2,e[t+8>>2]=2,e[t+332>>2]=104e3,A=e[25997],e[t+304>>2]=e[25996],e[t+308>>2]=A,A=e[25999],e[t+312>>2]=e[25998],e[t+316>>2]=A,r=26991;break e}e[t+296>>2]=303174160,e[t+300>>2]=353768980,e[t+104>>2]=16781320,e[t+144>>2]=2,e[t+8>>2]=2,e[t+12>>2]=22,A=e[26005],e[t+304>>2]=e[26004],e[t+308>>2]=A,A=e[26007],e[t+312>>2]=e[26006],e[t+316>>2]=A;break e}for(e[t+8>>2]=0,e[t+12>>2]=16,e[t+56>>2]=2,e[t+28>>2]=17,A=e[26009],e[t+304>>2]=e[26008],e[t+308>>2]=A,A=e[26011],e[t+312>>2]=e[26010],e[t+316>>2]=A,A=0,s=t+344|0;d[0|(o=A+s|0)]=231&u[0|o],d[0|(o=s+(1|A)|0)]=231&u[0|o],d[0|(o=s+(2|A)|0)]=231&u[0|o],d[0|(o=s+(3|A)|0)]=231&u[0|o],(0|(A=A+4|0))!=256;);e[t+104>>2]=2280,e[t+108>>2]=2,e[t+608>>2]=104048,d[t+451|0]=16|u[t+451|0],d[t+456|0]=16|u[t+456|0],d[t+459|0]=16|u[t+459|0],d[t+460|0]=16|u[t+460|0],d[t+450|0]=8|u[t+450|0],d[t+462|0]=8|u[t+462|0],d[t+458|0]=8|u[t+458|0],d[t+465|0]=64&u[t+465|0]|129;break e}e[t+296>>2]=269618961,e[t+300>>2]=370546196,e[t+12>>2]=131110,e[t+144>>2]=2,e[t+104>>2]=184559112,e[t+108>>2]=8192,e[t+16>>2]=0,e[t+20>>2]=2,e[t+4>>2]=1,e[t+8>>2]=2,e[t+100>>2]=e[t+96>>2],e[t+140>>2]=103676,e[t+68>>2]=2,e[t+56>>2]=1,e[t+44>>2]=130,e[t+28>>2]=2,A=e[26025],e[t+304>>2]=e[26024],e[t+308>>2]=A,A=e[26027],e[t+312>>2]=e[26026],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=26996;break e}e[t+4>>2]=524,e[t+8>>2]=2,e[t+196>>2]=368,e[t+104>>2]=0,e[t+336>>2]=104128,e[t- -64>>2]=1,A=e[26029],e[t+304>>2]=e[26028],e[t+308>>2]=A,A=e[26031],e[t+312>>2]=e[26030],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=6972015;break e}for(e[t+296>>2]=303174162,e[t+300>>2]=370545684,A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,o=eA(t+344|0,0,256),d[t+431|0]=1,d[t+429|0]=1,d[t+411|0]=1,d[t+405|0]=1,d[t+400|0]=1,d[t+396|0]=1,d[t+392|0]=1,A=104160,s=49;d[0|(s=s+o|0)]=4|u[0|s],s=o+u[A+1|0]|0,d[0|s]=4|u[0|s],s=o+u[A+2|0]|0,d[0|s]=4|u[0|s],s=u[0|(A=A+3|0)],(0|A)!=104193;);e[t+600>>2]=4256,e[t+8>>2]=0,e[t+12>>2]=16,d[t+168|0]=7,e[t+132>>2]=32,d[t+392|0]=128|u[t+392|0],d[t+396|0]=128|u[t+396|0],d[t+400|0]=128|u[t+400|0],d[t+405|0]=128|u[t+405|0],d[t+411|0]=128|u[t+411|0],d[t+429|0]=128|u[t+429|0],d[t+431|0]=128|u[t+431|0],e[t+188>>2]=1056,e[t+192>>2]=29301,e[t+104>>2]=19964960;break e}for(e[t+600>>2]=1056,o=eA(t+344|0,0,256),d[t+393|0]=1,d[t+365|0]=1,d[t+360|0]=1,d[t+545|0]=1,d[t+529|0]=1,d[t+391|0]=1,d[t+389|0]=1,d[t+390|0]=1,d[t+387|0]=1,d[t+379|0]=1,d[t+374|0]=1,d[t+368|0]=1,d[t+489|0]=1,d[t+487|0]=1,d[t+398|0]=1,A=104224,s=17;d[0|(s=s+o|0)]=4|u[0|s],s=o+u[A+1|0]|0,d[0|s]=4|u[0|s],s=o+u[A+2|0]|0,d[0|s]=4|u[0|s],s=u[0|(A=A+3|0)],(0|A)!=104251;);d[t+360|0]=128|u[t+360|0],d[t+365|0]=128|u[t+365|0],d[t+393|0]=128|u[t+393|0],d[t+368|0]=128|u[t+368|0],d[t+374|0]=128|u[t+374|0],d[t+379|0]=128|u[t+379|0],d[t+387|0]=128|u[t+387|0],d[t+389|0]=128|u[t+389|0],d[t+390|0]=128|u[t+390|0],d[t+391|0]=128|u[t+391|0],d[t+529|0]=128|u[t+529|0],d[t+545|0]=128|u[t+545|0],d[t+489|0]=128|u[t+489|0],d[t+487|0]=128|u[t+487|0],d[t+398|0]=128|u[t+398|0],A=e[26055],e[t+312>>2]=e[26054],e[t+316>>2]=A,A=e[26053],e[t+304>>2]=e[26052],e[t+308>>2]=A,e[t+296>>2]=353636370,e[t+300>>2]=336925972,e[t+200>>2]=0,e[t+8>>2]=7,e[t+12>>2]=2097184,d[t+168|0]=2,e[t+104>>2]=50176,e[t+84>>2]=1,NA(t,3);break e}e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+104>>2]=184618072,e[t+8>>2]=12,e[t+12>>2]=32,A=e[25861],e[t+304>>2]=e[25860],e[t+308>>2]=A,A=e[25863],e[t+312>>2]=e[25862],e[t+316>>2]=A,r=27500;break e}e[t+184>>2]=42752,e[t+600>>2]=4352,eA(t+344|0,0,256),d[t+456|0]=1,d[t+457|0]=1,d[t+458|0]=1,d[t+459|0]=1,d[t+449|0]=1,d[t+450|0]=1,d[t+451|0]=1,d[t+452|0]=1,d[t+453|0]=1,d[t+454|0]=1,d[t+455|0]=1,d[t+456|0]=1,d[t+441|0]=1,d[t+442|0]=1,d[t+443|0]=1,d[t+444|0]=1,d[t+445|0]=1,d[t+446|0]=1,d[t+447|0]=1,d[t+448|0]=1,d[t+460|0]=65,d[t+461|0]=65,d[t+532|0]=32,d[t+527|0]=32,d[t+519|0]=32,d[t+515|0]=32,d[t+349|0]=32,d[t+350|0]=32,d[t+346|0]=32,e[t+132>>2]=20,e[t+112>>2]=286331152,e[t+104>>2]=1024,e[t+108>>2]=16384,e[t+40>>2]=1,e[t+8>>2]=8,d[t+458|0]=65,d[t+453|0]=65,d[t+447|0]=65,d[t+448|0]=65,d[t+443|0]=65,d[t+444|0]=65,r=27503;break e}e[t+328>>2]=10,e[t+296>>2]=336859666,e[t+300>>2]=353768980,d[t+168|0]=2,e[t+104>>2]=263264,e[t+8>>2]=7,A=e[26065],e[t+304>>2]=e[26064],e[t+308>>2]=A,A=e[26067],e[t+312>>2]=e[26066],e[t+316>>2]=A,r=27509;break e}e[t+104>>2]=1,r=27513;break e}e[t+116>>2]=5e3,e[t+104>>2]=16777216,e[t+24>>2]=1,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=5,r=27745;break e}e[t+116>>2]=5e3,e[t+104>>2]=99336,e[t+108>>2]=256,e[t+24>>2]=1,e[t+16>>2]=0,e[t+20>>2]=2,e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=5,r=27764;break e}e[t+328>>2]=6,e[t+296>>2]=336859409,e[t+300>>2]=353768980,e[t+600>>2]=1056,e[t+104>>2]=2114600,e[t+108>>2]=138,e[t+8>>2]=4,e[t+632>>2]=104288,e[t+604>>2]=104288,A=e[26093],e[t+304>>2]=e[26092],e[t+308>>2]=A,A=e[26095],e[t+312>>2]=e[26094],e[t+316>>2]=A,r=28011;break e}e[t+328>>2]=4,e[t+104>>2]=1,e[t+8>>2]=2,e[t+36>>2]=256,r=28020;break e}e[t+4>>2]=48,e[t+8>>2]=0,e[t+12>>2]=128,e[t+104>>2]=2169880,e[t+32>>2]=1,e[t+36>>2]=256,e[t+24>>2]=1,e[t+136>>2]=85767,A=e[26097],e[t+304>>2]=e[26096],e[t+308>>2]=A,A=e[26099],e[t+312>>2]=e[26098],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=28268;break e}e[t+8>>2]=0,e[t+104>>2]=71752,A=e[26101],e[t+304>>2]=e[26100],e[t+308>>2]=A,A=e[26103],e[t+312>>2]=e[26102],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=28258;break e}e[t+296>>2]=336858898,e[t+300>>2]=370546196,e[t+104>>2]=1088,e[t+108>>2]=512,e[t+8>>2]=2,e[t+12>>2]=524310,A=e[26105],e[t+304>>2]=e[26104],e[t+308>>2]=A,A=e[26107],e[t+312>>2]=e[26106],e[t+316>>2]=A,r=28525;break e}e[t+328>>2]=3,e[t+296>>2]=320015633,e[t+300>>2]=353768980,d[t+168|0]=7,e[t+8>>2]=2,e[t+12>>2]=6,e[t+104>>2]=20488,e[t+108>>2]=192,e[t+36>>2]=9,e[t+60>>2]=260,A=e[26109],e[t+304>>2]=e[26108],e[t+308>>2]=A,A=e[26111],e[t+312>>2]=e[26110],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=28780;break e}for(e[t+296>>2]=353569552,e[t+300>>2]=353768980,e[t+116>>2]=5e3,e[t+104>>2]=33570920,e[t+108>>2]=14336,e[t+8>>2]=3,e[t+12>>2]=139286,e[t+100>>2]=e[t+96>>2],A=e[26113],e[t+304>>2]=e[26112],e[t+308>>2]=A,A=e[26115],e[t+312>>2]=e[26114],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,A=0,s=t+344|0;d[0|(o=A+s|0)]=253&u[0|o],d[0|(o=s+(1|A)|0)]=253&u[0|o],d[0|(o=s+(2|A)|0)]=253&u[0|o],d[0|(o=s+(3|A)|0)]=253&u[0|o],(0|(A=A+4|0))!=256;);d[t+442|0]=2|u[t+442|0],d[t+443|0]=2|u[t+443|0],d[t+444|0]=2|u[t+444|0],d[t+446|0]=2|u[t+446|0],d[t+447|0]=2|u[t+447|0],d[t+450|0]=2|u[t+450|0],d[t+451|0]=2|u[t+451|0],d[t+453|0]=2|u[t+453|0],d[t+454|0]=2|u[t+454|0],d[t+456|0]=2|u[t+456|0],d[t+457|0]=2|u[t+457|0],d[t+459|0]=2|u[t+459|0],d[t+460|0]=2|u[t+460|0],d[t+462|0]=2|u[t+462|0],d[t+464|0]=2|u[t+464|0],d[t+466|0]=2|u[t+466|0],e[t+144>>2]=2,e[t+68>>2]=2;break e}e[t+296>>2]=303172879,e[t+300>>2]=353768980,e[t+328>>2]=3,e[t+8>>2]=3,e[t+12>>2]=262,e[t+104>>2]=16805928,e[t+108>>2]=30,A=e[26117],e[t+304>>2]=e[26116],e[t+308>>2]=A,A=e[26119],e[t+312>>2]=e[26118],e[t+316>>2]=A,r=29295;break e}Dn(t),r=29301;break e}for(e[t+328>>2]=3,e[t+296>>2]=336859153,e[t+300>>2]=353768980,k[t+168>>1]=261,e[t+8>>2]=0,e[t+12>>2]=22,e[t+124>>2]=0,e[t+128>>2]=44,e[t+104>>2]=16794624,e[t+108>>2]=128,e[t+36>>2]=3,e[t+60>>2]=4,A=e[25869],e[t+304>>2]=e[25868],e[t+308>>2]=A,A=e[25871],e[t+312>>2]=e[25870],e[t+316>>2]=A,(0|r)==25459&&(e[t+108>>2]=136),d[t+465|0]=64&u[t+465|0]|129,d[t+458|0]=64&u[t+458|0]|129,A=0,s=t+344|0;d[0|(o=A+s|0)]=223&u[0|o],d[0|(o=s+(1|A)|0)]=223&u[0|o],d[0|(o=s+(2|A)|0)]=223&u[0|o],d[0|(o=s+(3|A)|0)]=223&u[0|o],(0|(A=A+4|0))!=256;);d[t+442|0]=32|u[t+442|0],d[t+444|0]=32|u[t+444|0],d[t+447|0]=32|u[t+447|0],d[t+450|0]=32|u[t+450|0],d[t+452|0]=32|u[t+452|0],d[t+453|0]=32|u[t+453|0],d[t+454|0]=32|u[t+454|0],d[t+458|0]=32|u[t+458|0],d[t+462|0]=32|u[t+462|0],d[t+463|0]=32|u[t+463|0],d[t+466|0]=32|u[t+466|0],d[t+441|0]=32|u[t+441|0],d[t+445|0]=32|u[t+445|0],d[t+449|0]=32|u[t+449|0],d[t+455|0]=32|u[t+455|0],d[t+461|0]=32|u[t+461|0],d[t+465|0]=32|u[t+465|0];break e}for(e[t+296>>2]=303174162,e[t+300>>2]=370545684,e[t+600>>2]=3456,d[t+169|0]=1,e[t+8>>2]=0,e[t+12>>2]=22,e[t+100>>2]=e[t+96>>2],A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,eA(t+344|0,0,256),d[t+365|0]=1,d[t+366|0]=1,d[t+357|0]=1,d[t+358|0]=1,d[t+359|0]=1,d[t+360|0]=1,d[t+361|0]=1,d[t+362|0]=1,d[t+363|0]=1,d[t+364|0]=1,d[t+349|0]=1,d[t+350|0]=1,d[t+351|0]=1,d[t+352|0]=1,d[t+353|0]=1,d[t+354|0]=1,d[t+355|0]=1,d[t+356|0]=1,A=74,s=74;d[(o=t+s|0)+344|0]=1|u[o+344|0],d[o+345|0]=1|u[o+345|0],d[o+346|0]=1|u[o+346|0],(0|(s=s+3|0))!=116;);for(;d[(s=A+t|0)+344|0]=2|u[s+344|0],d[s+345|0]=2|u[s+345|0],d[s+346|0]=2|u[s+346|0],(0|(A=A+3|0))!=116;);for(s=26;d[(A=t+s|0)+344|0]=4|u[A+344|0],d[A+345|0]=4|u[A+345|0],d[A+346|0]=4|u[A+346|0],d[A+347|0]=4|u[A+347|0],d[A+348|0]=4|u[A+348|0],(0|(s=s+5|0))!=71;);e[t+112>>2]=84648,e[t+104>>2]=270589952,e[t+108>>2]=65536,e[t+40>>2]=1,e[t+204>>2]=e[t+600>>2]+74;break e}e[t+8>>2]=2,e[t+12>>2]=32,e[t+328>>2]=3,e[t+124>>2]=32,e[t+104>>2]=16864280,e[t+108>>2]=256,e[t+68>>2]=2,e[t+36>>2]=259,e[t+40>>2]=118,e[t+28>>2]=1,d[t+458|0]=128|u[t+458|0],r=29548;break e}e[t+296>>2]=370544658,e[t+300>>2]=370546196,e[t+164>>2]=130,e[t+8>>2]=0,e[t+12>>2]=86,e[t+104>>2]=87064,d[t+169|0]=1,e[t+152>>2]=3,A=e[26121],e[t+304>>2]=e[26120],e[t+308>>2]=A,A=e[26123],e[t+312>>2]=e[26122],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=7564650;break e}e[t+296>>2]=269487120,e[t+300>>2]=320148500,e[t+8>>2]=3,e[t+12>>2]=278,e[t+144>>2]=2,e[t+104>>2]=32872,A=e[26125],e[t+304>>2]=e[26124],e[t+308>>2]=A,A=e[26127],e[t+312>>2]=e[26126],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=29553;break e}e[t+296>>2]=336859152,e[t+300>>2]=353768980,e[t+8>>2]=0,e[t+144>>2]=1,e[t+104>>2]=6408,A=e[26129],e[t+304>>2]=e[26128],e[t+308>>2]=A,A=e[26131],e[t+312>>2]=e[26130],e[t+316>>2]=A,d[t+465|0]=64&u[t+465|0]|129,r=29558;break e}e[t+296>>2]=320015376,e[t+300>>2]=353768980,d[t+168|0]=4,e[t+12>>2]=22,e[t+4>>2]=1,e[t+8>>2]=2,e[t+104>>2]=1248,e[t+100>>2]=e[t+96>>2],A=e[26133],e[t+304>>2]=e[26132],e[t+308>>2]=A,A=e[26135],e[t+312>>2]=e[26134],e[t+316>>2]=A;break e}e[t+296>>2]=303174162,e[t+300>>2]=370545684,d[t+169|0]=1,e[t+8>>2]=0,e[t+12>>2]=22,e[t+112>>2]=5288,e[t+100>>2]=e[t+96>>2],A=e[25877],e[t+304>>2]=e[25876],e[t+308>>2]=A,A=e[25879],e[t+312>>2]=e[25878],e[t+316>>2]=A;p:switch(r-29793|0){default:if((0|r)!=27502){if((0|r)!=28012)break r;A=e[26137],e[t+304>>2]=e[26136],e[t+308>>2]=A,A=e[26139],e[t+312>>2]=e[26138],e[t+316>>2]=A,e[t+600>>2]=3328,e[t+296>>2]=320017171,e[t+300>>2]=320017171,e[t+104>>2]=2098176,e[t+108>>2]=131072,e[t+8>>2]=13;break r}e[t+104>>2]=1,e[t+600>>2]=3200;break r;case 4:break p;case 1:case 2:case 3:break r;case 0:break a}e[t+104>>2]=1,e[t+108>>2]=524288,e[t+600>>2]=3072;break r}e[t+328>>2]=10,e[t+296>>2]=353636370,e[t+300>>2]=336925972,d[t+173|0]=1,e[t+8>>2]=7,e[t+12>>2]=32,d[t+168|0]=2,e[t+84>>2]=1,A=e[26141],e[t+304>>2]=e[26140],e[t+308>>2]=A,e[t+104>>2]=(0|r)==24954?2118920:2114824,A=e[26143],e[t+312>>2]=e[26142],e[t+316>>2]=A;break e}iA(t),e[t+296>>2]=303173650,e[t+300>>2]=303174162,e[t+104>>2]=2131208,e[t+8>>2]=3,e[t+12>>2]=32,A=e[25865],e[t+304>>2]=e[25864],e[t+308>>2]=A,A=e[25867],e[t+312>>2]=e[25866],e[t+316>>2]=A,r=29812;break e}Dn(t),r=30059;break e}e[t+112>>2]=21160,e[t+104>>2]=16,e[t+600>>2]=1536,e[t+40>>2]=1;break e}e[t+296>>2]=269488144,e[t+300>>2]=370546198,e[t+8>>2]=0,e[t>>2]=33,e[t+148>>2]=1,e[t+104>>2]=12615688,e[t+16>>2]=2,e[t+100>>2]=e[t+96>>2],e[t+632>>2]=104592,e[t+604>>2]=104592,A=e[26145],e[t+304>>2]=e[26144],e[t+308>>2]=A,A=e[26147],e[t+312>>2]=e[26146],e[t+316>>2]=A,r=30313;break e}if(e[t+296>>2]=370544662,e[t+300>>2]=370546198,e[t+8>>2]=3,e[t+12>>2]=2,e[t+148>>2]=1,e[t+184>>2]=12544,k[t+170>>1]=257,e[t+176>>2]=1,d[t+172|0]=1,e[t>>2]=33,e[t+4>>2]=0,e[t+100>>2]=e[t+96>>2],A=e[26225],e[t+304>>2]=e[26224],e[t+308>>2]=A,A=e[26227],e[t+312>>2]=e[26226],e[t+316>>2]=A,(0|r)!=7959909)break e;e[t+112>>2]=24,e[t+104>>2]=1,e[t+108>>2]=1048576,r=7959909;break e}A=e[25873],e[t+304>>2]=e[25872],e[t+308>>2]=A,A=e[25875],e[t+312>>2]=e[25874],e[t+316>>2]=A,e[t+600>>2]=2944,e[t+104>>2]=2097152,e[t+108>>2]=262144,e[t+48>>2]=1}bs(t),d[t+422|0]=2|u[t+422|0];break e}e[t+40>>2]=1}return e[t+212>>2]=r,8&(A=e[t+104>>2])&&(e[t+124>>2]=46,e[t+128>>2]=44),4&A&&(e[t+124>>2]=0),t}function QA(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0;e:{r=e[32538],e[47354]=0,e[47568]=0,e[49828]=0,e[47569]=0,d[199328]=0,e[49827]=0,e[49845]=0,d[190280]=0,d[190268]=1,e[47202]=0,e[49573]=0,e[49846]=0,d[199304]=0,d[199388]=0,e[33691]=0,e[33285]=0,e[33708]=1,e[33709]=1,e[33288]=0,t=e[33730],e[33712]=e[33729],e[33713]=t,t=e[33732],e[33714]=e[33731],e[33715]=t,t=e[33734],e[33716]=e[33733],e[33717]=t,t=e[33736],e[33718]=e[33735],e[33719]=t,t=e[33738],e[33720]=e[33737],e[33721]=t,t=e[33740],e[33722]=e[33739],e[33723]=t,t=e[33742],e[33724]=e[33741],e[33725]=t,e[33726]=e[33743],d[134784]=0,d[134824]=0,d[134772]=0,d[134760]=0,e[33284]=-1,e[33692]=0,e[32525]=0,e[47201]=e[33717],e[47200]=e[33718],wo(),e[34438]=0,e[34437]=0,t=e[33730],e[34048]=e[33729],e[34049]=t,t=e[33732],e[34050]=e[33731],e[34051]=t,t=e[33734],e[34052]=e[33733],e[34053]=t,t=e[33736],e[34054]=e[33735],e[34055]=t,t=e[33738],e[34056]=e[33737],e[34057]=t,t=e[33740],e[34058]=e[33739],e[34059]=t,t=e[33742],e[34060]=e[33741],e[34061]=t,e[34062]=e[33743];A:{r:{if(1&r){if(e[e[32539]>>2]=0,e[47569]|e[49845]|e[49827])break r;break A}if(e[e[32539]>>2]=0,!(e[49845]|e[49827]||e[47569]))break A}d[190280]=1}e[49828]=0,t=268436735;A:if(!(!e[34391]|!e[34388])&&(e[47204]=0,e[47203]=0,e[47199]=0,e[34439]=0,(e[47192]||!(t=si(86228)))&&((t=e[33283])||((t=it(16))&&(e[t>>2]=0,e[t+4>>2]=0,e[t+8>>2]=0,e[t+12>>2]=0),e[33283]=t),l=268439807,(r=e[e[47192]+328>>2])>>>0>20|!e[129104+(r<<3)>>2]?t=l:(A?(l=4,o=BA(A)+1|0):(l=2,o=0),e[t+8>>2]=l,e[t>>2]=A,e[t+12>>2]=e[129108+(r<<3)>>2],e[t+4>>2]=A?A+o|0:0,t=0),!t))){vA(0);r:{for(;;){e[34436]=0,A=e[34391],e[51290]=A,e[54046]=A+e[34390],e[50767]<=102399&&(e[50767]=102400);a:if(!((c=e[51290])>>>0>=$[54046]))for(;;){if((((0|(A=(o=e[50757])-(f=e[50758])|0))<=0?A+170|0:A)-171|0)>=-1){if((0|(A=e[54731]))<=0)break a;l=0,e[50763]=0,e[50762]=0,e[50765]=2147483647,A=u[218920]?e[54732]:A;n:{for(;;){if(r=A-1|0,e[54732]=r,(0|A)<=0)break n;if(e[51290]=c+1,t=(A=e[51293])+1|0,e[51293]=(0|t)<=5499?t:0,t=(A=O(e[50755],k[205184+(A<<1)>>1]))>>8,d[0|c]=t,o=e[51290],e[51290]=o+1,d[0|o]=A>>>16,(o=e[50756])?(A=r,(r=e[o+4>>2])&&($A[0|r](t<<16>>16),A=e[54732])):A=r,o=(r=e[51292])+1|0,e[51292]=o,k[205184+(r<<1)>>1]=t,(0|o)>=5500&&(e[51292]=0),c=e[51290],!($[54046]>=c+2>>>0))break}l=1}d[218920]=l;break a}A=e[(r=216192+(o<<4)|0)+4>>2];n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{v:{I:{x:{L:{_:switch((255&(t=e[r>>2]))-1|0){case 9:break c;case 7:break u;case 10:break l;case 11:break i;case 13:break p;case 0:break C;case 1:break h;case 2:break b;case 3:break m;case 6:break v;case 5:break I;case 4:break x;case 15:break L;case 8:break _;default:break o}if(!e[50759])break o;t=e[r+12>>2],r=e[r+8>>2],e[50768]=0,c=r||99232,e[50766]=c,e[50769]=A?2097152/(0|A)|0:0,A=e[50971],o=(0|O(A,e[50788]))/50|0,r=O(o-A|0,-18),A=((0|(A=e[50785]))>=101?101:A)-e[50790]|0,t=(l=r+((0|O(e[50970],u[((0|A)>0?A:0)+105680|0]))/128|0)|0)+((0|O(o,(0|(A=t>>16))<(0|(r=65535&t))?A:r))/2|0)|0,e[50770]=t,A=(l+((0|O(o,(0|A)>(0|r)?A:r))/2|0)|0)-t|0,e[50771]=A,r=u[0|c],e[33072]=e[50976],e[50767]=t+(O(A,r)>>8);break o}$A[e[e[50756]>>2]](A,e[r+8>>2]),FA(A);break o}if(u[218920]||(e[54731]=e[54731]-A),e[50781]=100,e[50773]=0,Ia(),e[50763]=0,e[50762]=0,e[50765]=2147483647,!A)break o;for(A=u[218920]?e[54732]:A;;){if(r=A-1|0,e[54732]=r,(0|A)<=0)break o;if(A=e[51290],e[51290]=A+1,o=(t=e[51293])+1|0,e[51293]=(0|o)<=5499?o:0,o=A,t=(A=O(e[50755],k[205184+(t<<1)>>1]))>>8,d[0|o]=t,o=e[51290],e[51290]=o+1,d[0|o]=A>>>16,(o=e[50756])?(A=r,(r=e[o+4>>2])&&($A[0|r](t<<16>>16),A=e[54732])):A=r,o=(r=e[51292])+1|0,e[51292]=o,k[205184+(r<<1)>>1]=t,(0|o)>=5500&&(e[51292]=0),o=1,!($[54046]>=e[51290]+2>>>0))break}break n}for(e[50773]=0,e[54731]=e[54729],Ia(),t=e[r+12>>2],o=e[r+8>>2],u[218920]?A=e[54733]:e[54734]=0,f=t>>8,l=255&t,e[50762]=0,e[50763]=0;;){if(r=A-1|0,e[54733]=r,(0|A)<=0)break o;if(t=(A=e[54734])+1|0,l?c=O(l,d[A+o|0]):(c=u[A+o|0]|d[t+o|0]<<8,t=A+2|0),e[54734]=t,m=(A=e[51293])+1|0,e[51293]=m,t=(0|(A=(0|(A=((0|O(f,O(e[33037],O(e[33038],c))>>10))/32|0)+(O(e[50755],k[205184+(A<<1)>>1])>>8)|0))<=-32768?-32768:A))>=32767?32767:A,(0|m)>=5500&&(e[51293]=0),d[e[51290]]=t,d[e[51290]+1|0]=t>>>8,(c=e[50756])?(A=r,(r=e[c+12>>2])&&($A[0|r](t<<16>>16),A=e[54733])):A=r,r=e[51290],e[51290]=r+2,m=(c=e[51292])+1|0,e[51292]=m,k[205184+(c<<1)>>1]=(0|O(t,3))/4,(0|m)>=5500&&(e[51292]=0),!($[54046]>=r+4>>>0))break}o=1;break n}t=e[r+12>>2],o=A>>>16|0,e[50777]=o,A&=65535,e[50773]=A,l=255&t,e[50774]=l,e[50775]=t>>8,l||(e[50777]=o<<1,e[50773]=A<<1),e[50778]=0,e[50776]=0,e[50772]=e[r+8>>2];break o}e[50773]=0}if(e[54731]=e[54729],t=e[50759],u[218920]){if(!t)break o}else{if(!t)break o;for(l=e[r+12>>2],c=e[r+8>>2],r=A>>16,e[55912]=255&r,d[218960]=1,e[55908]=0,67108864&A&&(e[55908]=3,e[55909]=e[110496+(r>>>6&12)>>2]),134217728&A&&(e[55908]=4,e[55909]=e[110512+(r>>>6&12)>>2]),A&=65504;;){if((0|f)!=(0|(o=(0|(r=o+1|0))<=169?r:0)))if((0|(r=e[216192+(o<<4)>>2]))!=3){if(r-5>>>0>1)continue}else d[218960]=0;break}for(e[55913]=e[50762],A=(A=A+32&131008)||64,e[50763]=A+e[50763],e[55684]=O(k[101997],7800)+(y[102024]<<8)<<8,e[55704]=O(k[101998],9e3)+(y[102025]<<8)<<8,z=e[50980],s=+(0|A),M=+(A>>>2|0),A=0;(0|A)!=7&&(o=k[(m=(r=A<<1)+t|0)+218>>1]<<8,f=O(A,80)+222176|0,m=k[m+164>>1],G=o+O(m,k[2+(r+c|0)>>1])<<8,e[f>>2]=G,b=+(0|G),T[f+16>>3]=b,T[f+48>>3]=16*(+(o+O(m,k[2+(r+l|0)>>1])<<8)-b)/M),o=(r=O(A,80))+222176|0,m=k[(G=t+(A<<1)|0)+182>>1],Y=O(m,u[(f=A+c|0)+18|0])<<6,e[o+4>>2]=Y,b=+(0|Y),T[o+24>>3]=b,W=o,o=A+l|0,T[W+56>>3]=64*(+(O(m,u[o+18|0])<<6)-b)/s,(0|A)>(0|z)|A>>>0>5||(m=r+222176|0,Y=k[G+200>>1],G=O(Y,u[f+26|0])<<10,e[m+8>>2]=G,b=+(0|G),T[m+32>>3]=b,W=m- -64|0,m=Y<<10,T[W>>3]=64*(+(0|O(m,u[o+26|0]))-b)/s,A>>>0<=2?(r=r+222176|0,f=O(m,u[f+32|0]),e[r+12>>2]=f,b=+(0|f),T[r+40>>3]=b,T[r+72>>3]=64*(+(0|O(m,u[o+32|0]))-b)/s):e[r+222188>>2]=G),(0|(A=A+1|0))!=8;);}for(;;){if(A=e[50762],!u[218960]&(0|A)==e[50763])break o;b:{m:{if(63&A){if(7&A)break b;v:if(!((0|(r=e[54736]))<=0||(0|(t=e[54735]))<=0))for(o=e[50826],A=1;;){if(e[(c=(l=A<<2)+o|0)>>2]=e[c>>2]+e[l+203312>>2],A>>>0>28|(0|A)>=(0|r))break v;if(l=(0|A)<(0|t),A=A+1|0,!l)break}if((0|(A=e[33073]))>255)break b;e[33073]=A+1;break b}if(A)if(e[50759]){if(r=e[50768]+e[50769]|0,e[50768]=r,r=(t=e[50766])?O(u[t+((0|(r>>=8))>=127?127:r)|0],e[50771])>>8:0,e[55911]=e[55911]+e[55915],t=(0|(t=e[55914]))<=23551?t:0,e[55914]=t+e[50761],t=(r+e[50770]|0)+O(e[33072],u[110528+(t>>6)|0]-128|0)|0,e[50767]=t,!(o=e[51291])&(0|(r=o?o<<12:t))>102399||(t=(0|r)<=102400?102400:r,e[50767]=t),(0|A)!=e[55913]){if(A=0,!((0|(f=e[50980]))<0)){for(;c=O(A,80),s=T[(r=c+222176|0)+48>>3]+T[r+16>>3],T[r+16>>3]=s,M=T[r+56>>3]+T[r+24>>3],T[r+24>>3]=M,b=T[r- -64>>3]+T[r+32>>3],T[r+32>>3]=b,o=Ae(s)<2147483648?~~s:-2147483648,e[r>>2]=o,o=Ae(b)<2147483648?~~b:-2147483648,e[r+8>>2]=o,l=Ae(M)<2147483648?~~M:-2147483648,e[r+4>>2]=(0|l)>0?l:0,(0|A)>2||(s=T[(r=c+222176|0)+72>>3]+T[r+40>>3],T[r+40>>3]=s,o=Ae(s)<2147483648?~~s:-2147483648),e[c+222188>>2]=o,(0|f)>=(0|(A=A+1|0)););if((0|A)>=8)break m}for(;(0|A)!=7&&(r=O(A,80)+222176|0,s=T[r+48>>3]+T[r+16>>3],T[r+16>>3]=s,o=Ae(s)<2147483648?~~s:-2147483648,e[r>>2]=o),r=O(A,80)+222176|0,s=T[r+56>>3]+T[r+24>>3],T[r+24>>3]=s,o=Ae(s)<2147483648?~~s:-2147483648,e[r+4>>2]=(0|o)>0?o:0,(0|(A=A+1|0))!=8;);}}else t=e[50767];else e[50826]=218976,e[54742]=0,e[54736]=Yr(e[50767]<<4,218976,0),t=e[50767],e[54737]=890/(t>>12),e[54739]=(0|O(e[50781],O(e[50779],t>>8)))/8e4}if(e[55906]=t>>11,e[54735]=e[54736],e[55904]=O(e[50760],t>>7),e[55905]=e[50754]/(t>>12),r=1^(A=e[54742]),e[54742]=r,e[50826]=O(A,1600)+218976,e[54736]=Yr(t<<4,O(r,1600)+218976|0,1),!(!(t=e[50759])|!e[51022]))for(M=T[25430],b=T[25429],A=1;e[(r=t+(A<<2)|0)+272>>2]&&(o=e[r+308>>2],r=O(A,40)+203456|0,I=As(M*+k[2+(O(A,80)+222176|0)>>1]),I*=s=Gr(b*+(0|o)),I+=I,T[r+8>>3]=I,s*=-s,T[r+16>>3]=s,T[r>>3]=1-I-s),(0|(A=A+1|0))!=9;);}if(l=e[50762]+1|0,e[50762]=l,c=(A=e[50765])+e[55904]|0,e[50765]=c,(0|c)<0&(0|A)>0){if(m=e[55905],t=e[50800]+((0|m)/-2|0)|0,e[55907]=t,(0|(G=e[50763]))<(0|l))break o;if(z=e[54738]+1|0,e[54738]=z,f=e[50767],!((0|(A=(r=e[50980])+1|0))>8)&&(o=f<<3,1&r&&(e[203264+(A<<2)>>2]=(1+(e[O(A,80)+222176>>2]/(0|o)|0)|0)/2,A=r+2|0),(0|r)!=7))for(;r=203264+(A<<2)|0,Y=O(A,80)+222176|0,e[r>>2]=(1+(e[Y>>2]/(0|o)|0)|0)/2,e[r+4>>2]=(1+(e[Y+80>>2]/(0|o)|0)|0)/2,(0|(A=A+2|0))!=9;);A=(0|O(e[50781],O(e[50779],f>>8)))/8e4|0,e[54739]=A;b:if(!((0|(r=e[55908]))<=0)){m:switch(r-3|0){case 0:if((G-l|0)>=m<<1)break b;e[55908]=2,A=(0|O(e[55909],A))/256|0,e[54739]=A;break b;case 1:e[55908]=2,A=(0|O(e[55909],A))/256|0,e[54739]=A;break b;default:break m}e[55908]=r-1}(r=e[55910])&&(o=A,A=e[55911]>>8,A=(0|O(o,u[r+((0|A)>=127?127:A)|0]))/128|0,e[54739]=A),(0|(r=e[e[32972]+92>>2]))>7||(r=15&(o=u[e[55912]+(106336+(r<<3)|0)|0]),(o=o>>>4|0)&&((0|o)!=15?(0|z)%(0|o)|0||(e[54739]=(0|O(A,r))/16):(e[55912]=0,e[54739]=(0|O(A,r))/16)))}else t=e[55907];if(l=t+1|0,e[55907]=l,r=c>>>16|0,o=0,!((0|l)<0|(0|l)>=e[50799])){if(!((0|(A=(t=e[50980])+1|0))>8)){if(f=1&(c=8-t|0),(0|t)!=7)for(m=-2&c,t=0;o=O(e[(G=(c=A<<2)+4|0)+203216>>2],k[106400+(O(r,e[G+203264>>2])>>>4&4094)>>1])+(O(e[c+203216>>2],k[106400+(O(r,e[c+203264>>2])>>>4&4094)>>1])+o|0)|0,A=A+2|0,(0|m)!=(0|(t=t+2|0)););f&&(o=O(e[(A<<=2)+203216>>2],k[106400+(O(r,e[A+203264>>2])>>>4&4094)>>1])+o|0)}o=O(u[l+132160|0],(0|o)/e[55906]|0)}if(A=1,(0|(l=e[54737]))<=0)t=r;else for(c=e[50826],t=r;o=O(e[c+(A<<2)>>2],k[106400+((65504&t)>>>4|0)>>1])+o|0,t=t+r|0,(0|l)>=(0|(A=A+1|0)););if((0|(l=e[54735]))>=(0|A))for(c=e[50826];o=o-O(e[c+(A<<2)>>2],k[106400+((65504&t)>>>4|0)>>1])|0,t=t+r|0,(0|l)>=(0|(A=A+1|0)););if(l=(0|(A=e[54728]))==64?o:O(A,o>>6),e[51022]){if(e[50759])for(r=st(e[33209],0,1103515245,0),A=me,A=ji(r=r+12345|0,A=r>>>0<12345?A+1|0:A),e[33209]=A,M=+((16383&A)- -8192|0),t=e[50759],c=0,A=1;(o=e[272+(t+(A<<2)|0)>>2])&&(f=e[O(A,80)+222180>>2],r=O(A,40)+203456|0,s=T[r+32>>3],b=T[r+24>>3],T[r+32>>3]=b,s=s*T[r+16>>3]+(T[r>>3]*M+b*T[r+8>>3]),T[r+24>>3]=s,r=Ae(s)<2147483648?~~s:-2147483648,c=O(r,O(o,f>>14))+c|0),(0|(A=A+1|0))!=9;);else c=0;l=l+c|0}t=0,(0|(A=e[50776]))>=e[50773]||(r=e[50778],t=e[50772],(c=e[50774])?(o=A+1|0,e[50776]=o,A=O(c,d[t+(A+r|0)|0])):(c=u[0|(t=t+(A+r|0)|0)],t=d[t+1|0],o=A+2|0,e[50776]=o,A=c|t<<8),t=(0|O(O(A,e[50780])>>10,e[50775]))/32|0,(0|(A=e[50777]))>(r+o|0)||(e[50778]=r+((0|O(A,3))/-4|0))),r=(A=e[51293])+1|0,e[51293]=r,A=((O(e[54739],l>>8)>>13)+t|0)+(O(e[50755],k[205184+(A<<1)>>1])>>8)|0,(0|r)>=5500&&(e[51293]=0),r=e[33073];b:{m:{if((0|(t=O(r,A)))>=8388608){if((0|r)>=(0|(c=8388608/(0|A)|0)))break m;break b}if((0|t)>-8388353||(0|r)<(0|(c=-8388608/(0|A)|0)))break b}r=c-1|0,e[33073]=r,t=O(A,r)}if(A=e[51290],e[51290]=A+1,r=A,A=t>>8,d[0|r]=A,r=e[51290],e[51290]=r+1,d[0|r]=t>>>16,(r=e[50756])&&(r=e[r+8>>2])&&$A[0|r](A<<16>>16),t=(r=e[51292])+1|0,e[51292]=t,k[205184+(r<<1)>>1]=A,(0|t)>=5500&&(e[51292]=0),!($[54046]>=e[51290]+2>>>0))break}o=1;break n}e[50773]=0}e[54731]=e[54729],o=1,f=65535&A,t=u[218920],c=e[r+8>>2],l=e[r+12>>2],s=0,b=0,H=r=H+-64|0,m=e[50759];C:if((0|(A=e[m+132>>2]))!=6){if(!t){for(A-1>>>0<=4&&(e[55921]=A,e[55964]=e[110896+(A<<2)>>2]),A=e[m+88>>2],e[54741]=1,e[55922]=(0|A)/32,t=e[50758],A=e[50757];;){h:if((0|t)!=(0|(A=(0|(A=A+1|0))<=169?A:0)))if((0|(G=e[216192+(A<<4)>>2]))!=1){if(G-5>>>0>1)continue}else{if(e[54741]=0,A=e[8+(216192+(A<<4)|0)>>2],!(y[l+4>>1]!=y[A+4>>1]|y[A+6>>1]!=y[l+6>>1]|y[A+8>>1]!=y[l+8>>1]|y[A+10>>1]!=y[l+10>>1])&&y[A+12>>1]==y[l+12>>1])break h;e[54741]=2}break}for((y[c+4>>1]!=y[113564]|y[c+6>>1]!=y[113565]|y[c+8>>1]!=y[113566]|y[c+10>>1]!=y[113567]||y[c+12>>1]!=y[113568])&&(uA(),e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,e[55988]=0,e[55989]=0,e[55990]=0,e[55991]=0,e[56004]=0,e[56005]=0,e[56006]=0,e[56007]=0,e[56020]=0,e[56021]=0,e[56022]=0,e[56023]=0,e[56036]=0,e[56037]=0,e[56038]=0,e[56039]=0,e[56052]=0,e[56053]=0,e[56054]=0,e[56055]=0,e[56068]=0,e[56069]=0,e[56070]=0,e[56071]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0),A=y[l+4>>1]|y[l+6>>1]<<16,t=y[l>>1]|y[l+2>>1]<<16,k[113562]=t,k[113563]=t>>>16,k[113564]=A,k[113565]=A>>>16,A=y[l+60>>1]|y[l+62>>1]<<16,t=y[l+56>>1]|y[l+58>>1]<<16,k[113590]=t,k[113591]=t>>>16,k[113592]=A,k[113593]=A>>>16,A=y[l+52>>1]|y[l+54>>1]<<16,t=y[l+48>>1]|y[l+50>>1]<<16,k[113586]=t,k[113587]=t>>>16,k[113588]=A,k[113589]=A>>>16,A=y[l+44>>1]|y[l+46>>1]<<16,t=y[l+40>>1]|y[l+42>>1]<<16,k[113582]=t,k[113583]=t>>>16,k[113584]=A,k[113585]=A>>>16,A=y[l+36>>1]|y[l+38>>1]<<16,t=y[l+32>>1]|y[l+34>>1]<<16,k[113578]=t,k[113579]=t>>>16,k[113580]=A,k[113581]=A>>>16,A=y[l+28>>1]|y[l+30>>1]<<16,t=y[l+24>>1]|y[l+26>>1]<<16,k[113574]=t,k[113575]=t>>>16,k[113576]=A,k[113577]=A>>>16,A=y[l+20>>1]|y[l+22>>1]<<16,t=y[l+16>>1]|y[l+18>>1]<<16,k[113570]=t,k[113571]=t>>>16,k[113572]=A,k[113573]=A>>>16,A=y[l+12>>1]|y[l+14>>1]<<16,t=y[l+8>>1]|y[l+10>>1]<<16,k[113566]=t,k[113567]=t>>>16,k[113568]=A,k[113569]=A>>>16,M=+(0|f),(W=1&k[c>>1])?(A=u[c+39|0],e[56680]=A,T[28364]=A>>>0,T[28354]=+(u[l+39|0]-A<<6)/M,A=u[c+40|0],T[28366]=A>>>0,T[28356]=+(u[l+40|0]-A<<6)/M,A=u[c+41|0],e[56682]=A,T[28368]=A>>>0,T[28358]=+(u[l+41|0]-A<<6)/M,t=u[c+42|0],e[56684]=t,T[28370]=t>>>0,A=u[c+43|0],s=+(u[l+43|0]-A<<6)/M,b=+(u[l+42|0]-t<<6)/M,I=+(A>>>0)):(e[56728]=0,e[56729]=0,A=0,e[56680]=0,e[56708]=0,e[56709]=0,e[56732]=0,e[56733]=0,e[56712]=0,e[56713]=0,e[56682]=0,e[56736]=0,e[56737]=0,e[56716]=0,e[56717]=0,e[56684]=0,e[56740]=0,e[56741]=0,I=0),e[56688]=A,T[28360]=b,T[28372]=I,T[28362]=s,e[56692]=0,e[56748]=0,e[56749]=0,e[56694]=0,e[56752]=0,e[56753]=0,e[56696]=0,e[56756]=0,e[56757]=0,e[56700]=0,e[56760]=0,e[56761]=0,e[56704]=0,e[56764]=0,e[56765]=0,e[50764]=f,A=1;z=k[(G=(f=A<<1)+m|0)+164>>1],t=(Ie=O(A,80))+222896|0,b=+k[G+218>>1],s=.00390625*+(0|O(z,k[2+(c+f|0)>>1]))+b,T[t+16>>3]=s,Y=Ae(s)<2147483648?~~s:-2147483648,e[t>>2]=Y,T[t+48>>3]=64*(.00390625*+(0|O(z,k[2+(l+f|0)>>1]))+b-s)/M,A>>>0<=3&&(t=Ie+222896|0,s=.00390625*+k[G+200>>1]*+(u[35+(A+c|0)|0]<<1),T[t+24>>3]=s,f=Ae(s)<2147483648?~~s:-2147483648,e[t+4>>2]=f,T[t+56>>3]=64*(+(u[35+(A+l|0)|0]<<1)-s)/M),(0|(A=A+1|0))!=6;);if(s=+((A=u[c+40|0])<<1),T[27864]=s,t=e[56618],A||(s=+(0|t),T[27864]=s),A=Ae(s)<2147483648?~~s:-2147483648,e[55724]=A,f=u[l+40|0],e[55730]=0,e[55731]=1079394304,e[55738]=0,e[55739]=0,e[55725]=89,A=1,T[27868]=64*(+(0|(f?f<<1:t))-s)/M,W)for(;t=O(A,80)+222896|0,m=u[(f=A+c|0)+56|0]<<2,e[t+12>>2]=m,s=+(0|m),T[t+40>>3]=s,m=A+l|0,T[t+72>>3]=64*(+(u[m+56|0]<<2)-s)/M,f=u[f+49|0],e[t+8>>2]=f,s=+(f>>>0),T[t+32>>3]=s,T[t- -64>>3]=64*(+u[m+49|0]-s)/M,(0|(A=A+1|0))!=7;);e[56606]=0}for(;;){if((0|(Y=e[50764]))>(0|(l=e[56606]))){for(A=e[50767],e[56609]=e[55724],e[56619]=e[55725],e[56610]=e[55744],e[56611]=e[55764],e[56612]=e[55784],e[56613]=e[55804],W=O(A,10),e[56607]=(0|W)/4096,e[56620]=e[55745],e[56621]=e[55765],e[56622]=e[55785],e[56614]=e[55824],e[56630]=e[55746],e[56631]=e[55766],e[56632]=e[55786],e[56633]=e[55806],e[56634]=e[55826],e[56635]=e[55846],Ie=e[56680],e[56608]=Ie,c=e[56694],e[56656]=c,f=e[56696],e[56653]=f,m=e[56700],e[56655]=m,G=e[56684],e[56649]=G,e[56651]=e[56704],e[56654]=e[56688],e[56652]=e[56682],e[56650]=e[56692],A=0;t=O(A,80)+222896|0,s=T[t+48>>3]+T[t+16>>3],T[t+16>>3]=s,M=T[t+56>>3]+T[t+24>>3],T[t+24>>3]=M,b=T[t+72>>3]+T[t+40>>3],T[t+40>>3]=b,I=T[t- -64>>3]+T[t+32>>3],T[t+32>>3]=I,z=Ae(s)<2147483648?~~s:-2147483648,e[t>>2]=z,z=Ae(M)<2147483648?~~M:-2147483648,e[t+4>>2]=z,z=Ae(b)<2147483648?~~b:-2147483648,e[t+12>>2]=z,z=Ae(I)<2147483648?~~I:-2147483648,e[t+8>>2]=z,(0|(A=A+1|0))!=9;);for(s=T[28354]+T[28364],T[28364]=s,T[28366]=T[28356]+T[28366],M=T[28358]+T[28368],T[28368]=M,b=T[28360]+T[28370],T[28370]=b,I=T[28362]+T[28372],T[28372]=I,A=Ae(s)<2147483648?~~s:-2147483648,e[56680]=A,A=Ae(M)<2147483648?~~M:-2147483648,e[56682]=A,A=Ae(b)<2147483648?~~b:-2147483648,e[56684]=A,A=Ae(I)<2147483648?~~I:-2147483648,e[56688]=A,s=T[28374]+0,T[28374]=s,A=Ae(s)<2147483648?~~s:-2147483648,e[56692]=A,s=T[28376]+0,T[28376]=s,A=Ae(s)<2147483648?~~s:-2147483648,e[56694]=A,s=T[28378]+0,T[28378]=s,A=Ae(s)<2147483648?~~s:-2147483648,e[56696]=A,s=T[28380]+0,T[28380]=s,A=Ae(s)<2147483648?~~s:-2147483648,e[56700]=A,s=T[28382]+0,T[28382]=s,A=Ae(s)<2147483648?~~s:-2147483648,e[56704]=A,e[56659]=e[55724],e[56669]=e[55725],e[56660]=e[55744],e[56670]=e[55745],e[56661]=e[55764],e[56671]=e[55765],e[56662]=e[55784],e[56672]=e[55785],e[56663]=e[55804],e[56664]=e[55824],e[56665]=e[55844],A=e[50768]+e[50769]|0,e[50768]=A,A>>=8,e[50767]=e[50770]+(O(e[50771],u[e[50766]+((0|A)>=127?127:A)|0])>>8),A=Y-l|0,e[55923]=(0|A)>=64?64:A,e[55961]=(0|W)/40960,A=Ie-7|0,e[56658]=(0|A)>0?A:0,T[27974]=G>>>0<=87?.001*+k[111136+(G<<1)>>1]*.05:0,T[27975]=f>>>0<=87?.001*+k[111136+(f<<1)>>1]*.25:0,T[27973]=c>>>0<=87?.001*+k[111136+(c<<1)>>1]:0,T[27971]=m>>>0<=87?.001*+k[111136+(m<<1)>>1]*.05:0,s=(A=e[56629])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.6:0,T[r>>3]=s,s=(A=e[56630])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.4:0,T[r+8>>3]=s,s=(A=e[56631])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.15:0,T[r+16>>3]=s,s=(A=e[56632])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.06:0,T[r+24>>3]=s,s=(A=e[56633])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.04:0,T[r+32>>3]=s,s=(A=e[56634])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.022:0,T[r+40>>3]=s,s=(A=e[56635])>>>0<=87?.001*+k[111136+(A<<1)>>1]*.03:0,T[r+48>>3]=s,s=(A=(0|(A=e[56657]-3|0))<=0?57:A)>>>0<=87?.001*+k[111136+(A<<1)>>1]:0,T[27977]=s/+e[55964],M=T[27968],b=T[27967],A=1;t=(l=A<<6)+223664|0,I=(s=Gr(b*+e[(f=(c=A<<2)+226428|0)+48>>2]))*-s,T[t+216>>3]=I,s*=As(M*+e[f+8>>2]),s+=s,T[t+208>>3]=s,oe=1-s-I,T[t+200>>3]=oe,A>>>0<=5&&(f=e[(c=c+226428|0)+208>>2],t=l+223664|0,te=(X=Gr(b*+e[c+248>>2]))*As(M*+(0|f)),te+=te,T[t+1488>>3]=te,X*=-X,T[t+1496>>3]=X,pe=1-te-X,T[t+1480>>3]=pe,T[t+256>>3]=.015625*(X-I),T[t+248>>3]=.015625*(te-s),T[t+240>>3]=.015625*(pe-oe)),(0|(A=A+1|0))!=10;);for(X=(s=Gr(b*+e[56619]))*-s,T[27985]=X,te=(s*=As(M*+(0-e[56609]|0)))+s,T[27984]=te,s=1-te-X,T[27983]=s,s!=0&&(s=1/s,T[27983]=s,X*=I=-s,T[27985]=X,te*=I,T[27984]=te),oe=(I=Gr(b*+e[56669]))*-I,T[28145]=oe,pe=(I*=As(M*+(0-e[56659]|0)))+I,T[28144]=pe,I=1-pe-oe,T[28143]=I,I!=0&&(I=1/I,T[28143]=I,oe*=He=-I,T[28145]=oe,pe*=He,T[28144]=pe),T[27990]=.015625*(oe-X),T[27989]=.015625*(pe-te),T[27988]=.015625*(I-s),A=0;c=e[(l=226428+(A<<2)|0)+8>>2],t=223664+(A<<6)|0,I=(s=Gr(b*+e[l+128>>2]))*As(M*+(0|c)),I+=I,T[t+848>>3]=I,s*=-s,T[t+856>>3]=s,T[t+840>>3]=T[r+(A<<3)>>3]*(1-I-s),(0|(A=A+1|0))!=7;);if(b=(s=Gr(b*+(e[55918]/2|0)))*-s,T[28137]=b,s*=As(0*M),s+=s,T[28136]=s,T[28135]=1-s-b,A=1,(0|_e())!=1)continue;break C}break}A=1,e[54741]>0&&(e[54741]=0,e[55963]=64,e[56606]=l+-64,e[55923]=64,(0|_e())==1)||(A=0)}else{if(H=G=H-752|0,!t){eA(A=G+376|0,0,376),vr(m,c,A),vr(m,l,A=eA(G,0,376)),t=e[50768]+O(e[50769],f>>>6|0)|0,e[50768]=t,t>>=8,t=e[50770]+(O(e[50771],u[e[50766]+((0|t)>=127?127:t)|0])>>8)|0,e[50767]=t,T[A+368>>3]=(0|t)/4096|0,e[50773]&&(T[A+736>>3]=T[A+736>>3]/5,T[A+360>>3]=T[A+360>>3]/5),t=e[e[56797]+4>>2],$A[e[e[t>>2]>>2]](t,A+376|0,110,110,-1,0),l=f-110|0,m=e[50758],t=e[50757];h:{for(;;){if((0|m)!=(0|(t=(t+1|0)%170|0))&&!((z=e[216192+(t<<4)>>2])-5>>>0<2)){if(c=1,(0|z)!=1)continue;break h}break}l=f-220|0,c=0}(0|l)>0&&(t=e[e[56797]+4>>2],$A[e[e[t>>2]>>2]](t,A,l,l||1,-1,0)),c||(e[A+352>>2]=0,e[A+356>>2]=0,T[A>>3]=T[A+368>>3],t=e[e[56797]+4>>2],$A[e[e[t>>2]>>2]](t,A,55,55,-1,0),e[A+360>>2]=0,e[A+364>>2]=0,t=e[e[56797]+4>>2],$A[e[e[t>>2]>>2]](t,A,55,55,-1,0))}A=e[e[56797]+8>>2],t=e[51290],f=0|$A[e[e[A>>2]>>2]](A,e[54046]-t>>>1|0,t),m=e[51290];h:if(f&&!((0|(t=e[50776]))>=(0|(Ie=e[50773]))))for(Ge=e[50777],Je=(0|O(Ge,3))/-4|0,s=.0009765625*+e[50780],z=e[50772],l=e[50778],dA=e[50775],Y=e[50774],A=0;;){if(W=u[z+(c=t+l|0)|0],Y?W=O(Y,W<<24>>24):(t=t+1|0,e[50776]=t,W|=d[z+(c=t+l|0)|0]<<8),W=Ae(M=s*+(0|W))<2147483648?~~M:-2147483648,k[(Oe=m+(A<<1)|0)>>1]=y[Oe>>1]+((0|O(W,dA))/40|0),(0|c)>=(0|Ge)&&(l=l+Je|0,e[50778]=l),t=t+1|0,e[50776]=t,(0|t)>=(0|Ie))break h;if(!(f>>>0>(A=A+1|0)>>>0))break}A=m+(f<<1)|0,e[51290]=A,H=G+752|0,A=$[54046]<=A>>>0}if(H=r- -64|0,A)break n;break o}e[50781]=A||100;break o}jA(A,e[r+8>>2]);break o}A=e[r+8>>2],e[50759]=SA(203816,A,1344),e[50801]=e[A+108>>2]?105792:106064,A=(0|O(e[A+120>>2],26))/100|0,e[33038]=A,(0|(o=e[50754]))<=11e3&&(d[203300]=1,e[33038]=A<<1),e[54728]=e[50982],A=e[50979],t=e[50978],eA(205184,0,11e3),e[51293]=0,A=(t=(c=(0|(l=e[50789]))>0)?130:(0|t)>=5499?5499:t)?c?l:(0|A)>=100?100:A:0,e[50755]=A,t=(0|O(t,o))/1e3|0,e[51292]=t,e[54729]=(0|A)>20?t<<1:A?t:0,e[33037]=(0|O(500-A|0,(0|O(u[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16|0))/500,A=256,(0|(t=(0|(t=e[50785]))>=101?101:t))>=51&&(A=256+(((O(t,25)-1250&65535)>>>0)/50|0)|0),k[101990]=(0|O(k[102026],A))/256,k[101991]=(0|O(k[102027],A))/256,k[101992]=(0|O(k[102028],A))/256,k[101993]=(0|O(k[102029],A))/256,k[101994]=(0|O(k[102030],A))/256,k[101995]=(0|O(k[102031],A))/256,A=e[50790],k[101999]=(0|O(k[102035],O(A,-6)+256|0))/256,k[102e3]=(0|O(k[102036],O(A,-3)+256|0))/256,Kr(8,0,e[50986],0,e[51290]),FA(e[r+8>>2]);break o}if(!e[50759])break o;t=e[r+12>>2],r=e[r+8>>2],e[55911]=0,e[55915]=A?2097152/(0|A)|0:0,e[55910]=r,A=(0|O(t,e[33037]))/16|0,e[50779]=A,e[50780]=(0|O(O(A,e[50985]),15))/100;break o}Kr(t>>8,A,e[r+8>>2],e[r+12>>2],c)}o=0,A=e[50757]+1|0,e[50757]=(0|A)<=169?A:0}if(d[218920]=o,!((c=e[51290])>>>0<$[54046]))break}l=e[34391],r=(e[51290]-l|0)/2|0,e[34439]=r+e[34439],t=e[34436],A=e[34388]+O(t,36)|0,e[A+4>>2]=0,e[A>>2]=0,e[A+24>>2]=e[34438];a:if(2&(A=e[32538])){if(c=e[34388],(-2&A)==2&&(!(r=t?c:0)|e[r>>2]!=8||(0|(r=e[r+28>>2]))!=e[34389]&&(e[34389]=r)),o=1,(0|t)<2)break a;for(;;){r=t?c+O(o,36)|0:0;n:{o:switch(0|A){case 2:case 3:if(!r|e[r>>2]!=8||(0|(r=e[r+28>>2]))==e[34389])break n;e[34389]=r;break n;case 0:break o;default:break n}(A=e[34440])?($A[0|A](l,0,r),t=e[34436],A=e[32538]):A=0}if(!((0|(o=o+1|0))<(0|t)))break}}else if((A=e[34440])&&0|$A[0|A](l,r,e[34388]))break r;if(!RA(1)&&!(170-((0|(A=e[50757]-e[50758]|0))<=0?A+170|0:A)|0||(A=e[34388],e[A>>2]=0,e[A+4>>2]=e[34437],e[A+24>>2]=e[34438],vA(1))))break}if(t=0,2&u[130152]||!(A=e[34440])||!(0|$A[0|A](0,0,e[34388])))break A}vA(2),t=268439295}if((0|t)<=268437502){if(!t|(0|t)==268436479|(0|t)!=268437247)break e;return}}}function RA(A){var t,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0;H=t=H-720|0,r=e[47198],A||(e[36443]=0,e[36442]=1,e[36444]=0,e[36440]=0,e[36441]=0,A=e[50758],e[36454]=A,e[36427]=-1,e[36424]=-1,e[36446]=0,e[36447]=0,e[36439]=-1,e[36426]=0,e[36455]=A,e[36448]=0,e[36449]=0,e[36450]=0,e[36451]=0,e[36452]=0,e[36453]=0,ne(),e[36427]=-1,A=216192+(e[50758]<<4)|0,e[A>>2]=5,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,e[36426]=0,e[36438]&&(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0));e:{A:if(!((0|(A=e[36442]))>997|e[36423]<=(0|A)))for(W=r>>>1&1,Y=t+48|4,X=t+348|0,te=t+652|0,oe=e[32322],M=e[32320],pe=t+60|0,Ie=t+648|0,Ge=t+56|0,Oe=t+620|0,G=t- -64|0;;){if(s=145840+(A<<5)|0,!(A=e[50756])|!e[A>>2]||(e[t+12>>2]=0,Fs(A=t+16|0,e[s+8>>2],s,0,t+12|0),r=jn(A),o=u[s+17|0],A=216192+(e[50758]<<4)|0,e[A>>2]=16,e[A+8>>2]=o,e[A+4>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),A=1,(0|(o=(0|(r=e[50757]-e[50758]|0))<=0?r+170|0:r))<=(0|((r=u[s+17|0])?(0|r)==2?25:15:10)))break e;if(I=e[36442],2&u[0|s])for(b=2047&y[s+4>>1];;){if(o=e[36443],f=127&(r=e[198304+(o<<2)>>2])){A=r>>>8|0,e[36443]=o+1;r:{a:{n:switch((31&r)-2|0){case 0:jA(96&r|8,A),Is(2);break r;case 5:if((0|A)>=e[34064]||!e[(f=(o=A<<4)+136272|0)+4>>2])break r;qt(10,0),A=216192+(e[50758]<<4)|0,e[A>>2]=6,f=e[f+4>>2],e[A+8>>2]=e[8+(o+136272|0)>>2]+44,e[A+12>>2]=5376,e[A+4>>2]=f;break a;case 8:if((0|((0|(o=e[50757]-e[50758]|0))<=0?o+170:o))<6)break r;f=e[47353],o=216192+(e[50758]<<4)|0,e[o>>2]=778,e[o+8>>2]=A,e[o+4>>2]=f+b&16777215;break a;case 9:if((0|((0|(o=e[50757]-e[50758]|0))<=0?o+170:o))<6)break r;f=e[33284],o=216192+(e[50758]<<4)|0,e[o>>2]=1034,e[o+8>>2]=A,e[o+4>>2]=f+1&16777215;break a;default:break n}qt(10,0),o=216192+(e[50758]<<4)|0,e[o>>2]=12,e[o+8>>2]=A,e[o+4>>2]=f}A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}if(!(128&r))continue}break}(A=u[s+20|0])&&(1&d[e[47192]+48|0]&u[s+17|0]==2|1&d[e[s+8>>2]+7|0]||(e[36426]=0),r=e[47353]+(2047&y[s+4>>1])|0,e[36445]=r,4&A&&((0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(o=e[47568],A=216192+(e[50758]<<4)|0,e[A>>2]=522,e[A+8>>2]=o,e[A+4>>2]=16777215&r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)),1&d[s+20|0]&&(r=y[s+4>>1],o=e[36444],e[36444]=o+1,(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(b=e[36445],f=e[47355],A=216192+(e[50758]<<4)|0,e[A>>2]=266,e[A+8>>2]=o+f,e[A+4>>2]=16777215&b|(63488&r)<<13,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0))),(0|(A=e[36441]))>0&&(r=216192+(e[36425]<<4)|0,e[r+4>>2]||(e[r+4>>2]=A),e[36441]=0),A=I+1<<5,r=I-1<<5,!(o=u[s+18|0])|2&u[e[s+8>>2]+7|0]||qt(o,1),f=A+145840|0,l=r+145840|0,b=1;r:{a:{if(e[47198]&&(m=e[s+8>>2],u[m+10|0]!=15)){n:if(u[s+17|0]==2)switch(u[l+17|0]-3|0){case 0:case 5:break a;default:break n}b=0,Fs(t+704|0,m,s,W,0),(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(r=e[36445],A=216192+(e[50758]<<4)|0,e[A>>2]=1802,e[A+4>>2]=16777215&r,r=e[t+708>>2],e[A+8>>2]=e[t+704>>2],e[A+12>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}n:switch(u[s+17|0]){case 0:qt(e[s+12>>2],0),d[s+23|0]=u[e[s+8>>2]+14|0];break r;case 4:r=e[s+8>>2],(0|(A=u[f+17|0]))==2|!u[f+20|0]&(0|A)==3||(k[s>>1]=8192|y[s>>1]),2&u[r+7|0]&&(e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[G>>2]=0,e[G+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,KA(0,1,s,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[G>>2]=e[t+640>>2],e[36424]<0&&(o=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=o,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,b=u[f+22|0],o=u[f+21|0],f=e[129280+(u[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(m=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=m),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,b|=o<<16,o=(0|o)==255,e[A+12>>2]=o?3604556:b,e[A+8>>2]=o?M:f,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),mA(r,0,t+48|0,s,0)),KA(0,0,s,t+552|0,145784),e[t+552>>2]=4|e[t+552>>2],(0|(A=e[36440]))<=0||(0|(r=e[36424]))<0||(e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],ne(),e[36427]=-1,e[36422]=0,(A=e[t+624>>2])&&(o=A,A=e[t+644>>2],mr(o,2,e[t+596>>2]<<1,e[t+552>>2],0,A?(A<<5)/100|0:32)),e[36426]=0;break r;case 6:KA(0,0,s,t+552|0,145784),8&u[0|s]&&(A=e[s+12>>2],(0|(r=e[36440]))<=0||(0|(o=e[36424]))<0||(e[(o=216192+(o<<4)|0)+4>>2]||(e[o+4>>2]=r),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],ne(),e[36427]=-1,e[36422]=0,(r=e[t+624>>2])&&(o=A,A=e[t+644>>2],mr(r,2,e[t+596>>2]<<1,e[t+552>>2],o,A?(A<<5)/100|0:32))),A=e[s+12>>2],(0|(r=e[36440]))<=0||(0|(o=e[36424]))<0||(e[(o=216192+(o<<4)|0)+4>>2]||(e[o+4>>2]=r),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],ne(),e[36427]=-1,e[36422]=0,(r=e[t+624>>2])&&(o=A,A=e[t+644>>2],mr(r,2,e[t+596>>2]<<1,e[t+552>>2],o,A?(A<<5)/100|0:32)),e[36426]=0;break r;case 5:o=e[s+8>>2],e[Y+40>>2]=0,e[(A=Y)+32>>2]=0,e[A+36>>2]=0,e[A+24>>2]=0,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A+8>>2]=0,e[A+12>>2]=0,e[A>>2]=0,e[A+4>>2]=0,e[t+48>>2]=4;o:{c:{u:{l:switch(u[f+17|0]-2|0){case 0:r=u[s+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=u[s+22|0],m=u[s+21|0],b=e[129280+(u[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=(c=!(255&~m))?M:b,b=1;break c;case 1:break l;default:break u}if(!u[f+20|0]){r=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=u[f+22|0],m=u[f+21|0],b=e[129280+(u[f+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=(c=!(255&~m))?M:b,b=1;break c}}if(b=0,e[36424]>=0)break o;r=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,r=u[s+22|0],m=u[s+21|0],b=e[129280+(u[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=(c=!(255&~m))?M:b,b=0}z=e[50758],e[36424]=z,e[36440]=0,e[(z=216192+(z<<4)|0)>>2]=9,e[z+4>>2]=0,e[z+12>>2]=c?3604556:255&r|(255&m)<<16,e[z+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}o:if(!(2&u[o+7|0])&u[l+17|0]!=2)8&u[0|s]&&qt(50,0);else{if(KA(0,1,s,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],mA(o,0,t+48|0,s,0),!(8&u[0|s]))break o;qt(25,1),mA(o,0,t+48|0,s,0)}o:if(b){if(e[36455]!=e[36454])break o;e[36455]=e[50758]}else k[s>>1]=8192|y[s>>1];if(KA(0,0,s,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+76>>2]=e[t+636>>2],e[t+80>>2]=e[t+656>>2],mA(o,0,t+48|0,s,0),u[s+20|0]|u[84+(145840+(I<<5)|0)|0]||((0|(A=u[f+17|0]))==7&&(qt(20,0),A=u[f+17|0]),(255&A)!=6))break r;qt(12,0);break r;case 7:o:{c:{u:{l:{i:switch((A=u[f+17|0])-2|0){case 1:break l;case 0:break i;default:break u}r=u[s+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,b=u[s+22|0],A=u[s+21|0],o=e[129280+(u[s+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(m=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=m),r=(m=!(255&~A))?M:o;break c}r=u[f+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,b=u[f+22|0],A=u[f+21|0],o=e[129280+(u[f+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(m=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=m),r=(m=!(255&~A))?M:o;break c}if(e[36424]>=0)break o;r=u[s+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,b=u[s+22|0],A=u[s+21|0],o=e[129280+(u[s+16|0]<<2)>>2],(0|(r=e[36424]))<0|(0|(m=e[36440]))<=0||e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=m),r=(m=!(255&~A))?M:o}o=e[50758],e[36424]=o,e[36440]=0,e[(o=216192+(o<<4)|0)>>2]=9,e[o+4>>2]=0,e[o+12>>2]=m?3604556:(255&A)<<16|b,e[o+8>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,A=u[f+17|0]}o:{c:{u:switch((255&A)-2|0){case 1:if(u[f+20|0])break c;break;case 0:break u;default:break c}if(e[36455]!=e[36454])break o;e[36455]=e[50758];break o}k[s>>1]=8192|y[s>>1]}KA(0,0,s,t+552|0,145784),e[t+56>>2]=0,e[t+60>>2]=0,e[G>>2]=0,e[G+4>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[t+88>>2]=0,e[t+56>>2]=e[t+620>>2],e[G>>2]=e[t+640>>2],e[t+80>>2]=e[t+656>>2],e[t+48>>2]=0,e[t+52>>2]=0,e[t+76>>2]=e[t+636>>2],e[t+92>>2]=e[t+596>>2]<<1,8&u[0|s]&&mA(e[s+8>>2],0,t+48|0,s,0),mA(e[s+8>>2],0,t+48|0,s,0);break r;case 8:if(e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[G>>2]=0,e[G+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,1&d[0|s]||(r=u[s+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,o=u[s+22|0],r=u[s+21|0],b=e[129280+(u[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(m=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=m),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,o|=r<<16,r=(0|r)==255,e[A+12>>2]=r?3604556:o,e[A+8>>2]=r?M:b,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),u[l+17|0]==8&&(e[36426]=0),KA(0,0,s,t+552|0,145784),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+92>>2]=e[t+596>>2]<<1,u[f+17|0]==2){e[36455]==e[36454]&&(e[36455]=e[50758]),mA(e[s+8>>2],0,t+48|0,s,0);break r}if(!(!(1&d[0|s])|u[l+17|0]!=2)){mA(e[s+8>>2],0,t+48|0,s,0);break r}e[36426]=0,mA(e[s+8>>2],0,t+48|0,s,0),e[36426]=0;break r;case 3:e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[G>>2]=0,e[G+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,o=e[e[s+8>>2]+4>>2],1&d[0|s]||(r=u[s+19|0],A=e[50758],e[36425]=A,e[36441]=0,e[(A=216192+(A<<4)|0)+12>>2]=r,e[A+8>>2]=0,e[A>>2]=8,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,b=u[s+22|0],r=u[s+21|0],m=e[129280+(u[s+16|0]<<2)>>2],(0|(A=e[36424]))<0|(0|(c=e[36440]))<=0||e[(A=216192+(A<<4)|0)+4>>2]||(e[A+4>>2]=c),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,b|=r<<16,r=(0|r)==255,e[A+12>>2]=r?3604556:b,e[A+8>>2]=r?M:m,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),u[l+17|0]==8&&(e[36426]=0),u[f+17|0]!=2|e[36455]!=e[36454]||(e[36455]=e[50758]),KA(0,0,s,t+552|0,145784),(0|(A=e[t+584>>2]-u[s+18|0]|0))>0&&qt(A,1),e[t+56>>2]=e[t+620>>2],e[t+64>>2]=e[t+640>>2],e[t+76>>2]=e[t+636>>2],e[t+80>>2]=e[t+656>>2],e[t+92>>2]=e[t+596>>2]<<1,mA(e[s+8>>2],0,t+48|0,s,o<<24>>31&5);break r;case 2:break n;default:break r}m=e[s+8>>2]}I=u[s+3|0],e[t+88>>2]=0,e[t+92>>2]=0,e[t+80>>2]=0,e[t+84>>2]=0,e[t+72>>2]=0,e[t+76>>2]=0,e[G>>2]=0,e[G+4>>2]=0,e[t+56>>2]=0,e[t+60>>2]=0,e[t+48>>2]=0,e[t+52>>2]=0,KA(0,0,s,t+552|0,145784),A=e[t+628>>2],e[t+56>>2]=A,e[t+92>>2]=e[t+596>>2]<<1;a:{if(!A||(c=0,o=Ie,r=pe,2&u[t+552|0])){if(u[l+17|0]?(c=0,KA(0,0,l,t+400|0,0),A=e[t+476>>2],e[t+56>>2]=A,!A|!(2&u[t+400|0])||(e[t+72>>2]=e[t+496>>2],c=1),r=e[t+512>>2],e[t+84>>2]=e[t+508>>2],e[t+88>>2]=r):c=0,A)break a;e[t+48>>2]=1,e[t+52>>2]=1,o=Oe,r=Ge}e[r>>2]=e[o>>2]}e[t+64>>2]=e[t+640>>2],r=u[s+16|0],A=0,(o=u[s+7|0])?(Nn(o,t+96|0),r=Ri(e[t+220>>2]),(0|(o=e[t+224>>2]))<=0||(A=Ri(o))):r=e[129280+(r<<2)>>2],e[36455]==e[36454]&&(e[36455]=e[50758]),o=(o=15&I)>>>0<2?1:o>>>0>6?3:2;a:{n:switch(u[l+17|0]-3|0){case 2:case 4:c=u[s+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)+12>>2]=c,e[l+8>>2]=A,e[l>>2]=8,e[l+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,c=u[s+22|0],l=u[s+21|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?M:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,mA(m,1,t+48|0,s,o);break a;case 0:case 5:c=u[s+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)+12>>2]=c,e[l+8>>2]=A,e[l>>2]=8,e[l+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,mA(m,1,t+48|0,s,o),c=u[s+22|0],l=u[s+21|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?M:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0;break a;default:break n}c?(c=u[s+22|0],(0|(l=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+4>>2]=l),l=e[50758],e[36424]=l,e[36440]=0,e[(l=216192+(l<<4)|0)>>2]=9,e[l+4>>2]=0,e[l+12>>2]=(c|c<<16)-983040,e[l+8>>2]=oe,l=e[50758]+1|0,e[50758]=(0|l)<=169?l:0,c=u[s+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)>>2]=8,e[l+4>>2]=0,e[l+12>>2]=c-1,e[l+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,mA(m,1,t+48|0,s,o),l=u[s+21|0],c=u[s+22|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?M:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0):(1&d[0|s]||(c=u[s+19|0],l=e[50758],e[36425]=l,e[36441]=0,e[(l=216192+(l<<4)|0)+12>>2]=c,e[l+8>>2]=A,e[l>>2]=8,e[l+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,c=u[s+22|0],l=u[s+21|0],(0|(A=e[36440]))<=0||(0|(I=e[36424]))<0||e[(I=216192+(I<<4)|0)+4>>2]||(e[I+4>>2]=A),A=e[50758],e[36424]=A,e[36440]=0,e[(A=216192+(A<<4)|0)>>2]=9,e[A+4>>2]=0,c|=l<<16,l=(0|l)==255,e[A+12>>2]=l?3604556:c,e[A+8>>2]=l?M:r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),mA(m,1,t+48|0,s,o))}!e[47198]|1^b||(Fs(t+704|0,e[s+8>>2],s,W,0),(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))<6||(r=e[36445],A=216192+(e[50758]<<4)|0,e[A>>2]=1802,e[A+4>>2]=16777215&r,r=e[t+708>>2],e[A+8>>2]=e[t+704>>2],e[A+12>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)),e[t+56>>2]=e[t+620>>2],e[t+84>>2]=0,e[t+88>>2]=0,e[t+64>>2]=e[t+640>>2],r=e[t+632>>2],e[t+68>>2]=r,A=te;a:{if(!r&&(!u[f+17|0]||(e[t+72>>2]=0,KA(0,0,f,t+248|0,0),e[t+52>>2]=1,A=e[t+368>>2],e[t+84>>2]=e[t+364>>2],e[t+88>>2]=A,r=e[t+328>>2],e[t+68>>2]=r,A=X,!r)))break a;e[t+72>>2]=e[A>>2]}mA(m,2,t+48|0,s,o)}if(A=e[36442]+1|0,e[36442]=A,(0|A)>997)break A;if(!(e[36423]>(0|A)))break}(0|(A=e[36440]))<=0||(0|(r=e[36424]))<0||(e[(r=216192+(r<<4)|0)+4>>2]||(e[r+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],ne(),e[36427]=-1,A=0,e[36423]<=0||(r=e[47568],o=e[33284],(0|((0|(A=e[50757]-e[50758]|0))<=0?A+170:A))>=6&&(A=216192+(e[50758]<<4)|0,e[A>>2]=1290,e[A+8>>2]=r,e[A+4>>2]=16777215&o,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),e[36423]=0,A=0)}return H=t+720|0,A}function HA(A,t,r,s){var o,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0,PA=0,OA=0,tt=0;H=o=H-48|0;e:{if(r>>>0<=2){for(dA=e[(r<<=2)+124732>>2],CA=e[r+124720>>2];(0|(r=e[t+4>>2]))==e[t+104>>2]?r=Me(t):(e[t+4>>2]=r+1,r=u[0|r]),(0|r)==32|r-9>>>0<5;);z=1;A:{r:switch(r-43|0){case 0:case 2:break r;default:break A}z=(0|r)==45?-1:1,(0|(r=e[t+4>>2]))==e[t+104>>2]?r=Me(t):(e[t+4>>2]=r+1,r=u[0|r])}A:{r:{for(;;){if(d[f+84056|0]==(32|r)){if(f>>>0>6||((0|(r=e[t+4>>2]))==e[t+104>>2]?r=Me(t):(e[t+4>>2]=r+1,r=u[0|r])),(0|(f=f+1|0))!=8)continue;break r}break}if((0|f)!=3){if((0|f)==8)break r;if(!s|f>>>0<4)break A;if((0|f)==8)break r}if((0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1),!(!s|f>>>0<4))for(r=(0|r)<0;r||(e[t+4>>2]=e[t+4>>2]-1),(f=f-1|0)>>>0>3;);}H=M=H-16|0,K(Ce(Ce(0|z)*Ce(1/0))),(t=2147483647&(m=B(2)))-8388608>>>0<=2130706431?(r=t,r<<=25,s=(t=t>>>7|0)+1065353216|0):(r=m<<25,s=m>>>7|2147418112,t>>>0>=2139095040||(r=0,s=0,t&&(Pt(M,r=t,0,0,0,(t=be(t))+81|0),b=e[M>>2],I=e[M+4>>2],r=e[M+8>>2],s=65536^e[M+12>>2]|16265-t<<16))),e[o>>2]=b,e[o+4>>2]=I,e[o+8>>2]=r,e[o+12>>2]=-2147483648&m|s,H=M+16|0,b=e[o+8>>2],I=e[o+12>>2],m=e[o>>2],G=e[o+4>>2];break e}A:{r:{a:if(!f){for(f=0;;){if(d[f+84473|0]!=(32|r))break a;if(f>>>0>1||((0|(r=e[t+4>>2]))==e[t+104>>2]?r=Me(t):(e[t+4>>2]=r+1,r=u[0|r])),(0|(f=f+1|0))==3)break}break r}a:switch(0|f){case 0:if((0|r)==48){if((0|(f=e[t+4>>2]))==e[t+104>>2]?f=Me(t):(e[t+4>>2]=f+1,f=u[0|f]),(-33&f)==88){H=c=H-432|0,(0|(r=e[t+4>>2]))==e[t+104>>2]?f=Me(t):(e[t+4>>2]=r+1,f=u[0|r]);n:{o:{for(;;){if((0|f)!=48){if((0|f)!=46)break n;if((0|(r=e[t+4>>2]))!=e[t+104>>2]){e[t+4>>2]=r+1,f=u[0|r];break o}break}(0|(r=e[t+4>>2]))!=e[t+104>>2]?(Je=1,e[t+4>>2]=r+1,f=u[0|r]):(Je=1,f=Me(t))}f=Me(t)}if(X=1,(0|f)==48){for(;te=(r=te)-1|0,oe=oe-!r|0,(0|(r=e[t+4>>2]))==e[t+104>>2]?f=Me(t):(e[t+4>>2]=r+1,f=u[0|r]),(0|f)==48;);Je=1}}for(G=1073676288;;){n:{r=32|f;o:{if(!((PA=f-48|0)>>>0<10)){if((0|f)!=46&r-97>>>0>=6)break n;if((0|f)==46){if(X)break n;X=1,te=b,oe=I;break o}}r=(0|f)>57?r-87|0:PA,(0|I)<=0&b>>>0<=7|(0|I)<0?l=r+(l<<4)|0:!I&b>>>0<=28?(os(c+48|0,r),je(c+32|0,Oe,He,m,G,0,0,0,1073414144),Oe=e[c+32>>2],He=e[c+36>>2],m=e[c+40>>2],G=e[c+44>>2],je(c+16|0,e[c+48>>2],e[c+52>>2],e[c+56>>2],e[c+60>>2],Oe,He,m,G),Ot(c,e[c+16>>2],e[c+20>>2],e[c+24>>2],e[c+28>>2],M,Y,Ie,Ge),Ie=e[c+8>>2],Ge=e[c+12>>2],M=e[c>>2],Y=e[c+4>>2]):W|!r||(je(c+80|0,Oe,He,m,G,0,0,0,1073610752),Ot(c- -64|0,e[c+80>>2],e[c+84>>2],e[c+88>>2],e[c+92>>2],M,Y,Ie,Ge),Ie=e[c+72>>2],Ge=e[c+76>>2],W=1,M=e[c+64>>2],Y=e[c+68>>2]),I=(b=b+1|0)?I:I+1|0,Je=1}(0|(r=e[t+4>>2]))!=e[t+104>>2]?(e[t+4>>2]=r+1,f=u[0|r]):f=Me(t);continue}break}n:if(Je){if((0|I)<=0&b>>>0<=7|(0|I)<0)for(m=b,G=I;l<<=4,(0|(m=m+1|0))!=8|(G=m?G:G+1|0););o:{c:{u:{if((-33&f)==80){if(m=Qs(t,s),G=r=me,m|(0|r)!=-2147483648)break o;if(s){if((0|(r=e[t+116>>2]))>0|(0|r)>=0)break u;break c}M=0,Y=0,fs(t,0,0),r=0,t=0;break n}if(m=0,G=0,e[t+116>>2]<0)break o}e[t+4>>2]=e[t+4>>2]-1}m=0,G=0}if(l)if(r=m+((t=X?te:b)<<2)|0,t=(I=(X?oe:I)<<2|t>>>30)+G|0,(b=r-32|0)>>>0>0-dA>>>0&(0|(t=I=(r>>>0>>0?t+1|0:t)-(r>>>0<32)|0))>=0|(0|t)>0)e[56798]=68,os(c+160|0,z),je(c+144|0,e[c+160>>2],e[c+164>>2],e[c+168>>2],e[c+172>>2],-1,-1,-1,2147418111),je(c+128|0,e[c+144>>2],e[c+148>>2],e[c+152>>2],e[c+156>>2],-1,-1,-1,2147418111),M=e[c+128>>2],Y=e[c+132>>2],r=e[c+140>>2],t=e[c+136>>2];else if((0|I)>=(0|(r=(t=dA-226|0)>>31))&t>>>0<=b>>>0|(0|r)<(0|I)){if((0|l)>=0)for(;Ot(c+416|0,M,Y,Ie,Ge,0,0,0,-1073807360),Ot(c+400|0,M,Y,Ie,Ge,(t=r=(0|(t=ii(M,Y,Ie,Ge,1073610752)))>=0)?e[c+416>>2]:M,t?e[c+420>>2]:Y,t?e[c+424>>2]:Ie,t?e[c+428>>2]:Ge),b=(t=b)-1|0,I=I-!t|0,Ie=e[c+408>>2],Ge=e[c+412>>2],M=e[c+400>>2],Y=e[c+404>>2],(0|(l=r|l<<1))>=0;);t=I-((dA>>31)+(b>>>0>>0)|0)|0,(0|(r=(r=32+(b-dA|0)|0)>>>0>>0&(0|(t=r>>>0<32?t+1|0:t))<=0|(0|t)<0?(0|r)>0?r:0:CA))>=113?(os(c+384|0,z),te=e[c+392>>2],oe=e[c+396>>2],Oe=e[c+384>>2],He=e[c+388>>2],m=0,t=0):(Hr(c+352|0,Bs(1,144-r|0)),os(c+336|0,z),Oe=e[c+336>>2],He=e[c+340>>2],te=e[c+344>>2],oe=e[c+348>>2],ho(c+368|0,e[c+352>>2],e[c+356>>2],e[c+360>>2],e[c+364>>2],Oe,He,te,oe),pe=e[c+376>>2],OA=e[c+380>>2],m=e[c+372>>2],t=e[c+368>>2]),ra(c+320|0,(s=!(1&l)&!!(0|hr(M,Y,Ie,Ge,0,0,0,0))&(0|r)<32)+l|0),je(c+304|0,Oe,He,te,oe,e[c+320>>2],e[c+324>>2],e[c+328>>2],e[c+332>>2]),r=t,Ot(c+272|0,e[c+304>>2],e[c+308>>2],e[c+312>>2],e[c+316>>2],t,m,pe,OA),je(c+288|0,Oe,He,te,oe,(t=s)?0:M,t?0:Y,t?0:Ie,t?0:Ge),Ot(c+256|0,e[c+288>>2],e[c+292>>2],e[c+296>>2],e[c+300>>2],e[c+272>>2],e[c+276>>2],e[c+280>>2],e[c+284>>2]),gn(c+240|0,e[c+256>>2],e[c+260>>2],e[c+264>>2],e[c+268>>2],r,m,pe,OA),hr(t=e[c+240>>2],s=e[c+244>>2],r=e[c+248>>2],m=e[c+252>>2],0,0,0,0)||(e[56798]=68),hA(c+224|0,t,s,r,m,b),M=e[c+224>>2],Y=e[c+228>>2],r=e[c+236>>2],t=e[c+232>>2]}else e[56798]=68,os(c+208|0,z),je(c+192|0,e[c+208>>2],e[c+212>>2],e[c+216>>2],e[c+220>>2],0,0,0,65536),je(c+176|0,e[c+192>>2],e[c+196>>2],e[c+200>>2],e[c+204>>2],0,0,0,65536),M=e[c+176>>2],Y=e[c+180>>2],r=e[c+188>>2],t=e[c+184>>2];else Hr(c+112|0,0*+(0|z)),M=e[c+112>>2],Y=e[c+116>>2],r=e[c+124>>2],t=e[c+120>>2]}else{o:{c:{if((0|(r=e[t+116>>2]))>0|(0|r)>=0){if(r=e[t+4>>2],e[t+4>>2]=r-1,!s)break c;if(e[t+4>>2]=r-2,!X)break o;e[t+4>>2]=r-3;break o}if(s)break o}fs(t,0,0)}Hr(c+96|0,0*+(0|z)),M=e[c+96>>2],Y=e[c+100>>2],r=e[c+108>>2],t=e[c+104>>2]}e[o+16>>2]=M,e[o+20>>2]=Y,e[o+24>>2]=t,e[o+28>>2]=r,H=c+432|0,b=e[o+24>>2],I=e[o+28>>2],m=e[o+16>>2],G=e[o+20>>2];break e}e[t+116>>2]<0||(e[t+4>>2]=e[t+4>>2]-1)}f=t,pe=z,c=s,t=0,z=0,H=l=H-8976|0,OA=(PA=0-dA|0)-CA|0;n:{o:{for(;;){if((0|r)!=48){if((0|r)!=46)break n;if((0|(r=e[f+4>>2]))!=e[f+104>>2]){e[f+4>>2]=r+1,r=u[0|r];break o}break}(0|(t=e[f+4>>2]))!=e[f+104>>2]?(e[f+4>>2]=t+1,r=u[0|t]):r=Me(f),t=1}r=Me(f)}if(W=1,(0|r)==48){for(;b=(t=b)-1|0,I=I-!t|0,(0|(t=e[f+4>>2]))==e[f+104>>2]?r=Me(f):(e[f+4>>2]=t+1,r=u[0|t]),(0|r)==48;);t=1}}e[l+784>>2]=0;n:{o:{c:{u:{l:{if((s=(0|r)==46)|(M=r-48|0)>>>0<=9)for(;;){i:{if(1&s){if(!W){b=m,I=G,W=1;break i}s=!t;break l}G=(m=m+1|0)?G:G+1|0,(0|z)<=2044?(Je=(0|r)==48?Je:m,t=(l+784|0)+(z<<2)|0,X&&(M=(O(e[t>>2],10)+r|0)-48|0),e[t>>2]=M,t=1,X=(r=(0|(s=X+1|0))==9)?0:s,z=r+z|0):(0|r)!=48&&(e[l+8960>>2]=1|e[l+8960>>2],Je=18396)}if((0|(r=e[f+4>>2]))==e[f+104>>2]?r=Me(f):(e[f+4>>2]=r+1,r=u[0|r]),!((s=(0|r)==46)|(M=r-48|0)>>>0<10))break}if(b=W?b:m,I=W?I:G,!(!t|(-33&r)!=69)){if(M=Qs(f,c),Y=t=me,!(M|(0|t)!=-2147483648)){if(!c)break c;M=0,Y=0,e[f+116>>2]<0||(e[f+4>>2]=e[f+4>>2]-1)}I=I+Y|0,I=(b=b+M|0)>>>0>>0?I+1|0:I;break o}if(s=!t,(0|r)<0)break u}e[f+116>>2]<0||(e[f+4>>2]=e[f+4>>2]-1)}if(!s)break o;e[56798]=28}m=0,G=0,fs(f,0,0),r=0,t=0;break n}if(t=e[l+784>>2])if(m>>>0>9&(0|G)>=0|(0|G)>0|(0|m)!=(0|b)|(0|I)!=(0|G)|(t>>>CA|0?(0|CA)<=30:0))if(b>>>0>PA>>>1>>>0&(0|I)>=0|(0|I)>0)e[56798]=68,os(l+96|0,pe),je(l+80|0,e[l+96>>2],e[l+100>>2],e[l+104>>2],e[l+108>>2],-1,-1,-1,2147418111),je(l- -64|0,e[l+80>>2],e[l+84>>2],e[l+88>>2],e[l+92>>2],-1,-1,-1,2147418111),m=e[l+64>>2],G=e[l+68>>2],r=e[l+76>>2],t=e[l+72>>2];else if((r=b>>>0<(t=dA-226|0)>>>0)&(0|I)<=(0|(t>>=31))|(0|t)>(0|I))e[56798]=68,os(l+144|0,pe),je(l+128|0,e[l+144>>2],e[l+148>>2],e[l+152>>2],e[l+156>>2],0,0,0,65536),je(l+112|0,e[l+128>>2],e[l+132>>2],e[l+136>>2],e[l+140>>2],0,0,0,65536),m=e[l+112>>2],G=e[l+116>>2],r=e[l+124>>2],t=e[l+120>>2];else{if(X){if((0|X)<=8){for(f=e[(t=(l+784|0)+(z<<2)|0)>>2];f=O(f,10),(0|(X=X+1|0))!=9;);e[t>>2]=f}z=z+1|0}if(W=b,!((0|Je)>(0|b)|(0|Je)>=9|(0|b)>17)){if((0|W)==9){os(l+192|0,pe),ra(l+176|0,e[l+784>>2]),je(l+160|0,e[l+192>>2],e[l+196>>2],e[l+200>>2],e[l+204>>2],e[l+176>>2],e[l+180>>2],e[l+184>>2],e[l+188>>2]),m=e[l+160>>2],G=e[l+164>>2],r=e[l+172>>2],t=e[l+168>>2];break n}if((0|W)<=8){os(l+272|0,pe),ra(l+256|0,e[l+784>>2]),je(l+240|0,e[l+272>>2],e[l+276>>2],e[l+280>>2],e[l+284>>2],e[l+256>>2],e[l+260>>2],e[l+264>>2],e[l+268>>2]),os(l+224|0,e[124720+(0-W<<2)>>2]),wr(l+208|0,e[l+240>>2],e[l+244>>2],e[l+248>>2],e[l+252>>2],e[l+224>>2],e[l+228>>2],e[l+232>>2],e[l+236>>2]),m=e[l+208>>2],G=e[l+212>>2],r=e[l+220>>2],t=e[l+216>>2];break n}if(t=27+(O(W,-3)+CA|0)|0,!((r=e[l+784>>2])>>>t|0&&(0|t)<=30)){os(l+352|0,pe),ra(l+336|0,r),je(l+320|0,e[l+352>>2],e[l+356>>2],e[l+360>>2],e[l+364>>2],e[l+336>>2],e[l+340>>2],e[l+344>>2],e[l+348>>2]),os(l+304|0,e[124648+(W<<2)>>2]),je(l+288|0,e[l+320>>2],e[l+324>>2],e[l+328>>2],e[l+332>>2],e[l+304>>2],e[l+308>>2],e[l+312>>2],e[l+316>>2]),m=e[l+288>>2],G=e[l+292>>2],r=e[l+300>>2],t=e[l+296>>2];break n}}for(;!e[(l+784|0)+((z=(r=z)-1|0)<<2)>>2];);if(X=0,t=(0|W)%9|0){if(s=0,t=(0|W)<0?t+9|0:t,r){for(I=1e9/(0|(b=e[124720+(0-t<<2)>>2]))|0,M=0,f=0;m=(m=M)+(z=((G=e[(M=(l+784|0)+(f<<2)|0)>>2])>>>0)/(b>>>0)|0)|0,e[M>>2]=m,s=(m=!m&(0|s)==(0|f))?s+1&2047:s,W=m?W-9|0:W,M=O(I,G-O(b,z)|0),(0|(f=f+1|0))!=(0|r););M&&(e[(l+784|0)+(r<<2)>>2]=M,r=r+1|0)}else r=0;W=9+(W-t|0)|0}else s=0;for(;;){f=(l+784|0)+(s<<2)|0;o:{for(;;){if(((0|W)!=36|$[f>>2]>=10384593)&(0|W)>=36)break o;for(z=r+2047|0,M=0,t=r;r=t,b=M,M=(t=e[(z=(l+784|0)+((m=2047&z)<<2)|0)>>2])<<29,t=G=t>>>3|0,!(I=(b=b+M|0)>>>0>>0?t+1|0:t)&b>>>0<1000000001?M=0:b=(t=b)-st(M=Ki(t,I,1e9),me,1e9,0)|0,e[z>>2]=b,t=(0|m)!=(r-1&2047)||(0|s)==(0|m)||b?r:m,z=m-1|0,(0|s)!=(0|m););if(X=X-29|0,M)break}(0|(s=s-1&2047))==(0|t)&&(f=r=(b=l+784|0)+((t+2046&2047)<<2)|0,I=e[r>>2],r=t-1&2047,e[f>>2]=I|e[b+(r<<2)>>2]),W=W+9|0,e[(l+784|0)+(s<<2)>>2]=M;continue}break}o:{c:for(;;){for(b=r+1&2047,M=(l+784|0)+((r-1&2047)<<2)|0;;){m=(0|W)>45?9:1;u:{for(;;){t=s,f=0;l:{for(;;){if((0|(s=t+f&2047))!=(0|r)&&!((s=e[(l+784|0)+(s<<2)>>2])>>>0<(I=e[124672+(f<<2)>>2])>>>0)){if(s>>>0>I>>>0)break l;if((0|(f=f+1|0))!=4)continue}break}if((0|W)==36){for(b=0,I=0,f=0,m=0,G=0;(0|(s=t+f&2047))==(0|r)&&(e[780+(l+((r=r+1&2047)<<2)|0)>>2]=0),ra(l+768|0,e[(l+784|0)+(s<<2)>>2]),je(l+752|0,b,I,m,G,0,0,1342177280,1075633366),Ot(l+736|0,e[l+752>>2],e[l+756>>2],e[l+760>>2],e[l+764>>2],e[l+768>>2],e[l+772>>2],e[l+776>>2],e[l+780>>2]),m=e[l+744>>2],G=e[l+748>>2],b=e[l+736>>2],I=e[l+740>>2],(0|(f=f+1|0))!=4;);if(os(l+720|0,pe),je(l+704|0,b,I,m,G,e[l+720>>2],e[l+724>>2],e[l+728>>2],e[l+732>>2]),m=e[l+712>>2],G=e[l+716>>2],b=0,I=0,M=e[l+704>>2],Y=e[l+708>>2],(0|(s=(z=(0|(f=(c=X+113|0)-dA|0))<(0|CA))?(0|f)>0?f:0:CA))<=112)break u;break o}}if(X=m+X|0,s=r,(0|t)!=(0|r))break}for(G=1e9>>>m|0,z=~(-1<>2])>>>m|0)|0,e[f>>2]=I,s=(I=!I&(0|t)==(0|s))?s+1&2047:s,W=I?W-9|0:W,f=O(G,c&z),(0|r)!=(0|(t=t+1&2047)););if(!f)continue;if((0|s)!=(0|b)){e[(l+784|0)+(r<<2)>>2]=f,r=b;continue c}e[M>>2]=1|e[M>>2];continue}break}break}Hr(l+656|0,Bs(1,225-s|0)),ho(l+688|0,e[l+656>>2],e[l+660>>2],e[l+664>>2],e[l+668>>2],M,Y,m,G),Oe=e[l+696>>2],He=e[l+700>>2],Ie=e[l+688>>2],Ge=e[l+692>>2],Hr(l+640|0,Bs(1,113-s|0)),Ms(l+672|0,M,Y,m,G,e[l+640>>2],e[l+644>>2],e[l+648>>2],e[l+652>>2]),gn(l+624|0,M,Y,m,G,b=e[l+672>>2],I=e[l+676>>2],te=e[l+680>>2],oe=e[l+684>>2]),Ot(l+608|0,Ie,Ge,Oe,He,e[l+624>>2],e[l+628>>2],e[l+632>>2],e[l+636>>2]),m=e[l+616>>2],G=e[l+620>>2],M=e[l+608>>2],Y=e[l+612>>2]}if((0|(W=t+4&2047))!=(0|r)){o:if((W=e[(l+784|0)+(W<<2)>>2])>>>0<=499999999){if(!W&(t+5&2047)==(0|r))break o;Hr(l+496|0,.25*+(0|pe)),Ot(l+480|0,b,I,te,oe,e[l+496>>2],e[l+500>>2],e[l+504>>2],e[l+508>>2]),te=e[l+488>>2],oe=e[l+492>>2],b=e[l+480>>2],I=e[l+484>>2]}else(0|W)==5e8?(tt=+(0|pe),(t+5&2047)!=(0|r)?(Hr(l+560|0,.75*tt),Ot(l+544|0,b,I,te,oe,e[l+560>>2],e[l+564>>2],e[l+568>>2],e[l+572>>2]),te=e[l+552>>2],oe=e[l+556>>2],b=e[l+544>>2],I=e[l+548>>2]):(Hr(l+528|0,.5*tt),Ot(l+512|0,b,I,te,oe,e[l+528>>2],e[l+532>>2],e[l+536>>2],e[l+540>>2]),te=e[l+520>>2],oe=e[l+524>>2],b=e[l+512>>2],I=e[l+516>>2])):(Hr(l+592|0,.75*+(0|pe)),Ot(l+576|0,b,I,te,oe,e[l+592>>2],e[l+596>>2],e[l+600>>2],e[l+604>>2]),te=e[l+584>>2],oe=e[l+588>>2],b=e[l+576>>2],I=e[l+580>>2]);(0|s)>111||(Ms(l+464|0,b,I,te,oe,0,0,0,1073676288),hr(e[l+464>>2],e[l+468>>2],e[l+472>>2],e[l+476>>2],0,0,0,0)||(Ot(l+448|0,b,I,te,oe,0,0,0,1073676288),te=e[l+456>>2],oe=e[l+460>>2],b=e[l+448>>2],I=e[l+452>>2]))}Ot(l+432|0,M,Y,m,G,b,I,te,oe),gn(l+416|0,e[l+432>>2],e[l+436>>2],e[l+440>>2],e[l+444>>2],Ie,Ge,Oe,He),m=e[l+424>>2],G=e[l+428>>2],M=e[l+416>>2],Y=e[l+420>>2],(OA-2|0)>=(2147483647&c)||(e[l+408>>2]=m,e[l+412>>2]=2147483647&G,e[l+400>>2]=M,e[l+404>>2]=Y,je(l+384|0,M,Y,m,G,0,0,0,1073610752),m=(t=(0|(t=ii(e[l+400>>2],e[l+404>>2],e[l+408>>2],e[l+412>>2],1081081856)))>=0)?e[l+392>>2]:m,G=t?e[l+396>>2]:G,M=t?e[l+384>>2]:M,Y=t?e[l+388>>2]:Y,X=t+X|0,!(!!(0|hr(b,I,te,oe,0,0,0,0))&(t?z&(0|s)!=(0|f):z))&(X+110|0)<=(0|OA)||(e[56798]=68)),hA(l+368|0,M,Y,m,G,X),m=e[l+368>>2],G=e[l+372>>2],r=e[l+380>>2],t=e[l+376>>2]}else os(l+48|0,pe),ra(l+32|0,t),je(l+16|0,e[l+48>>2],e[l+52>>2],e[l+56>>2],e[l+60>>2],e[l+32>>2],e[l+36>>2],e[l+40>>2],e[l+44>>2]),m=e[l+16>>2],G=e[l+20>>2],r=e[l+28>>2],t=e[l+24>>2];else Hr(l,0*+(0|pe)),m=e[l>>2],G=e[l+4>>2],r=e[l+12>>2],t=e[l+8>>2]}e[o+40>>2]=t,e[o+44>>2]=r,e[o+32>>2]=m,e[o+36>>2]=G,H=l+8976|0,b=e[o+40>>2],I=e[o+44>>2],m=e[o+32>>2],G=e[o+36>>2];break e;case 3:break r;default:break a}(0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1);break A}if((0|(r=e[t+4>>2]))==e[t+104>>2]?r=Me(t):(e[t+4>>2]=r+1,r=u[0|r]),(0|r)!=40){if(I=2147450880,e[t+116>>2]<0)break e;e[t+4>>2]=e[t+4>>2]-1;break e}for(f=1;(0|(r=e[t+4>>2]))==e[t+104>>2]?r=Me(t):(e[t+4>>2]=r+1,r=u[0|r]),r-48>>>0<10|r-65>>>0<26|(0|r)==95||!(r-97>>>0>=26);)f=f+1|0;if(I=2147450880,(0|r)==41)break e;(0|(r=e[t+116>>2]))>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1);r:{if(s){if(f)break r;break e}break A}for(;f=f-1|0,(0|r)>0|(0|r)>=0&&(e[t+4>>2]=e[t+4>>2]-1),f;);break e}e[56798]=28,fs(t,0,0)}I=0}e[A>>2]=m,e[A+4>>2]=G,e[A+8>>2]=b,e[A+12>>2]=I,H=o+48|0}function mA(A,t,r,s,o){var l,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0;if(H=l=H-112|0,e[r+8>>2]){dA=e[50754]/70|0,Y=(M=e[s+12>>2])||256;e:if((0|t)!=2){if((0|t)==1){A:if(u[A+11|0]!=3)switch(u[s-15|0]-3|0){case 0:case 5:break A;default:break e}Y=(0|(M=e[e[47192]+44>>2]))<(0|Y)?Y:M}}else{if((0|(M=e[e[47192]+80>>2]))<=0|!(8&u[0|s]|M>>>0<=u[A+14|0]|32&u[A+6|0]))break e;dA<<=1}if(e[36436]=0,oe=A,CA=t,b=s,H=W=H-16|0,A=e[34460]+e[r+8>>2]|0,t=(t=u[A+2|0])>>>0>=24?24:t,e[W+12>>2]=t,f=e[r+12>>2]+e[r+24>>2]|0,e[36422]=f,t){for(M=A+4|0,c=1&k[A+4>>1];A=145488+(I<<3)|0,s=M+(c?I<<6:O(I,44))|0,e[A+4>>2]=s,z=y[s>>1],k[A+2>>1]=z,k[A>>1]=u[s+16|0],m=2&z?I:m,(0|(I=I+1|0))!=(0|t););M=145488,(0|m)<=0||((0|CA)!=1?(t=t-m|0,e[W+12>>2]=t,M=145488+(m<<3)|0):(t=m+1|0,e[W+12>>2]=t,M=145488))}else t=0,M=145488;if(!(!e[r+4>>2]|e[r+20>>2]|u[oe+11|0]!=2)){if(c=e[r+36>>2],s=e[r+40>>2],A=0,(0|(t=e[W+12>>2]))>=2){m=c>>>12|0,z=s>>>26&7,pe=s>>>18&248,X=O(te=63&s,50),Ge=63&(Oe=c>>>6|0),I=c<<1&126,He=O(s>>>16&31,50)-750|0,Je=O(s>>>11&31,50)-750|0,Ie=O(s>>>6&31,50)-750|0;e:{A:if((0|CA)!=1){if(!(m|te))break e;if(8&m?(t=e[4+(M+((f=t-1|0)<<3)|0)>>2],k[t>>1]<0?A=t:(A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,f=y[t+20>>1]|y[t+22>>1]<<16,A=177888+(A<<6)|0,c=y[t+16>>1]|y[t+18>>1]<<16,k[A+16>>1]=c,k[A+18>>1]=c>>>16,k[A+20>>1]=f,k[A+22>>1]=f>>>16,f=y[t+4>>1]|y[t+6>>1]<<16,c=y[t>>1]|y[t+2>>1]<<16,k[A>>1]=c,k[A+2>>1]=c>>>16,k[A+4>>1]=f,k[A+6>>1]=f>>>16,f=y[t+12>>1]|y[t+14>>1]<<16,c=y[t+8>>1]|y[t+10>>1]<<16,k[A+8>>1]=c,k[A+10>>1]=c>>>16,k[A+12>>1]=f,k[A+14>>1]=f>>>16,f=y[t+28>>1]|y[t+30>>1]<<16,c=y[t+24>>1]|y[t+26>>1]<<16,k[A+24>>1]=c,k[A+26>>1]=c>>>16,k[A+28>>1]=f,k[A+30>>1]=f>>>16,f=y[t+36>>1]|y[t+38>>1]<<16,c=y[t+32>>1]|y[t+34>>1]<<16,k[A+32>>1]=c,k[A+34>>1]=c>>>16,k[A+36>>1]=f,k[A+38>>1]=f>>>16,f=y[t+44>>1]|y[t+46>>1]<<16,c=y[t+40>>1]|y[t+42>>1]<<16,k[A+40>>1]=c,k[A+42>>1]=c>>>16,k[A+44>>1]=f,k[A+46>>1]=f>>>16,f=y[t+52>>1]|y[t+54>>1]<<16,c=y[t+48>>1]|y[t+50>>1]<<16,k[A+48>>1]=c,k[A+50>>1]=c>>>16,k[A+52>>1]=f,k[A+54>>1]=f>>>16,f=y[t+60>>1]|y[t+62>>1]<<16,t=y[t+56>>1]|y[t+58>>1]<<16,k[A+56>>1]=t,k[A+58>>1]=t>>>16,k[A+60>>1]=f,k[A+62>>1]=f>>>16,d[A+16|0]=0,k[A>>1]=32768|y[A>>1],f=e[W+12>>2]-1|0),e[4+(M+(f<<3)|0)>>2]=A,t=1792,(0|(f=k[A+4>>1]))<300||(t=1536,f>>>0<400||(t=f>>>0<500?1280:1024)),e[36436]=t,c=35):(e[W+12>>2]=t+1,k[(A=(f=M+(t<<3)|0)-8|0)>>1]=I,t=e[A+4>>2],A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,(A=(Oe=A<<6)+177888|0)&&(c=y[t+4>>1]|y[t+6>>1]<<16,G=y[t>>1]|y[t+2>>1]<<16,k[A>>1]=G,k[A+2>>1]=G>>>16,k[A+4>>1]=c,k[A+6>>1]=c>>>16,c=y[t+60>>1]|y[t+62>>1]<<16,G=y[t+56>>1]|y[t+58>>1]<<16,k[A+56>>1]=G,k[A+58>>1]=G>>>16,k[A+60>>1]=c,k[A+62>>1]=c>>>16,c=y[t+52>>1]|y[t+54>>1]<<16,G=y[t+48>>1]|y[t+50>>1]<<16,k[A+48>>1]=G,k[A+50>>1]=G>>>16,k[A+52>>1]=c,k[A+54>>1]=c>>>16,c=y[t+44>>1]|y[t+46>>1]<<16,G=y[t+40>>1]|y[t+42>>1]<<16,k[A+40>>1]=G,k[A+42>>1]=G>>>16,k[A+44>>1]=c,k[A+46>>1]=c>>>16,c=y[t+36>>1]|y[t+38>>1]<<16,G=y[t+32>>1]|y[t+34>>1]<<16,k[A+32>>1]=G,k[A+34>>1]=G>>>16,k[A+36>>1]=c,k[A+38>>1]=c>>>16,c=y[t+28>>1]|y[t+30>>1]<<16,G=y[t+24>>1]|y[t+26>>1]<<16,k[A+24>>1]=G,k[A+26>>1]=G>>>16,k[A+28>>1]=c,k[A+30>>1]=c>>>16,c=y[t+20>>1]|y[t+22>>1]<<16,G=y[t+16>>1]|y[t+18>>1]<<16,k[A+16>>1]=G,k[A+18>>1]=G>>>16,k[A+20>>1]=c,k[A+22>>1]=c>>>16,c=y[t+12>>1]|y[t+14>>1]<<16,t=y[t+8>>1]|y[t+10>>1]<<16,k[A+8>>1]=t,k[A+10>>1]=t>>>16,k[A+12>>1]=c,k[A+14>>1]=c>>>16,d[Oe+177904|0]=0,k[A>>1]=32768|y[A>>1]),k[f>>1]=0,e[f+4>>2]=A,I>>>0>=37&&(e[36422]=(I+e[36422]|0)-36),c=Ge<<1,te&&le(A,X,Ie,Je,z,He,pe,m)),e[e[32972]+132>>2]||(t=u[A+17|0])&&(t=k[102896+(((0|(t=(c<<6>>>0)/(t>>>0)|0))>=199?199:t)<<1)>>1],d[A+18|0]=(0|O(t,u[A+18|0]))/512,d[A+19|0]=(0|O(t,u[A+19|0]))/512,d[A+20|0]=(0|O(t,u[A+20|0]))/512,d[A+21|0]=(0|O(t,u[A+21|0]))/512,d[A+22|0]=(0|O(t,u[A+22|0]))/512,d[A+23|0]=(0|O(t,u[A+23|0]))/512,d[A+24|0]=(0|O(t,u[A+24|0]))/512,d[A+25|0]=(0|O(t,u[A+25|0]))/512),s-536870912>>>0<=1073741823){if(z=e[44469],(0|(f=e[W+12>>2]))>0)for(A=O(s>>>29|0,10)+102854|0,pe=k[A+4>>1],te=k[A+2>>1],X=k[A>>1],He=k[A+6>>1],Je=k[A+8>>1],c=0;t=e[(Ie=M+(c<<3)|0)+4>>2],k[t>>1]<0?A=t:(A=(Ge=(z=(0|(A=z+1|0))<=169?A:0)<<6)+177888|0)?(s=y[t+4>>1]|y[t+6>>1]<<16,f=y[t>>1]|y[t+2>>1]<<16,k[A>>1]=f,k[A+2>>1]=f>>>16,k[A+4>>1]=s,k[A+6>>1]=s>>>16,s=y[t+60>>1]|y[t+62>>1]<<16,f=y[t+56>>1]|y[t+58>>1]<<16,k[A+56>>1]=f,k[A+58>>1]=f>>>16,k[A+60>>1]=s,k[A+62>>1]=s>>>16,s=y[t+52>>1]|y[t+54>>1]<<16,f=y[t+48>>1]|y[t+50>>1]<<16,k[A+48>>1]=f,k[A+50>>1]=f>>>16,k[A+52>>1]=s,k[A+54>>1]=s>>>16,s=y[t+44>>1]|y[t+46>>1]<<16,f=y[t+40>>1]|y[t+42>>1]<<16,k[A+40>>1]=f,k[A+42>>1]=f>>>16,k[A+44>>1]=s,k[A+46>>1]=s>>>16,s=y[t+36>>1]|y[t+38>>1]<<16,f=y[t+32>>1]|y[t+34>>1]<<16,k[A+32>>1]=f,k[A+34>>1]=f>>>16,k[A+36>>1]=s,k[A+38>>1]=s>>>16,s=y[t+28>>1]|y[t+30>>1]<<16,f=y[t+24>>1]|y[t+26>>1]<<16,k[A+24>>1]=f,k[A+26>>1]=f>>>16,k[A+28>>1]=s,k[A+30>>1]=s>>>16,s=y[t+20>>1]|y[t+22>>1]<<16,f=y[t+16>>1]|y[t+18>>1]<<16,k[A+16>>1]=f,k[A+18>>1]=f>>>16,k[A+20>>1]=s,k[A+22>>1]=s>>>16,s=y[t+12>>1]|y[t+14>>1]<<16,t=y[t+8>>1]|y[t+10>>1]<<16,k[A+8>>1]=t,k[A+10>>1]=t>>>16,k[A+12>>1]=s,k[A+14>>1]=s>>>16,d[Ge+177904|0]=0,k[A>>1]=32768|y[A>>1],f=e[W+12>>2]):A=0,e[Ie+4>>2]=A,k[A+8>>1]=(0|O(pe,k[A+8>>1]))/256,k[A+6>>1]=(0|O(te,k[A+6>>1]))/256,k[A+4>>1]=(0|O(X,k[A+4>>1]))/256,k[A+12>>1]=(0|O(Je,k[A+12>>1]))/256,k[A+10>>1]=(0|O(He,k[A+10>>1]))/256,(0|f)>(0|(c=c+1|0)););e[44469]=z}if(!A)break e}else{t=e[M+4>>2],(0|(f=k[t>>1]))<0?A=t:(s=(0|(s=e[44469]+1|0))<=169?s:0,e[44469]=s,(s=(f=s<<6)+177888|0)&&(A=y[t+4>>1]|y[t+6>>1]<<16,G=y[t>>1]|y[t+2>>1]<<16,k[s>>1]=G,k[s+2>>1]=G>>>16,k[s+4>>1]=A,k[s+6>>1]=A>>>16,A=y[t+60>>1]|y[t+62>>1]<<16,G=y[t+56>>1]|y[t+58>>1]<<16,k[s+56>>1]=G,k[s+58>>1]=G>>>16,k[s+60>>1]=A,k[s+62>>1]=A>>>16,A=y[t+52>>1]|y[t+54>>1]<<16,G=y[t+48>>1]|y[t+50>>1]<<16,k[s+48>>1]=G,k[s+50>>1]=G>>>16,k[s+52>>1]=A,k[s+54>>1]=A>>>16,A=y[t+44>>1]|y[t+46>>1]<<16,G=y[t+40>>1]|y[t+42>>1]<<16,k[s+40>>1]=G,k[s+42>>1]=G>>>16,k[s+44>>1]=A,k[s+46>>1]=A>>>16,A=y[t+36>>1]|y[t+38>>1]<<16,G=y[t+32>>1]|y[t+34>>1]<<16,k[s+32>>1]=G,k[s+34>>1]=G>>>16,k[s+36>>1]=A,k[s+38>>1]=A>>>16,A=y[t+28>>1]|y[t+30>>1]<<16,G=y[t+24>>1]|y[t+26>>1]<<16,k[s+24>>1]=G,k[s+26>>1]=G>>>16,k[s+28>>1]=A,k[s+30>>1]=A>>>16,A=y[t+20>>1]|y[t+22>>1]<<16,G=y[t+16>>1]|y[t+18>>1]<<16,k[s+16>>1]=G,k[s+18>>1]=G>>>16,k[s+20>>1]=A,k[s+22>>1]=A>>>16,A=y[t+12>>1]|y[t+14>>1]<<16,t=y[t+8>>1]|y[t+10>>1]<<16,k[s+8>>1]=t,k[s+10>>1]=t>>>16,k[s+12>>1]=A,k[s+14>>1]=A>>>16,d[f+177904|0]=0,f=-32768|y[s>>1],k[s>>1]=f,A=s)),e[M+4>>2]=A,k[M>>1]=I||50,k[M+2>>1]=16384|y[M+2>>1],k[A>>1]=16384|f,f=e[M+12>>2],t=u[f+17|0],s=e[32972],e[s+132>>2]&&(d[A+39|0]=u[f+39|0]-4);r:if(te){if(2048&c){t=(O(t,31&Oe)>>>0)/30|0,e[s+132>>2]||(s=u[A+17|0])&&(t=k[102896+(((0|(t=(t<<6>>>0)/(s>>>0)|0))>=199?199:t)<<1)>>1],d[A+18|0]=(0|O(t,u[A+18|0]))/512,d[A+19|0]=(0|O(t,u[A+19|0]))/512,d[A+20|0]=(0|O(t,u[A+20|0]))/512,d[A+21|0]=(0|O(t,u[A+21|0]))/512,d[A+22|0]=(0|O(t,u[A+22|0]))/512,d[A+23|0]=(0|O(t,u[A+23|0]))/512,d[A+24|0]=(0|O(t,u[A+24|0]))/512,d[A+25|0]=(0|O(t,u[A+25|0]))/512),le(A,X,Ie,Je,z,He,pe,m);break r}if(le(A,X,Ie,Je,z,He,pe,m),e[e[32972]+132>>2]||!(t=u[A+17|0]))break r;t=k[102896+(((0|(t=(Ge<<7>>>0)/(t>>>0)|0))>=199?199:t)<<1)>>1],d[A+18|0]=(0|O(t,u[A+18|0]))/512,d[A+19|0]=(0|O(t,u[A+19|0]))/512,d[A+20|0]=(0|O(t,u[A+20|0]))/512,d[A+21|0]=(0|O(t,u[A+21|0]))/512,d[A+22|0]=(0|O(t,u[A+22|0]))/512,d[A+23|0]=(0|O(t,u[A+23|0]))/512,d[A+24|0]=(0|O(t,u[A+24|0]))/512,d[A+25|0]=(0|O(t,u[A+25|0]))/512}else if(s=e[s+132>>2],8&m){if(s||!(s=u[A+17|0]))break r;t=((16320&O(t,48))>>>0)/(s>>>0)|0,t=k[102896+((t>>>0>=199?199:t)<<1)>>1],d[A+18|0]=(0|O(t,u[A+18|0]))/512,d[A+19|0]=(0|O(t,u[A+19|0]))/512,d[A+20|0]=(0|O(t,u[A+20|0]))/512,d[A+21|0]=(0|O(t,u[A+21|0]))/512,d[A+22|0]=(0|O(t,u[A+22|0]))/512,d[A+23|0]=(0|O(t,u[A+23|0]))/512,d[A+24|0]=(0|O(t,u[A+24|0]))/512,d[A+25|0]=(0|O(t,u[A+25|0]))/512}else s||(t=u[A+17|0])&&(t=k[102896+(((t=1792/(t>>>0)|0)>>>0>=199?199:t)<<1)>>1],d[A+18|0]=(0|O(t,u[A+18|0]))/512,d[A+19|0]=(0|O(t,u[A+19|0]))/512,d[A+20|0]=(0|O(t,u[A+20|0]))/512,d[A+21|0]=(0|O(t,u[A+21|0]))/512,d[A+22|0]=(0|O(t,u[A+22|0]))/512,d[A+23|0]=(0|O(t,u[A+23|0]))/512,d[A+24|0]=(0|O(t,u[A+24|0]))/512,d[A+25|0]=(0|O(t,u[A+25|0]))/512);if(!(8&m))break A;t=2816,(0|(s=k[A+4>>1]))<300||(t=2560,s>>>0<400||(t=s>>>0<500?2304:2048)),e[36436]=t}4&m&&(k[A>>1]=32|y[A>>1]),2&m&&(k[A>>1]=16|y[A>>1])}64&m&&qt(20,0),A=I&m<<27>>31}else A=0;f=A+e[36422]|0,e[36422]=f,t=e[W+12>>2]}if((0|(s=t-1|0))<=0)c=0;else{if(A=0,I=0,c=0,t-2>>>0>=3)for(pe=-4&s,z=0;c=(((k[(m=I<<3)+M>>1]+c|0)+k[M+(8|m)>>1]|0)+k[M+(16|m)>>1]|0)+k[M+(24|m)>>1]|0,I=I+4|0,(0|pe)!=(0|(z=z+4|0)););if(m=3&s)for(;c=k[M+(I<<3)>>1]+c|0,I=I+1|0,(0|m)!=(0|(A=A+1|0)););}if(A=t,(m=e[r+20>>2])&&(A=s,I=m+e[34460]|0,(z=u[I+2|0])&&(te=y[I+4>>1],k[M+(s<<3)>>1]=u[I+20|0],m=1,A=t,(0|z)!=1))){if(pe=I+4|0,te&=1,He=1&(I=z-1|0),(0|z)!=2)for(Je=-2&I,z=0;Ie=pe+(m<<6)|0,Ge=pe+O(m,44)|0,Oe=u[(X=te?Ie:Ge)+16|0],e[(I=M+(A<<3)|0)+4>>2]=X,k[I>>1]=Oe,k[I+2>>1]=y[X>>1],Ie=u[(X=te?Ie- -64|0:Ge+44|0)+16|0],e[I+12>>2]=X,k[I+8>>1]=Ie,k[I+10>>1]=y[X>>1],m=m+2|0,A=A+2|0,(0|Je)!=(0|(z=z+2|0)););He&&(m=pe+(te?m<<6:O(m,44))|0,z=u[m+16|0],e[(I=M+(A<<3)|0)+4>>2]=m,k[I>>1]=z,k[I+2>>1]=y[m>>1],A=A+1|0)}e:if(!((0|c)<=0)){A:{r:switch(CA-1|0){case 1:if(m=(0|(m=(e[r+44>>2]+f|0)-45|0))<=10?10:m,8&u[0|b]&&(m=m+(u[e[36128]+14|0]<<1)|0),(0|s)<=0)break e;if(b=(m<<8)/(0|c)|0,I=0,(0|t)!=2)for(t=-2&s,m=0;k[(c=(f=I<<3)+M|0)>>1]=(0|O(b,k[c>>1]))/256,k[(f=M+(8|f)|0)>>1]=(0|O(b,k[f>>1]))/256,I=I+2|0,(0|t)!=(0|(m=m+2|0)););if(!(1&s))break e;k[(t=M+(I<<3)|0)>>1]=(0|O(b,k[t>>1]))/256;break e;case 0:if(e[r>>2]!=1||(0|(m=e[r+44>>2]))>129)break A;k[M>>1]=(0|O(m,k[M>>1]))/130;break A;default:break r}(0|(m=e[r+44>>2]))<=0||(f=(m-c|0)+f|0,e[36422]=f)}if(!(!f|(0|s)<=0)){if(b=(c+f<<8)/(0|c)|0,I=0,(0|t)!=2)for(t=-2&s,m=0;k[(c=(f=I<<3)+M|0)>>1]=(0|O(b,k[c>>1]))/256,k[(f=M+(8|f)|0)>>1]=(0|O(b,k[f>>1]))/256,I=I+2|0,(0|t)!=(0|(m=m+2|0)););1&s&&(k[(t=M+(I<<3)|0)>>1]=(0|O(b,k[t>>1]))/256)}}if(e[l+108>>2]=A,H=W+16|0,M){if((0|(A=e[r+16>>2]))!=e[36438]&&(e[36438]=A,t=216192+(e[50758]<<4)|0,e[t>>2]=14,e[t+4>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0),I=(A=e[e[32972]+132>>2])?1:3,t=e[M+4>>2],e[r+28>>2]|!u[145748]||(d[145748]=0,I=A?2:4),(s=e[36426])&&(!((2&(A=y[s>>1]))>>>1|u[s+16|0]<2)|16&A||(f=216192+(e[36439]<<4)|0,e[f+12>>2]=t,8&A&&(A=(0|(A=e[44469]+1|0))<=169?A:0,e[44469]=A,(A=(m=A<<6)+177888|0)&&(b=y[t+4>>1]|y[t+6>>1]<<16,c=y[t>>1]|y[t+2>>1]<<16,k[A>>1]=c,k[A+2>>1]=c>>>16,k[A+4>>1]=b,k[A+6>>1]=b>>>16,b=y[t+60>>1]|y[t+62>>1]<<16,c=y[t+56>>1]|y[t+58>>1]<<16,k[A+56>>1]=c,k[A+58>>1]=c>>>16,k[A+60>>1]=b,k[A+62>>1]=b>>>16,b=y[t+52>>1]|y[t+54>>1]<<16,c=y[t+48>>1]|y[t+50>>1]<<16,k[A+48>>1]=c,k[A+50>>1]=c>>>16,k[A+52>>1]=b,k[A+54>>1]=b>>>16,b=y[t+44>>1]|y[t+46>>1]<<16,c=y[t+40>>1]|y[t+42>>1]<<16,k[A+40>>1]=c,k[A+42>>1]=c>>>16,k[A+44>>1]=b,k[A+46>>1]=b>>>16,b=y[t+36>>1]|y[t+38>>1]<<16,c=y[t+32>>1]|y[t+34>>1]<<16,k[A+32>>1]=c,k[A+34>>1]=c>>>16,k[A+36>>1]=b,k[A+38>>1]=b>>>16,b=y[t+28>>1]|y[t+30>>1]<<16,c=y[t+24>>1]|y[t+26>>1]<<16,k[A+24>>1]=c,k[A+26>>1]=c>>>16,k[A+28>>1]=b,k[A+30>>1]=b>>>16,b=y[t+20>>1]|y[t+22>>1]<<16,c=y[t+16>>1]|y[t+18>>1]<<16,k[A+16>>1]=c,k[A+18>>1]=c>>>16,k[A+20>>1]=b,k[A+22>>1]=b>>>16,b=y[t+12>>1]|y[t+14>>1]<<16,c=y[t+8>>1]|y[t+10>>1]<<16,k[A+8>>1]=c,k[A+10>>1]=c>>>16,k[A+12>>1]=b,k[A+14>>1]=b>>>16,d[m+177904|0]=0,k[A>>1]=32768|y[A>>1]),k[(m=m+177888|0)+8>>1]=y[s+8>>1],d[m+21|0]=u[s+21|0],k[m+10>>1]=y[s+10>>1],d[m+22|0]=u[s+22|0],k[m+12>>1]=y[s+12>>1],d[m+23|0]=u[s+23|0],k[m+14>>1]=y[s+14>>1],d[m+24|0]=u[s+24|0],d[m+25|0]=u[s+25|0],e[f+12>>2]=A))),(0|CA)!=2|u[oe+11|0]!=2||(ne(),e[36427]=e[50758]),!((0|(oe=e[l+108>>2]))<2)){for(A=e[36433],b=(O(256-A|0,Y)+(A<<8)|0)/256|0,A=e[36432],f=(O(256-A|0,Y)+(A<<8)|0)/256|0,c=e[50754],A=0,s=1;m=y[(W=(M+(s<<3)|0)-8|0)+2>>1],m=(0|O((0|O(c,k[W>>1]))/1e3|0,4&m?f:16384&m?b:Y))/256|0,e[(s<<2)+l>>2]=m,A=A+m|0,(0|oe)!=(0|(s=s+1|0)););if(!((0|A)<=0|(0|A)>=(0|dA)|(0|oe)<2)){if(s=1,b=1&(m=oe-1|0),(0|oe)!=2)for(f=-2&m,Y=0;e[(m=(s<<2)+l|0)>>2]=(0|O(e[m>>2],dA))/(0|A),e[m+4>>2]=(0|O(e[m+4>>2],dA))/(0|A),s=s+2|0,(0|f)!=(0|(Y=Y+2|0)););b&&(e[(s=(s<<2)+l|0)>>2]=(0|O(e[s>>2],dA))/(0|A))}if(Y=0,!((0|oe)<2))for(oe=CA+256|0,s=1;A=e[4+(M+(s<<3)|0)>>2],!(m=e[r+28>>2])|128&u[0|t]||(e[36422]=0,mr(m,oe,0,c=e[r>>2],0,b=(b=e[r+32>>2])?(b<<5)/100|0:32),d[145748]=1,e[r+28>>2]=0),(0|o)<0||(o=64&u[0|t]?6:o,(e[l+108>>2]-1|0)==(0|s)&&(o=(m=o)|(3840&(o=e[36436])?o:0))),m=e[(s<<2)+l>>2],e[36440]=m+e[36440],e[36441]=m+e[36441],m?(b=e[50758],e[36439]=b,(0|o)>=0&&(e[(b=216192+(b<<4)|0)>>2]=I,e[b+12>>2]=A,e[b+8>>2]=t,e[b+4>>2]=m+(o<<16),t=e[50758]+1|0,e[50758]=(0|t)<=169?t:0),e[36426]=A,Y=m+Y|0):e[36426]=0,t=A,(0|(s=s+1|0))>2];);}!e[36438]|(0|CA)==1||(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}}H=l+112|0}function nA(A,t,r,s){var o,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0;H=o=H-1856|0,e[o+164>>2]=0,r?G=e[r>>2]:eA(r=o- -64|0,0,96),e[33264]=0,e[o+1824>>2]=0,e[o+1828>>2]=0,e[o+1832>>2]=0,e[o+1836>>2]=0,d[o+1616|0]=0,d[o+992|0]=0,d[o+1200|0]=0,d[o+784|0]=0;e:if(e[A+688>>2]){for(e[o+1840>>2]=t,u[0|(l=t)]==32&&(l=t+1|0,e[o+1840>>2]=l),z=o+416|1,Oe=o+1844|1,Je=o+1848|1,dA=o+1852|1,e[o+1820>>2]=l,zA(o+168|0,l),l=e[o+1820>>2];(32|u[0|l])!=32;)l=zA(o+164|0,l)+e[o+1820>>2]|0,e[o+1820>>2]=l,X=X+1|0;SA(o+256|0,t,He=(0|(f=l-t|0))>=159?159:f),!(Ie=4194304&G)|(0|X)!=1?(oe=((0|(l=e[47202]))==36)<<2,(0|X)==1|(0|l)!=36||(l=e[o+1840>>2]-1|0,e[o+1840>>2]=l,d[0|l]=95,oe=0,c=!!(0|IA(A,o+1840|0,o+1616|0,o+1832|0,0,r)),l=e[47202])):(c=1,zA(o+172|0,l+1|0),zt(e[o+172>>2])&&(0|Aa(e[o+164>>2]))==(0|Aa(e[o+172>>2]))&&(c=0),oe=(0|(l=e[47202]))==36?4:c,c=0);A:{r:{a:{n:{o:if(16&l)W=15&l,oe=0;else{if(te=1,c||(te=!!(0|IA(A,o+1840|0,o+1616|0,o+1832|0,2,r))),50331648&(l=e[o+1832>>2])&&(f=e[o+1820>>2],u[f+1|0]==46&&(d[f+1|0]=32,l=e[o+1832>>2])),536870912&l){if(!s)break e;DA(s,e[o+1840>>2]);break e}if(8192&l|!(128&l)|te)s=e[33264];else if(l=e[o+1840>>2],e[o+1820>>2]=l,!((0|(s=e[33264]))<=0))for(c=0;u[0|l]==32&&(d[0|l]=45,c=c+1|0,l=e[o+1820>>2],s=e[33264]),l=l+1|0,e[o+1820>>2]=l,(0|s)>(0|c););c:if(!(s|(0|X)!=1)&&(f=zA(o+576|0,M=e[o+1840>>2]),u[f+M|0]==32)){c=o+1408|0,s=M;u:{l:{i:{for(;;){p:if(zt(e[o+576>>2])){C:{if(u[(m=s+f|0)+1|0]==46){W=0;h:switch(u[(l=f+2|0)+s|0]-32|0){case 0:break C;case 7:break h;default:break p}if(W=1,f=l,u[m+3|0]==115)break C;break p}if(W=1,(0|b)<=0)break i}if(!((0|f)<=0)){if(Y=3&f,I=0,f>>>0<4)l=0;else for(pe=-4&f,l=0,m=0;d[0|c]=u[s+l|0],d[c+1|0]=u[(1|l)+s|0],d[c+2|0]=u[(2|l)+s|0],d[c+3|0]=u[(3|l)+s|0],l=l+4|0,c=c+4|0,(0|pe)!=(0|(m=m+4|0)););if(Y)for(;d[0|c]=u[s+l|0],l=l+1|0,c=c+1|0,(0|Y)!=(0|(I=I+1|0)););}if(b=b+1|0,W)s=s+f|0;else if(f=zA(o+576|0,s=3+(s+f|0)|0),u[s+f|0]==32)continue}break}if(!((0|b)<2)){(f=(f=c-(l=o+1408|0)|0)+(l=SA(M,l,f))|0)>>>0>>0&&eA(f,32,(o+1408|0)+s-(l+c)|0),e[33264]=(b<<1)-2,e[o+1836>>2]=0;break l}}if(!b)break c;if(e[o+1832>>2]=0,e[o+1836>>2]=0,!e[33264])break u}e[o+1832>>2]=128}oe=1}if(u[o+1616|0]==21){DA(189088,o+1616|0),l=0;break e}if(CA=u[o+1833|0],c=1,!te){if(e[o+168>>2]-48>>>0<10){if(TA(A,84174,189088),l=0,u[189088]==21)break e;if(!(!(128&u[A+109|0])|32&u[r+2|0])){d[189088]=21,d[189089]=0;break e}c=!!(0|Ts(A,e[o+1840>>2],o+1616|0,o+1832|0,r,0))}else c=0;if(!(c|(3&G)==2)&&(16777216&(s=e[A+104>>2])||(c=0,!(!(33554432&s)|!(1&G))))&&(16&G||(c=0,!(1&d[r+13|0])))){pe=e[o+1840>>2],l=0,b=0,m=0,H=Y=H-224|0,d[0|(I=o+1616|0)]=0,e[Y+216>>2]=0,e[Y+220>>2]=0;c:if(!(d[pe-2|0]-48>>>0<10|(1&d[0|r]?0:2&u[A+107|0])||(s=u[0|(f=pe+1|0)],(!(2561&y[A+106>>1])|!(1&d[r+2|0]))&(0|s)==32))){if((0|(b=u[0|pe]))!=32){for(W=32767,s=0;;){if(!(l=ca(101868,b<<24>>24,8))){b=0;break c}if(M=0,(0|(l=e[(l<<2)-305584>>2]))==(0|s)&&!((0|(M=m+1|0))<=2)){b=0;break c}u:{l:{i:{p:{if(!((0|s)<2)){if((0|s)==10|(0|s)==100)break p;if(!((0|s)>(0|l))){b=0;break c}}if(!s)break l;if((0|s)<(0|l))break i;break l}if((0|s)>=(0|l))break l}if(b=0,(0|Ge)%10|(0|O(s,10))<(0|l))break c;l=l-s|0,W=s;break u}if((0|l)>=(0|W)){b=0;break c}Ge=s+Ge|0}if(b=u[0|f],f=c=f+1|0,s=l,m=M,(0|b)==32)break}s=u[0|c]}else c=f;if((s<<24>>24)-48>>>0<10)b=0;else if((0|(s=l+Ge|0))>2])b=0;else if((0|s)>e[A+116>>2])b=0;else if(TA(A,85600,Y+176|0),l=I,4&u[A+107|0]||(l=DA(I,l=Y+176|0)+BA(l)|0),e[Y+4>>2]=e[A+140>>2],e[Y>>2]=s,cA(Y+16|0,85839,Y),b=0,u[0|c]!=46){nr(A,pe,c,r,1)&&(e[r>>2]=32768|e[r>>2]),f=0;u:if(8&u[A+107|0]){if(m=e[r>>2],e[A+212>>2]==26741){if(32768&m)break u;if(!(16384&m))break c;f=1,m=0;l:{i:switch(u[0|c]-97|0){case 0:case 4:break i;default:break l}i:{p:{C:{h:switch((W=u[c+1|0])-116|0){case 6:break l;case 1:case 2:case 3:case 4:case 5:break p;case 0:break h;default:break C}if(u[c+2|0]!=116)break i;break l}if((0|W)==32)break l}if(!((0|s)%1e3|0)&&(0|W)==108)break l}m=1}if(m)break u;break c}e[r>>2]=32768|m}e[(s=A+8232|0)>>2]=0,e[s+4>>2]=0,Ts(A,Y+16|2,l,Y+216|0,r,f),b=1,4&u[A+107|0]&&Jr(I,Y+176|0)}}H=Y+224|0,b?(e[o+1832>>2]=8192|e[o+1832>>2],c=1):c=0}}if(W=te?oe:32&CA?1:oe,oe=0,!(!(1&G)|(0|X)<2)&&Xe(e[o+168>>2])){c:{if(1&d[188785]){if(!(!(s=8192&(l=e[o+1832>>2]))|c))break c;oe=s>>>2^2048;break o}if(c)break n;l=e[o+1832>>2]}if(!(128&l|X>>>0>3)&&!((0|(l=e[A+8220>>2]))<4)&&(s=1,(0|l)>=e[A+8216>>2]))break A}}if(I=0,(0|W)<=0)break a;s=W;break A}if((0|(s=W))>0)break A;I=0,M=0,m=0,b=0;break r}if(c)M=0,m=0,b=0;else{s=e[o+1840>>2],e[o+1820>>2]=s,l=999,b=0,M=0,z=0;a:{n:{o:{for(;;){c:{u:{l:{if(l-1>>>0>=2){if((0|X)<2||(zA(o+1408|0,s),(0|(l=e[o+1408>>2]))<577&e[A+600>>2]>0)||(l=Aa(l),(e[l+4>>2]!=e[A+600>>2]?l:0)|e[A+40>>2]==1))break l;l=u[0|s],e[o+1408>>2]=l<<24>>24;i:switch(l-32|0){default:if(!l)break l;break;case 0:case 7:break l;case 1:case 2:case 3:case 4:case 5:case 6:break i}I=zA(o+1408|0,s),te=9;i:{p:{C:{h:if(-33&(l=e[o+1408>>2])){for(c=0,m=0;;){b:{m:{if((0|l)==39){if((0|M)>0|(0|c)>1)break h;if(m=c?m:39,e[A+40>>2]!=3)break m;break b}m=c?m:l}c=c+1|0}if(!ci(A,l)){if((0|(l=e[o+1408>>2]))!=39&&!Xe(l))break l;if(I=zA(o+1408|0,s+I|0)+I|0,-33&(l=e[o+1408>>2]))continue;break h}break}if((0|c)<=2)break C;te=c}else m=0;if((0|(l=e[A+40>>2]))!=2)break p;H=l=H-208|0,d[0|l]=0,c=u[0|(f=s-1|0)],d[0|f]=32,s=At(A,s,l,200,0,-2147483648,0),d[0|f]=c,H=l+208|0,s=!s|(32768&s)>>>15;break i}l=e[A+40>>2],te=c}s=(d[A+168|0]+1|0)<(te-((0|l)==(0|m))|0)}if(!s)break l;s=e[o+1820>>2]}if(u[0|s]!=39)break u;b=67108864,oe=0}if(I=0,Pr(A,o+992|0,0,M),s=e[o+1820>>2],(0|(l=u[0|s]))!=32)break c;M=0,m=0;break r}if(oe=0,s=WA(A,s,o+992|0,1&(z|=(0|M)>0))+e[o+1820>>2]|0,e[o+1820>>2]=s,u[o+992|0]==21)break o;for(M=M+1|0,c=0;c=(l=c)+1|0,u[s+l|0]!=32;);b=67108864;continue}break}if(!u[o+992|0]|(0|l)==39||(d[s-1|0]=32,s=e[o+1820>>2]),f=At(A,s,o+1616|0,200,o+784|0,G,o+1832|0),(0|(s=u[o+1616|0]))==21){DA(189088,o+1616|0),l=0;break e}if(!(s|u[o+784|0])&&(zA(o+1408|0,e[o+1820>>2]),(0|X)==1&&(zt(e[o+1408>>2])||Xa(e[o+1408>>2])))){fa(A,e[o+1820>>2],o+1616|0,W)&&DA(189088,o+1616|0),l=0;break e}e[o+172>>2]=d[e[o+1820>>2]-1|0];c:if(1024&f)for(pe=o+176|1,W=0,l=1,z=0,M=0;;){if((te=131072&f)|!(1&l)||(d[o+1408|0]=0,!(s=At(A,e[o+1820>>2],o+1408|0,200,o+576|0,805306368|G,o+1832|0)))){2048&f&&(e[A+8184>>2]=1),d[e[o+1820>>2]-1|0]=e[o+172>>2];u:{l:{i:{p:if(te){if(d[o+176|0]=0,l=e[o+1820>>2],s=1,m=63&f){if(Y=1&f,M=m-1|0,c=0,(0|m)!=1)for(Ge=m-Y|0,m=0;I=l,e[o+1820>>2]=l+1,d[0|(Ie=(o+176|0)+s|0)]=(0|c)!=(0|M)?u[0|l]:0,l=l+2|0,e[o+1820>>2]=l,d[Ie+1|0]=(0|M)!=(1|c)?u[I+1|0]:0,c=c+2|0,s=s+2|0,(0|Ge)!=(0|(m=m+2|0)););Y&&(m=l+1|0,e[o+1820>>2]=m,d[(o+176|0)+s|0]=(0|c)!=(0|M)?u[0|l]:0,s=s+1|0,l=m)}d[(o+176|0)+s|0]=0}else{if(l=e[o+1820>>2],!(m=15&f))break i;if(s=0,c=m,I=3&f)for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128||(c=c-1|0,(0|I)!=(0|(s=s+1|0))););if(m>>>0<4)break p;for(;;)if(l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])!=128){for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128;);for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128;);for(;l=l+1|0,e[o+1820>>2]=l,(192&u[0|l])==128;);if(s=(0|c)>4,c=c-4|0,!s)break}}if(s=l-1|0,e[o+172>>2]=d[0|s],d[0|s]=32,s=G|=8388608,!te)break l;if(Rt(o+576|0,o+784|0,12),e[o+1852>>2]=pe,s=DA(o+1200|0,l=o+1616|0),IA(A,o+1852|0,l,o+1832|0,0,r)&&DA(s,o+1616|0),!(32&u[o+1833|0]))break u;d[0|s]=0,fa(A,e[o+1852>>2],s,1);break u}s=l-1|0,e[o+172>>2]=d[0|s],d[0|s]=32,s=8388608|G}G=s,Jr(o+1200|0,o+784|0)}if(d[o+784|0]=0,m=1,s=IA(A,o+1820|0,o+1616|0,o+1824|0,1024,r),e[o+1832>>2]||(l=e[o+1828>>2],e[o+1832>>2]=e[o+1824>>2],e[o+1836>>2]=l,m=z),s){I=0,M=f;break a}if(I=At(A,e[o+1820>>2],o+1616|0,200,o+784|0,8404992&G,o+1832|0),l=1,M=f,z=m,u[o+1616|0]==21){d[e[o+1820>>2]-1|0]=e[o+172>>2],DA(189088,o+1616|0),l=0;break e}}else l=o+416|0,Vt(A,e[o+1820>>2],s,l),I=At(A,e[o+1820>>2],o+1616|0,200,o+784|0,268435456|G,o+1832|0),SA(e[o+1820>>2],l,BA(l)),1024&I||(DA(o+1616|0,o+1408|0),l=DA(o+784|0,o+576|0),8&u[188788]&&(dr(m=l,l=o+576|0),f=e[47195],e[o+48>>2]=l,rr(f,85205,o+48|0)),I=s),l=0;if(s=(c=1024&I)>>>10|0,W>>>0>48)break c;if(W=W+1|0,f=I,!c)break}else I=f,M=0,z=0,s=0;if(s|!I)break n;for(f=DA(o+1408|0,o+1616|0),c=Vt(A,e[o+1820>>2],I,o+416|0),m=z,l=I;;){c:{if(d[o+1616|0]=0,u[o+1200|0]){if(d[e[o+1820>>2]-1|0]=e[o+172>>2],s=IA(A,o+1840|0,o+1616|0,o+1824|0,c,r),d[e[o+1820>>2]-1|0]=32,u[o+1616|0]==21){A=o+416|0,SA(e[o+1820>>2],A,BA(A)),DA(189088,o+1616|0),l=0;break e}if(e[o+1832>>2]||(z=e[o+1828>>2],e[o+1832>>2]=e[o+1824>>2],e[o+1836>>2]=z),s){d[o+1200|0]=0;break c}m=e[o+1824>>2]?1:m}if(s=IA(A,o+1820|0,o+1616|0,o+1824|0,c,r),u[o+1616|0]==21){A=o+416|0,SA(e[o+1820>>2],A,BA(A)),DA(189088,o+1616|0),l=0;break e}if(e[o+1832>>2]||(z=e[o+1828>>2],e[o+1832>>2]=e[o+1824>>2],e[o+1836>>2]=z),!s)if(16384&l)DA(o+1616|0,f);else{G|=c<<11&8192|l<<9&134217728;u:if(524288&l){if(z=DA(o+576|0,s=o+784|0),l=At(A,e[o+1820>>2],o+1616|0,200,s,G,o+1832|0),Jr(s,z),s=0,!l){l=0;break u}if(1024&l)break u;s=1,c=Vt(A,e[o+1820>>2],l,0)}else l=0,At(A,e[o+1820>>2],o+1616|0,200,0,G,o+1832|0),s=0;if(u[o+1616|0]==21){DA(189088,o+1616|0),A=o+416|0,SA(e[o+1820>>2],A,BA(A)),d[e[o+1820>>2]-1|0]=e[o+172>>2],l=0;break e}if(s)continue}}break}65536&I||(yn(A,o+1616|0,200,o+784|0),d[o+784|0]=0),s=o+416|0,SA(e[o+1820>>2],s,BA(s));break a}DA(189088,A=o+992|0),l=!Zr(1|A,84744,3)<<12;break e}I=0,m=z}d[e[o+1820>>2]-1|0]=e[o+172>>2]}}if(s=e[o+164>>2],e[o+1852>>2]=8026656,e[o+1848>>2]=8022304,e[o+1844>>2]=7566112,4&G){r:{if((l=255&s)&&((0|l)==102||(Oe=Je,Eo(s<<24>>24))))break r;Oe=dA}At(A,Oe,189088,200,0,0,0)}for(s=0,l=o+1200|0,z=u[o+784|0];;){r:{a:{n:switch(0|(f=u[0|l])){case 0:break r;case 6:case 7:break n;default:break a}s=f}l=l+1|0;continue}break}r:if(s|m){if(e[A+32>>2]|65536&M){for(c=0,Zt(A,o+1616|0,o+1832|0,3,0),l=o+1200|0;;){a:switch(u[0|l]){case 6:c&&(d[0|l]=5),c=1;default:l=l+1|0;continue;case 0:break a}break}e[o+24>>2]=o+1616,e[o+20>>2]=o+1200,e[o+16>>2]=o+992,zs(189088,200,85233,o+16|0),d[189287]=0,Zt(A,189088,o+1832|0,-1,0);break r}e[o+8>>2]=o+1616,e[o+4>>2]=o+1200,e[o>>2]=o+992,zs(189088,200,85233,o),d[189287]=0,Zt(A,189088,o+1832|0,-1,0)}else Zt(A,s=o+1616|0,o+1832|0,-1,!!(0|z)<<1),e[o+40>>2]=s,e[o+36>>2]=o+1200,e[o+32>>2]=o+992,zs(189088,200,85233,o+32|0),d[189287]=0;u[o+784|0]&&(s=BA(189088),d[983+(o-s|0)|0]=0,DA(s+189088|0,o+784|0)),16&(s=G|oe)&&(e[o+1832>>2]=-268435457&e[o+1832>>2]);r:if(!(128&s)|!(16&u[A+14|0]))if(3072&s){if(Ss(A,6),!(2048&s))break r;e[o+1832>>2]=268435456|e[o+1832>>2]}else 16&u[O(e[33264],12)+r|0]&&(1536&(r=e[o+1832>>2])?Ss(A,4):2048&r&&Ss(A,3));else Ss(A,3);8192&I&&(e[A+8192>>2]=2,e[A+8184>>2]=2);r:{if(8&(r=e[o+1836>>2]))e[A+8184>>2]=0,e[A+8188>>2]=3,s=A+8196|0;else if(1&r)e[A+8192>>2]=0,e[A+8184>>2]=2,s=A+8196|0;else if(2&r)e[A+8192>>2]=2,e[A+8184>>2]=0,e[A+8188>>2]=0,s=A+8196|0;else{if(!(4&r))break r;e[A+8184>>2]=0,e[A+8192>>2]=0,e[A+8196>>2]=2,s=A+8188|0}e[s>>2]=0}!u[e[o+1820>>2]]|256&r||((0|(r=e[A+8184>>2]))>0&&(e[A+8184>>2]=r-1),(0|(r=e[A+8192>>2]))>0&&(e[A+8192>>2]=r-1),(0|(r=e[A+8196>>2]))>0&&(e[A+8196>>2]=r-1),(0|(r=e[A+8188>>2]))<=0||(e[A+8188>>2]=r-1)),(0|X)!=1|e[A+212>>2]!=25966||!Xe(e[o+168>>2])|e[o+168>>2]==105||(e[o+1832>>2]=16777216|e[o+1832>>2]);r:if(2&u[A+68|0]&&98304&(s=e[o+1832>>2])&&!((0|(r=BA(189088)-1|0))<=0))for(l=0;;){if(A=l+1|0,u[l+189088|0]==6){r=d[0|(A=A+189088|0)];a:{if(65536&s){if((0|Vr(69))==(0|r)?(X=Vr(101),d[0|A]=X):X=u[0|A],c=111,(0|Vr(79))==X<<24>>24)break a;break r}if((0|Vr(101))==(0|r)?(X=Vr(69),d[0|A]=X):X=u[0|A],c=79,(0|Vr(111))!=X<<24>>24)break r}d[0|A]=Vr(c);break r}if((0|r)==(0|(l=A)))break}A=e[o+1832>>2],SA(t,o+256|0,He),l=A|b;break e}if(l=0,d[o+1616|0]=0,fa(A,e[o+1840>>2],o+1616|0,s)){if(f=DA(189088,o+1616|0),!Ie){if(s=e[o+164>>2],e[o+1408>>2]=8026656,e[o+576>>2]=8022304,e[o+416>>2]=7566112,4&G){t=o+576|1,r=o+1408|1;A:{if((l=255&s)&&((0|l)==102||(z=t,Eo(s<<24>>24))))break A;z=r}At(A,z,f,200,0,0,0)}l=128&e[o+1832>>2]}}else l=((0|X)>1)<<12}else d[189088]=0;return H=o+1856|0,l}function VA(A,t,r,s,o,l,c,f){var m,I,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0,PA=0,OA=0,tt=0,ht=0,xt=0,Nt=0,Jt=0,ir=0,br=0,or=0,Tr=0,Rr=0,qr=0,ss=0,as=0,ps=0,sa=0,aa=0,Xs=0,In=0,Vn=0,en=0,Un=0,Kn=0;H=m=H-384|0,I=e[t>>2];e:{A:{r:{a:{if(o){if(u[0|o]!=7)break a;e[t>>2]=(s||1)+I;break r}e[l>>2]=0,e[t>>2]=I+1;break e}ht=86135,Rr=268435456&c,qr=134217728&c,ss=8388608&c,as=16384&c,ps=8192&c,Jt=r-1|0,ir=s-r|0,sa=2&c,aa=128&c,Xs=c>>>31|0,In=-2147483648&c,br=m+96|1;a:for(;;)for(e[m+268>>2]=0,X=(G=e[t>>2])+s|0,Je=-2,Oe=-6,r=o,dA=In,PA=0,xt=0,He=1,b=0,CA=0,tt=0;;){z=G,te=b;n:{o:{c:{u:{l:{i:{p:{C:{h:{b:{m:{v:{I:{x:{L:{_:{for(;pe=r,r=r+1|0,!((M=u[0|pe])>>>0>9);){W=r;U:switch(0|M){case 0:if(!(r=or)){or=0,r=86135;break L}for(;;){M=1;y:{M:switch(0|(b=u[0|r])){case 0:case 3:break _;case 5:break M;default:break y}M=2}r=(r+M|0)+(((0|b)==9)<<1)|0}case 1:if(tt=1,!Xs)continue;break l;case 2:tt=2;continue;case 4:or=r;continue;case 5:r=pe+2|0,b=e[A+320>>2];y:{if((G=u[pe+1|0])>>>0>=32){if(!(b>>>G-32&1))break y;break l}if(!(b>>>G&1))break l}He=He+1|0;continue;case 9:r=pe+3|0;continue;case 8:tt=1,xt=1,dA=0;break;case 3:break x;default:break U}}W=0,b=te,G=z;U:switch(0|tt){case 0:y:{M:{if((0|(b=u[0|X]))!=(0|M)){if((0|b)!=69)break l;if((0|M)==101)break M;break l}if(W=0,(192&M)==128)break y}W=21}X=X+1|0,PA=PA+1|0;break n;case 1:break I;case 2:break U;default:break b}if(e[m+264>>2]=e[m+268>>2],!u[X-1|0])break l;Oe=(0|(b=Oe+6|0))>=19?19:b,Ge=X+1|0,Ie=zA(m+268|0,X),oe=u[0|X],W=20,b=te;U:{y:switch(M-11|0){case 6:r=pe+2|0,b=e[m+268>>2],G=d[pe+1|0];M:if(M=e[604+(((G=((0|G)<65?191:-65)+G|0)<<2)+A|0)>>2])b=!!(0|Mt(M,b));else{if((0|G)>7)break l;Q:{if((0|(M=e[A+600>>2]))>0){if((b=b-M|0)-1>>>0<255)break Q;break l}if((M=b-192|0)>>>0<=413){b=u[344+(u[M+94240|0]+A|0)|0]&1<>>0>255)break l}b=u[344+(A+b|0)|0]&1<>2]))break l;M:for(;;){if((0|(W=u[0|b]))==7)break l;if((0|W)==126){W=20-Oe|0;break n}Q:if(oe){if(Y=X,M=b,(0|W)==(0|oe))for(;;){if((0|(W=u[0|(M=M+1|0)]))!=(0|(b=u[0|(Y=Y+1|0)])))break Q;if(!b)break}}else M=b,Y=X;if(W){for(;;)if(G=u[0|M],M=b=M+1|0,!G)continue M}break}if((0|(b=Y-X|0))<0)break l;X=b+X|0,W=20-Oe|0;break n;case 14:M=e[m+268>>2];M:{Q:if(b=e[A+604>>2])b=!!(0|Mt(b,M));else{F:{if((0|(b=e[A+600>>2]))>0){if((Y=M-b|0)-1>>>0<255)break F;break M}if((b=M-192|0)>>>0<=413){b=1&d[344+(u[b+94240|0]+A|0)|0];break Q}if(Y=M,M>>>0>255)break o}b=1&d[344+(A+Y|0)|0]}if(b)break l;M=e[m+268>>2]}if(!qr)break o;if((0|M)==32)break l;break o;case 4:if((b=e[m+268>>2])-48>>>0<10|b-2406>>>0<10)break o;if(!u[A+170|0])break l;W=20-Oe|0;break n;case 5:if(fi(e[m+268>>2]))break l;break c;case 0:if(e[m+268>>2]==e[m+264>>2])break c;break l;case 17:r=pe+2|0,b=32768,W=0;M:{Q:switch((M=u[pe+1|0])-1|0){case 0:break b;case 1:break Q;default:break M}if(W=1,b=te,!ss)break b;break l}if((0|(b=240&M))==16){if(W=23,b=te,f>>>(15&M)&16384)break b;break l}if((0|M)!=3&(0|b)!=32||(SA(b=m+96|0,Jt,G=1+(e[t>>2]+(PA+ir|0)|0)|0),d[0|(b=b+G|0)]=32,d[b+1|0]=0,e[33265]=0,e[33266]=0,e[m+16>>2]=br,IA(A,m+16|0,m+272|0,133060,0,0),W=23,!((0|M)!=3|(0|(Y=e[33265]))>=0|16384&e[33266])))break n;if(b=te,G=z,Y>>>(15&M)&16384)break b;break l;case 34:M:{if(b=oe-32|0){if((0|b)==13)break M;break l}if(!as)break l}Y=22-Oe|0;break u;case 10:if(b=1,u[0|r]==21)break U;break i;case 18:if((0|(Y=e[m+268>>2]))!=32)for(M=X+Ie|0;;){M:{Q:if(b=e[A+632>>2])b=!!(0|Mt(b,Y));else{F:{if((0|(b=e[A+600>>2]))>0){if((Y=Y-b|0)-1>>>0<255)break F;break M}if((b=Y-192|0)>>>0<=413){b=128&u[344+(u[b+94240|0]+A|0)|0];break Q}if(Y>>>0>255)break M}b=128&u[344+(A+Y|0)|0]}if(b)break l}if(M=zA(m+268|0,M)+M|0,(0|(Y=e[m+268>>2]))==32)break}Y=19-Oe|0;break u;case 49:break p;case 2:break C;case 3:break h;case 1:break b;case 13:break m;case 12:break y;default:break v}zA(m+272|0,r),Ie=-1;y:if((0|(b=e[m+272>>2]))!=(0|(M=e[m+268>>2])))if(-33&M)for(;;){oe=X,Ie=-1;M:if((0|b)==18&&(b=d[pe+2|0],W=e[4788+((((0|b)<65?191:-65)+b<<2)+A|0)>>2])){for(;;){if((0|(G=u[0|W]))==7)break M;if((0|G)==126){Ie=0;break M}Q:if((0|(X=u[0|oe]))==(0|G)){if(b=oe,M=W,X)for(;;){if((0|(G=u[0|(M=M+1|0)]))!=(0|(W=u[0|(b=b+1|0)])))break Q;if(!W)break}}else M=W,b=oe;if(!G){b=b-oe|0;break}for(;b=u[0|M],M=W=M+1|0,b;);}Ie=b}if(G=zA(m+268|0,oe),(0|(b=e[m+272>>2]))==(0|(M=e[m+268>>2]))|!(-33&M))break y;if(X=G+oe|0,(0|Ie)!=-1)break}else oe=X;else oe=X;X=(0|b)==(0|M)||(0|Ie)>=0?oe:Ge,W=0;break n}for(;b=b+1|0,u[0|(r=r+1|0)]==21;);break i}r=r+1|0}W=pe}if(!(u[z-1|0]!=32&xt|dA||((0|(M=xt?He+4|0:He))>=(0|Nt)&&(Vn=CA,en=te,Nt=M,Un=PA,ht=r),!(8&e[47197])|Rr|(0|M)<=0))){for(dr(r,pe=m+272|0),Ge=e[47195],G=m+16|0,r=0,oe=0,dA=0,CA=0,H=X=H-496|0,d[X+80|0]=0,(0|s)>0?(SA(X+288|0,I,s),te=s):te=0,d[te+(b=X+288|0)|0]=0,z=BA(b)+b|0,Ie=(0|c)<0;;){if(Y=u[0|o],te=o,o=o+1|0,Y>>>0>9)for(;;){x:{L:{_:{U:{y:{M:switch((b=255&Y)-14|0){case 4:break _;case 3:break U;case 0:break y;case 14:break M;default:break L}if(te=te+2|0,Y=32,!Ie&(0|(o=u[0|o]))==1)break x;d[0|z]=36,DA(b=z+1|0,o=xa(128960,o)),z=BA(o)+b|0;break x}b=u[te+2|0],Y=u[0|o],e[X+36>>2]=127&u[te+3|0],e[X+32>>2]=4&b?80:83,cA(X+48|0,85131,X+32|0),1&b&&(o=BA(o=X+48|0)+o|0,d[0|o]=101,d[o+1|0]=0),2&(o=127&b)&&(b=BA(b=X+48|0)+b|0,d[0|b]=105,d[b+1|0]=0),4&o&&(b=BA(b=X+48|0)+b|0,d[0|b]=112,d[b+1|0]=0),8&o&&(b=BA(b=X+48|0)+b|0,d[0|b]=118,d[b+1|0]=0),16&o&&(b=BA(b=X+48|0)+b|0,d[0|b]=100,d[b+1|0]=0),32&o&&(b=BA(b=X+48|0)+b|0,d[0|b]=102,d[b+1|0]=0),o>>>0>=64&&(o=BA(o=X+48|0)+o|0,d[0|o]=113,d[o+1|0]=0),1&Y&&(o=BA(o=X+48|0)+o|0,d[0|o]=116,d[o+1|0]=0),te=te+4|0,z=DA(z,o=X+48|0)+BA(o)|0,Y=32;break x}te=te+2|0,Y=u[d[0|o]+93871|0];break x}o=d[0|o],d[0|z]=76,b=((o=o+((0|o)<65?191:-65)|0)>>>0)/10|0,d[z+1|0]=b+48,Y=o-O(b,10)|48,(0|CA)==1&&(d[0|z]=Y,Y=76),te=te+2|0,z=z+2|0;break x}Y=b>>>0<=31?u[b+93904|0]:(0|b)==32?95:Y,te=o}if(d[0|z]=Y,o=te+1|0,z=z+1|0,!((Y=u[0|te])>>>0>=10))break}b=1;x:switch(0|Y){case 1:b=r;case 8:d[0|z]=0,z=X+80|0,r=b,CA=1;continue;case 2:d[0|z]=0,te=BA(b=X+288|0)+b|0,z=u[84899]|u[84900]<<8,d[0|te]=z,d[te+1|0]=z>>>8,CA=2,d[te+2|0]=u[84901],z=BA(b)+b|0;continue;case 5:oe=d[0|o],o=te+2|0;continue;case 9:dA=(u[0|o]+O(u[te+2|0],255)|0)-256|0,o=te+3|0;continue;case 0:case 3:break x;default:continue}break}if(d[0|z]=0,z=G,(0|dA)>0&&(e[X+16>>2]=dA,cA(G,85581,X+16|0),z=G+7|0),(0|oe)>0&&(e[X>>2]=oe,cA(z,85694,X),z=BA(z)+z|0),1&((0|(o=BA(X+80|0)))>0|r)){1&r&&(d[0|z]=95,z=z+1|0);x:if(!((0|(te=o-1|0))<0|z>>>0>=G>>>0))for(;;){if(d[0|z]=u[(X+80|0)+te|0],z=z+1|0,(0|te)<=0)break x;if(te=te-1|0,!(z>>>0>>0))break}d[0|z]=41,d[z+1|0]=32,z=z+2|0}d[0|z]=0,d[(r=X+288|0)+((G+3|0)-z|0)|0]=0,Jr(z,r),(0|(r=BA(G)))<=7&&(eA(r+G|0,32,8-r|0),r=8),d[r+G|0]=0,H=X+496|0,e[m+4>>2]=G,e[m>>2]=(0|s)>1?M+35|0:M,e[m+8>>2]=pe,rr(Ge,89088,m)}r=W;break l}if(!u[0|z])break l;Je=(0|(b=Je+2|0))>=19?19:b,zA(m+264|0,z),b=er(m+268|0,G=z-1|0),oe=u[0|G],Ge=G;I:{x:{L:{_:{U:{y:switch(M-10|0){case 13:if(b=(0|(OA=u[0|r]))==(0|(M=u[0|z])),Ie=-1,(0|M)==32|(0|M)==(0|OA))break _;if(M)break U;break L;case 7:r=pe+2|0,W=e[m+268>>2],z=d[pe+1|0];M:if(M=e[604+(((z=((0|z)<65?191:-65)+z|0)<<2)+A|0)>>2])M=!!(0|Mt(M,W));else{if((0|z)>7)break l;Q:{if((0|(M=e[A+600>>2]))>0){if((W=W-M|0)-1>>>0<255)break Q;break l}if((M=W-192|0)>>>0<=413){M=u[344+(u[M+94240|0]+A|0)|0]&1<>>0>255)break l}M=u[344+(A+W|0)|0]&1<>2]))break l;M:{for(;;){if((0|(oe=u[0|b]))==7)break l;if((0|oe)==126){Ie=0;break M}M=G;Q:{F:{if((0|(pe=(Ie=BA(b))-1|0))>0)for(M=z-Ie|0,W=0,Y=G;;){if(!u[0|(Y=Y-1|0)])break F;if((0|pe)==(0|(W=W+1|0)))break}Ae:if(!((0|(W=u[0|M]))!=(0|oe)|!W))for(;;){if((0|(oe=u[0|(b=b+1|0)]))!=(0|(W=u[0|(M=M+1|0)])))break Ae;if(!W)break}if(!oe)break Q}for(M=b;W=u[0|M],M=b=M+1|0,W;);continue}break}if((0|Ie)<0)break l}W=20-Oe|0,G=1+(G-Ie|0)|0;break I;case 15:M=e[m+268>>2];M:{Q:if(z=e[A+604>>2])z=!!(0|Mt(z,M));else{F:{if((0|(z=e[A+600>>2]))>0){if((M=M-z|0)-1>>>0<255)break F;break M}if((z=M-192|0)>>>0<=413){z=1&d[344+(u[z+94240|0]+A|0)|0];break Q}if(M>>>0>255)break M}z=1&d[344+(A+M|0)|0]}if(z)break l}W=20-Je|0,G=1+(G-b|0)|0;break I;case 1:if(e[m+268>>2]!=e[m+264>>2])break l;W=21-Je|0,G=1+(G-b|0)|0;break I;case 5:if(!((z=e[m+268>>2])-48>>>0<10|z-2406>>>0<10))break l;W=21-Je|0,G=1+(G-b|0)|0;break I;case 6:if(fi(e[m+268>>2]))break l;W=21-Oe|0,G=1+(G-b|0)|0;break I;case 18:if(r=pe+2|0,!((0|(M=u[pe+1|0]))==3|(240&M)==32)||(SA(b=m+96|0,Jt,G=1+(e[t>>2]+(PA+ir|0)|0)|0),d[0|(b=b+G|0)]=32,d[b+1|0]=0,e[33265]=0,e[33266]=0,e[m+16>>2]=br,IA(A,m+16|0,m+272|0,133060,0,0),W=23,!((0|M)!=3|(0|(Y=e[33265]))>=0|16384&e[33266])))break n;if(b=te,G=z,Y>>>(15&M)&16384)break b;break l;case 11:if(M=1,u[0|r]==21)for(;M=M+1|0,u[0|(r=r+1|0)]==21;);if(e[A+8208>>2]<(0|M))break l;W=18+(M-Je|0)|0;break I;case 0:if(W=19,b=te,G=z,e[A+8212>>2]>0)break b;break l;case 19:if(W=3,(0|(Y=e[m+268>>2]))==32)break I;for(M=1+(G-b|0)|0;;){M:{Q:if(b=e[A+632>>2])b=!!(0|Mt(b,Y));else{F:{if((0|(b=e[A+600>>2]))>0){if((Y=Y-b|0)-1>>>0<255)break F;break M}if((b=Y-192|0)>>>0<=413){b=128&u[344+(u[b+94240|0]+A|0)|0];break Q}if(Y>>>0>255)break M}b=128&u[344+(A+Y|0)|0]}if(b)break l}if(M=M-er(m+268|0,M-1|0)|0,(0|(Y=e[m+268>>2]))==32)break}break I;case 16:if(W=1,b=te,G=z,e[A+8184>>2])break b;break l;case 9:if(W=1,b=te,G=z,sa)break b;break l;case 36:for(;;){if(W=50,b=te,!(z=(255&oe)-32|0))break l;if((0|z)==14)break b;oe=u[0|(Ge=Ge-1|0)]}case 35:break y;default:break x}y:{if(b=oe-32|0){if((0|b)==13)break y;break l}if(!aa)break l}W=22-Oe|0;break I}U:{for(;;){Ie=-1,Y=z,z=z-1|0;y:if((0|OA)==18&&(b=d[pe+2|0],W=e[4788+((((0|b)<65?191:-65)+b<<2)+A|0)>>2]))for(Kn=Y+1|0;;){if((0|(Ge=u[0|W]))==7){Ie=-1;break y}if((0|Ge)==126){Ie=0;break y}M=Y;M:{if((0|(Tr=(Ie=BA(W))-1|0))>0)for(M=Kn-Ie|0,oe=0,b=Y;;){if(!u[0|(b=b-1|0)])break M;if((0|Tr)==(0|(oe=oe+1|0)))break}Q:if(!((0|(b=u[0|M]))!=(0|Ge)|!b))for(;;){if((0|(Ge=u[0|(W=W+1|0)]))!=(0|(b=u[0|(M=M+1|0)])))break Q;if(!b)break}if(!Ge)break y}for(M=W;b=u[0|M],M=W=M+1|0,b;);}if(b=(0|(M=u[0|z]))==(0|OA),(0|M)==32|(0|M)==(0|OA))break U;if(!M){z=Y;break L}if((0|Ie)!=-1)break}z=Y;break L}z=Y}G=b?z:G}W=0,G=(0|Ie)<0?G:z+1|0;break I}if((0|M)!=(0|oe))break l;W=4,(0|M)!=32&&(W=(192&M)!=128?21-Je|0:0)}b=te;break b}if((0|M)!=(0|oe))break l;Y=(192&M)!=128?21-Oe|0:0;break u}if(W=1,ps)break l}He=W+He|0;continue}if(b=d[pe+1|0],te=u[pe+3|0],G=u[pe+2|0],1&!(e[A+8208>>2]|4&G)&d[A+84|0])break l;r=pe+4|0,Y=0,te=127&te|(127&G)<<8|b<<16;break u}C:if(!(Ge>>>0<=(M=e[t>>2]+s|0)>>>0)){for(;;){if(u[0|M]!=101){if(b=M>>>0>>0,M=M+1|0,b)continue;break C}break}Y=0,CA=M;break u}Y=0;break u}W=-20;break n}if(oe=0,(0|(M=e[m+268>>2]))!=32)for(Y=X+Ie|0,W=0;;){if(!W){i:{p:if(G=e[A+632>>2])M=!!(0|Mt(G,M));else{C:{if((0|(G=e[A+600>>2]))>0){if((M=M-G|0)-1>>>0<255)break C;break i}if((G=M-192|0)>>>0<=413){M=128&u[344+(u[G+94240|0]+A|0)|0];break p}if(M>>>0>255)break i}M=128&u[344+(A+M|0)|0]}M&&(oe=oe+1|0)}M=e[m+268>>2]}i:if(G=e[A+632>>2])W=!!(0|Mt(G,M));else{p:{if((0|(G=e[A+600>>2]))>0){if(W=0,(M=M-G|0)-1>>>0<255)break p;break i}if((G=M-192|0)>>>0<=413){W=128&u[344+(u[G+94240|0]+A|0)|0];break i}if(W=0,M>>>0>255)break i}W=128&u[344+(A+M|0)|0]}if(Y=zA(m+268|0,Y)+Y|0,(0|(M=e[m+268>>2]))==32)break}if(!((0|b)>(0|oe))){Y=18+(b-Oe|0)|0;break u}}for(;b=u[0|r],r=o=r+1|0,b;);if(u[0|o]!=7)continue a;if(A=s+Un|0,e[t>>2]=e[t>>2]+(A||1),Nt)break A;break r}b=te,X=Ge,G=z,He=Y+He|0;continue}X=X+Ie|0,W=21-Oe|0;break n}X=X+Ie|0,W=20-Oe|0}b=te,G=z,He=W+He|0}}ht=86135}e[l+12>>2]=Vn,e[l+8>>2]=en,e[l+4>>2]=ht,e[l>>2]=Nt}H=m+384|0}function dt(A,t){var r,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0,PA=0,OA=0,tt=0,ht=0,xt=0,Nt=0;H=r=H-1168|0,e[r+928>>2]=0,e[r+932>>2]=0,e[r+920>>2]=0,e[r+924>>2]=0,e[r+912>>2]=0,e[r+916>>2]=0,e[r+904>>2]=0,e[r+908>>2]=0,e[r+896>>2]=0,e[r+900>>2]=0;e:{A:{if(A){if(u[0|A]|8&t)break A;break e}if(!(8&t))break e}if(Rt(r+1088|0,A,40),16&t){if((0|Ns(DA(r+704|0,A)))<=0)break e;Y=8&t}else(Y=8&t)|u[r+1088|0]||(k[r+1088>>1]=u[85055]|u[85056]<<8,d[r+1090|0]=u[85057]),e[r+496>>2]=137584,e[r+500>>2]=47,e[r+504>>2]=47,cA(s=r+512|0,85286,r+496|0),e[r+484>>2]=r+1088,e[r+480>>2]=s,cA(s=r+704|0,85425,r+480|0),(0|Ns(s))>0||(e[r+468>>2]=47,e[r+472>>2]=47,e[r+464>>2]=137584,cA(s=r+512|0,85648,r+464|0),e[r+452>>2]=r+1088,e[r+448>>2]=s,cA(r+704|0,85425,r+448|0));if(o=Y?86012:85055,!(X=es(r+704|0,85712))){if(s=0,3&t)break e;o=(0|Ua(s=r+1088|0))<0?o:s}if((W=2&t)||(s=e[47192])&&(ko(s),e[47192]=0),pe=DA(r+992|0,o),oe=DA(r+944|0,o),W?((s=Ls(200992,43))&&(d[0|s]=0),e[r+432>>2]=A+3,cA(A=r+704|0,86030,r+432|0),Jr(200992,A)):(e[32972]=199592,Rt(200992,A,40),d[201088]=0,d[201040]=0,e[50299]=200992,e[50298]=201088,e[50297]=201040),qs(W),X){for(Ge=e[30450],Oe=r+548|0,He=r+544|0,Je=r+540|0,dA=r+536|0,CA=r+532|0,PA=r+528|0,OA=12|(A=r+512|0),tt=8|A,ht=4|A;Bt(r+704|0,190,X);){A=r+704|0;A:{if(u[r+704|0]!=35){r:if(!((0|(A=BA(r+704|0)-1|0))<=0))for(;;){if(!((0|(o=d[0|(s=(r+704|0)+A|0)]))==32|o-9>>>0<5))break r;if(d[0|s]=0,!((0|(A=A-1|0))>0))break}if(!(A=js(r+704|0)))break A}d[0|A]=0}A=r+704|0;A:if(s=u[r+704|0])for(;;){if((0|(s=s<<24>>24))==32|s-9>>>0<5)break A;if(!(s=u[0|(A=A+1|0)]))break}if(d[0|A]=0,u[r+704|0])if(A=A+1|0,s=ft(129744,r+704|0)){l=0,H=o=H-416|0;A:if(c=e[47192]){r:switch(s-19|0){case 16:if(e[o+32>>2]=o+412,(0|UA(A,84249,o+32|0))!=1)break A;e[c+324>>2]=e[o+412>>2];break A;case 8:sn(A,c+320|0,27);break A;case 2:if(e[o+48>>2]=188784,UA(A,84249,o+48|0),!(A=u[188784]))break A;e[c+152>>2]=A;break A;case 11:if(u[0|A]){for(f=e[30450];;)if(s=A,A=A+1|0,!((0|(l=d[0|s]))==32|l-9>>>0<5)){for(l=da(s),e[o+412>>2]=l,(0|l)>0&&(l>>>0<=31?e[c+104>>2]=e[c+104>>2]|1<>>0<=63?e[c+108>>2]=e[c+108>>2]|1<>2]=l,rr(f,84700,o- -64|0)),s=A);s=(A=s)+1|0,(l=d[0|A])-48>>>0<10|(32|l)-97>>>0<26;);if(!l)break}}8&(A=e[c+104>>2])&&(e[c+124>>2]=46,e[c+128>>2]=44),4&A&&(e[c+124>>2]=0);break A;default:if((65280&s)!=256)break A;e[o+16>>2]=24+(c+((255&s)<<2)|0),UA(A,84249,o+16|0);break A;case 1:e[o+144>>2]=c,e[o+148>>2]=c+4,UA(A,85642,o+144|0);break A;case 3:if(s=0,eA(l=o+160|0,0,240),e[o+132>>2]=o+360,e[o+128>>2]=o+320,e[o+124>>2]=o+280,e[o+120>>2]=o+240,e[o+116>>2]=o+200,e[o+112>>2]=l,l=UA(A,85037,o+112|0),e[o+412>>2]=l,e[c+152>>2]=0,(0|l)<=0)break A;for(b=e[30450];;){a:if(tr(f=(o+160|0)+O(s,40)|0,85301)){n:{if((0|(I=e[34454]))>0)for(z=e[34455],A=0;;){if(!tr(f,z+O(A,68)|0))break n;if((0|I)==(0|(A=A+1|0)))break}e[o+96>>2]=f,rr(b,85562,o+96|0),l=e[o+412>>2];break a}d[156+(s+c|0)|0]=A}if(!((0|l)>(0|(s=s+1|0))))break}break A;case 9:e[o+88>>2]=c+20,e[o+84>>2]=c+16,e[o+80>>2]=c+8,UA(A,84778,o+80|0);break A;case 10:sn(A,c+12|0,29);break A;case 5:if((0|(b=Fn(A,o+160|0)))<=0)break A;if(s=0,A=0,b>>>0>=4)for(z=-4&b,f=c+304|0;I=o+160|0,k[f+(A<<1)>>1]=e[I+(A<<2)>>2],k[f+((m=1|A)<<1)>>1]=e[I+(m<<2)>>2],k[f+((m=2|A)<<1)>>1]=e[I+(m<<2)>>2],k[f+((m=3|A)<<1)>>1]=e[I+(m<<2)>>2],A=A+4|0,(0|z)!=(0|(l=l+4|0)););if(!(l=3&b))break A;for(;k[304+(c+(A<<1)|0)>>1]=e[(o+160|0)+(A<<2)>>2],A=A+1|0,(0|l)!=(0|(s=s+1|0)););break A;case 6:if((0|(b=Fn(A,o+160|0)))<=0)break A;if(s=0,A=0,b>>>0>=4)for(z=-4&b,f=c+296|0;I=o+160|0,d[A+f|0]=e[I+(A<<2)>>2],d[(m=1|A)+f|0]=e[I+(m<<2)>>2],d[(m=2|A)+f|0]=e[I+(m<<2)>>2],d[(m=3|A)+f|0]=e[I+(m<<2)>>2],A=A+4|0,(0|z)!=(0|(l=l+4|0)););if(!(l=3&b))break A;for(;d[296+(A+c|0)|0]=e[(o+160|0)+(A<<2)>>2],A=A+1|0,(0|l)!=(0|(s=s+1|0)););break A;case 7:if((0|(b=Fn(A,o+160|0)))<=0)break A;if(s=0,A=0,b>>>0>=4)for(z=-4&b,f=c+304|0;m=I=f+(A<<1)|0,M=y[I>>1],I=o+160|0,k[m>>1]=M+y[I+(A<<2)>>1],k[(M=f+((m=1|A)<<1)|0)>>1]=y[M>>1]+y[I+(m<<2)>>1],k[(M=f+((m=2|A)<<1)|0)>>1]=y[M>>1]+y[I+(m<<2)>>1],k[(M=f+((m=3|A)<<1)|0)>>1]=y[M>>1]+y[I+(m<<2)>>1],A=A+4|0,(0|z)!=(0|(l=l+4|0)););if(!(l=3&b))break A;for(;k[(f=c+(A<<1)|0)+304>>1]=y[f+304>>1]+y[(o+160|0)+(A<<2)>>1],A=A+1|0,(0|l)!=(0|(s=s+1|0)););break A;case 4:d[c+169|0]=1;break A;case 0:break r}d[c+208|0]=1}else e[o>>2]=xa(129568,s),rr(e[30450],89101,o);H=o+416|0}else{A:switch(ft(131904,r+704|0)-1|0){case 1:if(W||(d[r+1040|0]=0,e[r+512>>2]=5,e[r+32>>2]=r+1040,e[r+36>>2]=r+512,UA(A,86237,r+32|0),e[r+1040>>2]==1769103734&e[r+1044>>2]==7630433))continue;if((A=BA(r+1040|0)+2|0)>>>0<99-te>>>0&&(d[0|(s=te+201088|0)]=e[r+512>>2],DA(s+1|0,r+1040|0),te=A+te|0),!xt){if(A=0,(s=f=r+1040|0)||(s=e[57150])){if(A=86875,e[(o=H-32|0)+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[o>>2]=0,e[o+4>>2]=0,c=0,l=u[86875])if(u[86876]){for(;e[(c=o+(l>>>3&28)|0)>>2]=e[c>>2]|1<>>3&28)>>2]>>>l&1))break r;if(l=u[A+1|0],A=A+1|0,!l)break}c=A-s|0}else{for(A=s;o=A,A=A+1|0,u[0|o]==(0|l););c=o-s|0}if(u[0|(A=c+s|0)]){s=86875,H=l=H-32|0,o=d[86875];r:if(u[86876]&&o){if(eA(l,0,32),o=u[86875])for(;e[(c=l+(o>>>3&28)|0)>>2]=e[c>>2]|1<>>3&28)>>2]>>>o&1)break r;if(o=u[s+1|0],s=s+1|0,!o)break}}else s=ua(A,o);H=l+32|0,u[0|(s=(s-A|0)+A|0)]?(e[57150]=s+1,d[0|s]=0):e[57150]=0}else e[57150]=0,A=0}s=DA(pe,A),DA(oe,A),Ua(DA(r+896|0,A)),e[47192]=kA(s),Rt(e[32972]+40|0,f,20)}xt=1;continue;case 0:if(W)continue;for(;s=A,A=A+1|0,(0|(o=d[0|s]))==32|o-9>>>0<5;);Rt(201040,s,40);continue;case 2:e[r+1152>>2]=0,s=r+512|0,e[r+48>>2]=s,e[r+52>>2]=r+1152,UA(A,86237,r+48|0),d[201200]=ft(132112,s),d[201201]=e[r+1152>>2];continue;case 4:e[r+64>>2]=oe,UA(A,86939,r- -64|0);continue;case 3:e[r+80>>2]=r+896,UA(A,86939,r+80|0);continue;case 8:if(e[r+1152>>2]=100,e[r+1164>>2]=100,e[r+1148>>2]=100,e[r+112>>2]=r+1144,e[r+1144>>2]=0,e[r+96>>2]=r+512,e[r+100>>2]=r+1152,e[r+104>>2]=r+1164,e[r+108>>2]=r+1148,(0|UA(A,91156,r+96|0))<2||(A=e[r+512>>2])>>>0>8||((0|(s=e[r+1152>>2]))>=0&&(o=e[32972]+(A<<1)|0,s=Ae(G=2.56001*+(0|s))<2147483648?~~G:-2147483648,k[o+236>>1]=s,k[o+164>>1]=s),(0|(s=e[r+1164>>2]))>=0&&(o=e[32972]+(A<<1)|0,s=Ae(G=2.56001*+(0|s))<2147483648?~~G:-2147483648,k[o+254>>1]=s,k[o+182>>1]=s),(0|(o=e[r+1148>>2]))<0?s=e[32972]:(f=(s=e[32972])+(A<<1)|0,o=Ae(G=2.56001*+(0|o))<2147483648?~~G:-2147483648,k[f+200>>1]=o),k[218+((A<<1)+s|0)>>1]=e[r+1144>>2],A))continue;k[s+200>>1]=(0|O(k[s+200>>1],105))/100;continue;case 9:if(e[r+132>>2]=r+696,e[r+128>>2]=r+700,(0|UA(A,87106,r+128|0))!=2)continue;if(A=e[32972],s=e[r+700>>2],e[A+64>>2]=(s<<12)-36864,e[A+68>>2]=O(e[r+696>>2]-s|0,108),Ae(G=256*(+(s-82|0)/82*.25+1))<2147483648){e[A+116>>2]=~~G;continue}e[A+116>>2]=-2147483648;continue;case 35:Nt||Ua(r+896|0),e[r+1164>>2]=0,d[r+1156|0]=u[91267],e[r+1152>>2]=u[91263]|u[91264]<<8|u[91265]<<16|u[91266]<<24,e[r+144>>2]=r+1164,e[r+148>>2]=r+512,e[r+152>>2]=r+1152,(0|UA(A,91302,r+144|0))<2|e[49848]>59||(A=on(r+512|0))&&(d[O(e[49848],3)+199408|0]=A,A=on(r+1152|0),s=e[49848],o=O(s,3)+199408|0,d[o+1|0]=A,e[49848]=s+1,d[o+2|0]=e[r+1164>>2]),Nt=1;continue;case 10:e[r+1140>>2]=0,s=e[32972],e[s+100>>2]=0,e[r+164>>2]=s+100,e[r+160>>2]=s+96,UA(A,87106,r+160|0);continue;case 11:if(e[r+176>>2]=r+1140,(0|UA(A,87268,r+176|0))!=1)continue;e[e[32972]+88>>2]=e[r+1140>>2]<<5;continue;case 12:if(e[r+192>>2]=r+1140,(0|UA(A,87268,r+192|0))!=1)continue;e[e[32972]+92>>2]=e[r+1140>>2];continue;case 13:if(e[r+208>>2]=r+1140,(0|UA(A,87268,r+208|0))!=1)continue;s=e[32972],(0|(A=e[r+1140>>2]))>=5&&(e[s+108>>2]=1,e[r+1140>>2]=4,A=4),e[s+104>>2]=A+1;continue;case 14:for(e[r+552>>2]=-1,e[r+556>>2]=-1,e[r+544>>2]=-1,e[r+548>>2]=-1,e[r+536>>2]=-1,e[r+540>>2]=-1,e[r+528>>2]=-1,e[r+532>>2]=-1,e[r+240>>2]=PA,e[r+244>>2]=CA,e[r+248>>2]=dA,e[r+252>>2]=Je,e[r+256>>2]=He,e[r+260>>2]=Oe,e[r+520>>2]=-1,e[r+524>>2]=-1,e[r+512>>2]=-1,e[r+516>>2]=-1,e[r+228>>2]=ht,e[r+232>>2]=tt,e[r+236>>2]=OA,e[r+224>>2]=r+512,UA(A,84222,r+224|0),z=e[32972],A=0,l=e[r+516>>2],o=0;;){if(s=o,c=l,f=A,(0|(o=e[(l=(A<<=2)+(r+512|0)|0)>>2]))==-1&&(o=8e3,e[l>>2]=8e3,f&&(e[(r+512|0)+(4|A)>>2]=e[508+(A+r|0)>>2])),l=e[(r+512|0)+(4|A)>>2],!((0|s)>=(0|(o=(0|o)/8|0))||(0|(I=o-s|0))<=0||(b=s+1|0,A=s,1&I&&(d[344+(s+z|0)|0]=(0|c)>=255?255:c,A=b),(0|o)==(0|b))))for(b=l-c|0;M=z+344|0,m=c+((0|O(b,A-s|0))/(0|I)|0)|0,d[M+A|0]=(0|m)>=255?255:m,m=c+((0|O(b,(Ie=A+1|0)-s|0))/(0|I)|0)|0,d[M+Ie|0]=(0|m)>=255?255:m,(0|o)!=(0|(A=A+2|0)););if(A=f+2|0,!(f>>>0<10))break}continue;case 15:if(e[r+272>>2]=r+1140,(0|UA(A,87268,r+272|0))!=1)continue;e[e[32972]+112>>2]=(e[r+1140>>2]<<6)/100;continue;case 16:s=e[32972],e[(o=s+300|0)>>2]=0,e[o+4>>2]=0,e[(l=s+292|0)>>2]=0,e[l+4>>2]=0,e[(c=s+284|0)>>2]=0,e[c+4>>2]=0,e[(f=s+276|0)>>2]=0,e[f+4>>2]=0,e[r+316>>2]=s+304,e[r+312>>2]=o,e[r+308>>2]=s+296,e[r+304>>2]=l,e[r+300>>2]=s+288,e[r+296>>2]=c,e[r+292>>2]=s+280,e[r+288>>2]=f,s=UA(A,84553,r+288|0),A=e[32972],e[A+272>>2]=s,e[A+276>>2]=0-e[A+276>>2],e[A+284>>2]=0-e[A+284>>2],e[A+292>>2]=0-e[A+292>>2],e[A+300>>2]=0-e[A+300>>2];continue;case 17:s=e[32972],e[(o=s+336|0)>>2]=0,e[o+4>>2]=0,e[(l=s+328|0)>>2]=0,e[l+4>>2]=0,e[(c=s+320|0)>>2]=0,e[c+4>>2]=0,e[(f=s+312|0)>>2]=0,e[f+4>>2]=0,e[r+348>>2]=s+340,e[r+344>>2]=o,e[r+340>>2]=s+332,e[r+336>>2]=l,e[r+332>>2]=s+324,e[r+328>>2]=c,e[r+324>>2]=s+316,e[r+320>>2]=f,A=UA(A,84553,r+320|0),e[e[32972]+308>>2]=A;continue;case 36:s=e[32972],e[r+352>>2]=s+120,e[r+356>>2]=s+124,e[r+1140>>2]=UA(A,87106,r+352|0);continue;case 33:e[r+368>>2]=e[32972]+84,UA(A,87268,r+368|0),Is(3);continue;case 31:s=e[32972],e[(o=s+156|0)>>2]=0,e[o+4>>2]=0,e[(l=s+148|0)>>2]=0,e[l+4>>2]=0,e[(c=s+140|0)>>2]=0,e[c+4>>2]=0,e[(f=s+132|0)>>2]=0,e[f+4>>2]=0,e[r+412>>2]=s+160,e[r+408>>2]=o,e[r+404>>2]=s+152,e[r+400>>2]=l,e[r+396>>2]=s+144,e[r+392>>2]=c,e[r+388>>2]=s+136,e[r+384>>2]=f,UA(A,84553,r+384|0),A=e[32972],e[A+152>>2]=e[A+152>>2]-40;continue;case 32:e[r+416>>2]=145740,UA(A,87268,r+416|0),Is(3);continue;case 6:case 7:continue;default:break A}e[r+16>>2]=r+704,rr(Ge,87359,r+16|0)}}Dr(X)}A:{if((A=e[47192])|W){if(W)break A}else A=kA(pe),e[47192]=A;r:{if(!Y){if((0|(A=Ua(r+896|0)))<0&&(e[r>>2]=r+896,rr(e[30450],87567,r),A=0),e[e[32972]+60>>2]=A,s=e[47192],e[s+292>>2]=A,ds(s,oe,4&t),u[132848])break r;ko(e[47192]),s=0;break e}e[e[32972]+60>>2]=0,e[A+292>>2]=0}d[te+201088|0]=0}s=e[32972]}return H=r+1168|0,s}function UA(A,t,r){var s,o,l,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0;H=l=H-16|0,e[l+12>>2]=r,H=c=H-144|0,s=eA(c,0,144),e[s+76>>2]=-1,e[s+44>>2]=A,e[s+32>>2]=18,e[s+84>>2]=A,c=t,Oe=r,A=0,H=o=H-304|0;e:{A:{r:if(e[s+4>>2]||(un(s),e[s+4>>2])){if(!(t=u[0|c]))break e;a:{n:{o:{c:{for(;;){u:{l:if((0|(t&=255))==32|t-9>>>0<5){for(;t=c,c=c+1|0,(0|(r=u[t+1|0]))==32|r-9>>>0<5;);for(fs(s,0,0);(0|(r=e[s+4>>2]))==e[s+104>>2]?r=Me(s):(e[s+4>>2]=r+1,r=u[0|r]),(0|r)==32|r-9>>>0<5;);c=e[s+4>>2],(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(c=c-1|0,e[s+4>>2]=c),c=r=c-e[s+44>>2]|0,b=te+e[s+124>>2]|0,b=(f=r>>31)+((r=W+e[s+120>>2]|0)>>>0>>0?b+1|0:b)|0,te=(W=r+c|0)>>>0>>0?b+1|0:b}else{i:{p:{C:{if(u[0|c]==37){if((0|(t=u[c+1|0]))==42)break C;if((0|t)!=37)break p}if(fs(s,0,0),u[0|c]!=37)(0|(t=e[s+4>>2]))==e[s+104>>2]?t=Me(s):(e[s+4>>2]=t+1,t=u[0|t]);else{for(;(0|(t=e[s+4>>2]))==e[s+104>>2]?t=Me(s):(e[s+4>>2]=t+1,t=u[0|t]),(0|t)==32|t-9>>>0<5;);c=c+1|0}if(u[0|c]!=(0|t)){if((0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),(0|t)>=0||(m=0,He))break e;break r}I=(f=t=e[s+4>>2]-e[s+44>>2]|0)>>31,t=te+e[s+124>>2]|0,m=((r=W+e[s+120>>2]|0)>>>0>>0?t+1|0:t)+I|0,te=(W=r+f|0)>>>0>>0?m+1|0:m,t=c;break l}M=0,t=c+2|0;break i}u[c+2|0]!=36|t-48>>>0>=10?(M=e[Oe>>2],Oe=Oe+4|0,t=c+1|0):(t=u[c+1|0]-48|0,e[(r=H-16|0)+12>>2]=Oe,t=(t>>>0>1?(t<<2)-4|0:0)+Oe|0,e[r+8>>2]=t+4,M=e[t>>2],t=c+3|0)}if(G=0,c=0,u[0|t]-48>>>0<10)for(;c=(u[0|t]+O(c,10)|0)-48|0,r=u[t+1|0],t=t+1|0,r-48>>>0<10;);(0|(Y=u[0|t]))==109&&(z=0,G=!!(0|M),Y=u[t+1|0],A=0,t=t+1|0),t=(r=t)+1|0,f=3,m=G;i:{p:switch(Y-65|0){case 39:f=r+2|0,t=(r=u[r+1|0]==104)?f:t,f=r?-2:-1;break i;case 43:f=r+2|0,t=(r=u[r+1|0]==108)?f:t,f=r?3:1;break i;case 51:case 57:f=1;break i;case 11:f=2;break i;case 41:break i;case 0:case 2:case 4:case 5:case 6:case 18:case 23:case 26:case 32:case 34:case 35:case 36:case 37:case 38:case 40:case 45:case 46:case 47:case 50:case 52:case 55:break p;default:break a}f=0,t=r}m=f,Ie=(f=(47&(r=u[0|t]))==3)?1:m;i:if((0|(pe=f?32|r:r))!=91){p:{if((0|pe)!=110){if((0|pe)!=99)break p;c=(0|c)<=1?1:c;break i}_n(M,Ie,W,te);break l}for(fs(s,0,0);(0|(r=e[s+4>>2]))==e[s+104>>2]?r=Me(s):(e[s+4>>2]=r+1,r=u[0|r]),(0|r)==32|r-9>>>0<5;);r=e[s+4>>2],(0|(f=e[s+116>>2]))>0|(0|f)>=0&&(r=r-1|0,e[s+4>>2]=r),f=r=r-e[s+44>>2]|0,b=te+e[s+124>>2]|0,te=(m=r>>31)+((r=W+e[s+120>>2]|0)>>>0>>0?b+1|0:b)|0,te=(W=r+f|0)>>>0>>0?te+1|0:te}if(X=c,fs(s,c,oe=c>>31),(0|(r=e[s+4>>2]))==e[s+104>>2]){if((0|Me(s))<0)break n}else e[s+4>>2]=r+1;(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),r=16;i:{p:{C:{h:{b:switch(pe-88|0){default:if((r=pe-65|0)>>>0>6|!(1<>2]-e[s+44>>2]|0,e[s+120>>2]!=(0-r|0)|e[s+124>>2]!=(0-((r>>31)+!!(0|r)|0)|0))break C;break o;case 3:case 11:case 27:if((16|pe)==115){if(eA(o+32|0,-1,257),d[o+32|0]=0,(0|pe)!=115)break p;d[o+65|0]=0,d[o+46|0]=0,k[o+42>>1]=0,k[o+44>>1]=0;break p}eA(o+32|0,I=(0|(f=u[t+1|0]))==94,257),d[o+32|0]=0,r=I?t+2|0:t+1|0;m:{v:{I:{if((0|(t=u[(I?2:1)+t|0]))!=45){if((0|t)==93)break I;f=(0|f)!=94,t=r;break m}f=(0|f)!=94,d[o+78|0]=f;break v}f=(0|f)!=94,d[o+126|0]=f}t=r+1|0}for(;;){if((0|(r=u[0|t]))==45){if(r=45,!(!(I=u[t+1|0])|(0|I)==93)){if(m=t+1|0,I>>>0<=(t=u[t-1|0])>>>0)r=I;else for(;d[(t=t+1|0)+(o+32|0)|0]=f,(r=u[0|m])>>>0>t>>>0;);t=m}}else{if(!r)break n;if((0|r)==93)break p}d[33+(r+o|0)|0]=f,t=t+1|0}case 23:r=8;break h;case 12:case 29:r=10;break h;case 1:case 2:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 22:case 25:case 26:case 28:case 30:case 31:break i;case 0:case 24:case 32:break h;case 17:break b}r=0}I=0,b=0,f=0,m=0,Y=0,H=Ge=H-16|0;h:if((0|r)!=1&r>>>0<=36){for(;(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Me(s):(e[s+4>>2]=c+1,c=u[0|c]),(0|c)==32|c-9>>>0<5;);b:{m:switch(c-43|0){case 0:case 2:break m;default:break b}Y=(0|c)==45?-1:0,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Me(s):(e[s+4>>2]=c+1,c=u[0|c])}b:{m:{v:{I:{if(!(!!(0|r)&(0|r)!=16|(0|c)!=48)){if((0|(c=e[s+4>>2]))==e[s+104>>2]?c=Me(s):(e[s+4>>2]=c+1,c=u[0|c]),(-33&c)==88){if(r=16,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Me(s):(e[s+4>>2]=c+1,c=u[0|c]),u[c+121329|0]<16)break v;(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),fs(s,0,0);break h}if(r)break I;r=8;break v}if(!((r=r||10)>>>0>u[c+121329|0])){(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),fs(s,0,0),e[56798]=28;break h}}if((0|r)==10){if((f=c-48|0)>>>0<=9){for(r=0;m=(r=O(r,10)+f|0)>>>0<429496729,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Me(s):(e[s+4>>2]=c+1,c=u[0|c]),m&(f=c-48|0)>>>0<=9;);I=r}I:if(!(f>>>0>9)){for(r=st(I,0,10,0),m=me;;){if(b=m,m=(0|(b=(I=r+f|0)>>>0>>0?b+1|0:b))==429496729&I>>>0>=2576980378|b>>>0>429496729,(0|(r=e[s+4>>2]))==e[s+104>>2]?c=Me(s):(e[s+4>>2]=r+1,c=u[0|r]),m|(f=c-48|0)>>>0>9)break I;if(r=st(I,b,10,0),!((0|(m=me))==-1&~f>>>0>=r>>>0|(0|m)!=-1))break}r=10;break m}if(r=10,f>>>0<=9)break m;break b}}if(r-1&r){if((m=u[c+121329|0])>>>0>>0){for(;I=(f=O(r,f)+m|0)>>>0<119304647,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Me(s):(e[s+4>>2]=c+1,c=u[0|c]),I&(m=u[c+121329|0])>>>0>>0;);I=f}if(r>>>0<=m>>>0)break m;for(;;){if(f=st(I,b,r,0),(0|(X=me))==-1&~(m&=255)>>>0>>0||(b=X,b=(I=f+m|0)>>>0>>0?b+1|0:b,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Me(s):(e[s+4>>2]=c+1,c=u[0|c]),r>>>0<=(m=u[c+121329|0])>>>0))break m;if(Fr(Ge,r,0,0,0,I,b,0,0),e[Ge+8>>2]|e[Ge+12>>2])break}}else{if(X=d[84400+(O(r,23)>>>5&7)|0],(f=u[c+121329|0])>>>0>>0){for(;I=(m=m<>>0<134217728,(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Me(s):(e[s+4>>2]=c+1,c=u[0|c]),I&(f=u[c+121329|0])>>>0>>0;);I=m}if(!(r>>>0<=f>>>0||(oe=31&X,(63&X)>>>0>=32?(m=0,oe=-1>>>oe|0):oe=(m=-1>>>oe|0)|(1<>>0>oe>>>0)))for(;;){if(Je=255&f,f=I,c=31&X,(63&X)>>>0>=32?(b=f<>>32-c|b<>2]))==e[s+104>>2]?c=Me(s):(e[s+4>>2]=c+1,c=u[0|c]),r>>>0<=(f=u[c+121329|0])>>>0)break m;if(!((0|m)==(0|b)&I>>>0<=oe>>>0|m>>>0>b>>>0))break}}}if(!(u[c+121329|0]>=r>>>0)){for(;(0|(c=e[s+4>>2]))==e[s+104>>2]?c=Me(s):(e[s+4>>2]=c+1,c=u[0|c]),u[c+121329|0]>>0;);e[56798]=68,Y=0,I=-1,b=-1}}(0|(r=e[s+116>>2]))>0|(0|r)>=0&&(e[s+4>>2]=e[s+4>>2]-1),I=(r=I^Y)-Y|0,b=((c=Y>>31)^b)-((r>>>0>>0)+c|0)|0}else e[56798]=28;if(H=Ge+16|0,r=e[s+4>>2]-e[s+44>>2]|0,e[s+120>>2]==(0-r|0)&e[s+124>>2]==(0-((r>>31)+!!(0|r)|0)|0))break o;if(!(!M|(0|pe)!=112)){e[M>>2]=I;break i}_n(M,Ie,I,b);break i}if(!M)break i;c=e[o+16>>2],r=e[o+20>>2],f=e[o+8>>2],G=e[o+12>>2];C:switch(0|Ie){case 0:H=b=H-32|0;h:if(0|(m=(I=2147483647&r)-1065418752|0)>>>0<(X=I-1082064896|0)>>>0){if(I=(33554431&r)<<7|c>>>25,X=m=0,!(!m&(0|(c&=33554431))==16777216?!(f|G):!m&c>>>0<16777216)){m=I+1073741825|0;break h}if(m=I+1073741824|0,16777216^c|f|G|X)break h;m=(1&I)+m|0}else(!c&(0|I)==2147418112?!(f|G):I>>>0<2147418112)?(m=2139095040,I>>>0>1082064895||(m=0,(I=I>>>16|0)>>>0<16145||(Pt(b+16|0,f,G,c,m=65535&r|65536,I-16129|0),xr(b,f,G,c,m,16257-I|0),c=e[b+8>>2],m=(33554431&e[b+12>>2])<<7|c>>>25,I=e[b>>2]|!!(e[b+16>>2]|e[b+24>>2]|e[b+20>>2]|e[b+28>>2]),G=e[b+4>>2],(!(f=0)&(0|(c&=33554431))==16777216?!(I|G):!f&c>>>0<16777216)?16777216^c|I|f|G||(m=(1&m)+m|0):m=m+1|0))):m=4194303&((33554431&r)<<7|c>>>25)|2143289344;H=b+32|0,e[M>>2]=-2147483648&r|m;break i;case 1:T[M>>3]=ba(f,G,c,r);break i;case 2:break C;default:break i}e[M>>2]=f,e[M+4>>2]=G,e[M+8>>2]=c,e[M+12>>2]=r;break i}f=(Ge=(0|pe)!=99)?31:c+1|0;p:if((0|Ie)!=1){if(G){if(c=0,!(r=it(f)))break c;for(;;){for(A=r;;){if((0|(r=e[s+4>>2]))==e[s+104>>2]?r=Me(s):(e[s+4>>2]=r+1,r=u[0|r]),!u[33+(r+o|0)|0]){f=0,z=A;break p}if(d[A+c|0]=r,(0|f)==(0|(c=c+1|0)))break}if(m=1,!(r=Ut(A,f=f<<1|1)))break}z=A,A=0;break a}if(c=0,M)for(;;){if((0|(A=e[s+4>>2]))==e[s+104>>2]?A=Me(s):(e[s+4>>2]=A+1,A=u[0|A]),!u[33+(A+o|0)|0]){f=0,z=A=M;break p}d[c+M|0]=A,c=c+1|0}for(;(0|(A=e[s+4>>2]))==e[s+104>>2]?A=Me(s):(e[s+4>>2]=A+1,A=u[0|A]),u[33+(A+o|0)|0];);A=0,z=0,f=0}else{if(r=M,G&&!(r=it(f<<2)))break c;for(e[o+296>>2]=0,e[o+300>>2]=0,c=0;;){A=r;C:{for(;;){if((0|(r=e[s+4>>2]))==e[s+104>>2]?r=Me(s):(e[s+4>>2]=r+1,r=u[0|r]),!u[33+(r+o|0)|0])break C;d[o+27|0]=r,I=o+28|0,r=e[(m=(r=o+296|0)||228604)>>2];h:{b:{m:{v:{if(!(z=o+27|0)){if(r)break v;r=0;break h}if(!r){if((0|(b=(r=u[0|z])<<24>>24))>=0){I&&(e[I>>2]=r),r=!!(0|b);break h}if(!e[e[56841]>>2]){if(r=1,!I)break m;e[I>>2]=57343&b,r=1;break h}if((r=r-194|0)>>>0>50)break v;r=e[124752+(r<<2)>>2];break b}if(Y=1,!(((Ie=(b=u[0|z])>>>3|0)-16|(r>>26)+Ie)>>>0>7))for(;;){if(Y=Y-1|0,(0|(r=b-128|r<<6))>=0){e[m>>2]=0,I&&(e[I>>2]=r),r=1-Y|0;break h}if(!Y)break b;if((192&(b=u[0|(z=z+1|0)]))!=128)break}}e[m>>2]=0,e[56798]=25,r=-1}break h}e[m>>2]=r,r=-2}if((0|r)!=-2){if(z=0,(0|r)==-1)break n;if(A&&(e[(c<<2)+A>>2]=e[o+28>>2],c=c+1|0),!(!G|(0|c)!=(0|f)))break}}if(m=1,r=Ut(A,(f=f<<1|1)<<2))continue;break a}break}if(z=0,f=A,o+296|0&&e[o+296>>2])break n}if(r=e[s+4>>2],(0|(I=e[s+116>>2]))>0|(0|I)>=0&&(r=r-1|0,e[s+4>>2]=r),r=(I=r-e[s+44>>2]|0)+e[s+120>>2]|0,b=e[s+124>>2]+(I>>31)|0,!((b=r>>>0>>0?b+1|0:b)|r)|!(Ge|(0|r)==(0|X)&(0|b)==(0|oe)))break u;G&&(e[M>>2]=A),(0|pe)!=99&&(f&&(e[(c<<2)+f>>2]=0),z?d[c+z|0]=0:z=0),A=f}c=r=e[s+4>>2]-e[s+44>>2]|0,m=te+e[s+124>>2]|0,te=(f=r>>31)+((r=W+e[s+120>>2]|0)>>>0>>0?m+1|0:m)|0,te=(W=r+c|0)>>>0>>0?te+1|0:te,He=!!(0|M)+He|0}if(c=t+1|0,t=u[t+1|0])continue;break e}break}A=f;break o}m=1,z=0,A=0;break a}m=G;break A}m=G}if(He)break A}He=-1}m&&(FA(z),FA(A))}return H=o+304|0,H=s+144|0,H=l+16|0,He}function it(A){var t,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0;H=t=H-16|0;e:{A:{r:{a:{n:{o:{c:{u:{l:{if((A|=0)>>>0<=244){if(3&(r=(f=e[57152])>>>(s=(m=A>>>0<11?16:A+11&-8)>>>3|0)|0)){r=(A=(s=s+(1&~r)|0)<<3)+228648|0,o=e[A+228656>>2],(0|r)!=(0|(A=e[o+8>>2]))?(e[A+12>>2]=r,e[r+8>>2]=A):e[57152]=ts(-2,s)&f,A=o+8|0,r=s<<3,e[o+4>>2]=3|r,e[(r=r+o|0)+4>>2]=1|e[r+4>>2];break e}if((M=e[57154])>>>0>=m>>>0)break l;if(r){r=(A=(o=hi(0-(A=(0-(A=2<>2],(0|r)!=(0|(A=e[l+8>>2]))?(e[A+12>>2]=r,e[r+8>>2]=A):(f=ts(-2,o)&f,e[57152]=f),e[l+4>>2]=3|m,o=(A=o<<3)-m|0,e[(s=l+m|0)+4>>2]=1|o,e[A+l>>2]=o,M&&(r=228648+(-8&M)|0,c=e[57157],(A=1<<(M>>>3))&f?A=e[r+8>>2]:(e[57152]=A|f,A=r),e[r+8>>2]=c,e[A+12>>2]=c,e[c+12>>2]=r,e[c+8>>2]=A),A=l+8|0,e[57157]=s,e[57154]=o;break e}if(!(b=e[57153]))break l;for(s=e[228912+(hi(0-b&b)<<2)>>2],c=(-8&e[s+4>>2])-m|0,r=s;(A=e[r+16>>2])||(A=e[r+20>>2]);)c=(o=(r=(-8&e[A+4>>2])-m|0)>>>0>>0)?r:c,s=o?A:s,r=A;if(I=e[s+24>>2],(0|(o=e[s+12>>2]))!=(0|s)){A=e[s+8>>2],e[A+12>>2]=o,e[o+8>>2]=A;break A}if(!(A=e[(r=s+20|0)>>2])){if(!(A=e[s+16>>2]))break u;r=s+16|0}for(;l=r,o=A,(A=e[(r=A+20|0)>>2])||(r=o+16|0,A=e[o+16>>2]););e[l>>2]=0;break A}if(m=-1,!(A>>>0>4294967231)&&(m=-8&(A=A+11|0),b=e[57153])){c=0-m|0,f=0,m>>>0<256||(f=31,m>>>0>16777215||(f=62+((m>>>38-(A=be(A>>>8|0))&1)-(A<<1)|0)|0));i:{p:{if(r=e[228912+(f<<2)>>2])for(A=0,s=m<<((0|f)!=31?25-(f>>>1|0):0);;){if(!((l=(-8&e[r+4>>2])-m|0)>>>0>=c>>>0||(o=r,c=l,l))){c=0,A=r;break p}if(l=e[r+20>>2],r=e[16+((s>>>29&4)+r|0)>>2],A=l?(0|l)==(0|r)?A:l:A,s<<=1,!r)break}else A=0;if(!(A|o)){if(o=0,!(A=(0-(A=2<>2]}if(!A)break i}for(;c=(s=(r=(-8&e[A+4>>2])-m|0)>>>0>>0)?r:c,o=s?A:o,A=(r=e[A+16>>2])||e[A+20>>2];);}if(!(!o|e[57154]-m>>>0<=c>>>0)){if(f=e[o+24>>2],(0|o)!=(0|(s=e[o+12>>2]))){A=e[o+8>>2],e[A+12>>2]=s,e[s+8>>2]=A;break r}if(!(A=e[(r=o+20|0)>>2])){if(!(A=e[o+16>>2]))break c;r=o+16|0}for(;l=r,s=A,(A=e[(r=A+20|0)>>2])||(r=s+16|0,A=e[s+16>>2]););e[l>>2]=0;break r}}}if((A=e[57154])>>>0>=m>>>0){o=e[57157],(r=A-m|0)>>>0>=16?(e[(s=o+m|0)+4>>2]=1|r,e[A+o>>2]=r,e[o+4>>2]=3|m):(e[o+4>>2]=3|A,e[(A=A+o|0)+4>>2]=1|e[A+4>>2],s=0,r=0),e[57154]=r,e[57157]=s,A=o+8|0;break e}if((I=e[57155])>>>0>m>>>0){r=I-m|0,e[57155]=r,A=(s=e[57158])+m|0,e[57158]=A,e[A+4>>2]=1|r,e[s+4>>2]=3|m,A=s+8|0;break e}if(A=0,b=m+47|0,e[57270]?s=e[57272]:(e[57273]=-1,e[57274]=-1,e[57271]=4096,e[57272]=4096,e[57270]=t+12&-16^1431655768,e[57275]=0,e[57263]=0,s=4096),(r=(l=b+s|0)&(c=0-s|0))>>>0<=m>>>0||(o=e[57262])&&o>>>0<(f=(s=e[57260])+r|0)>>>0|s>>>0>=f>>>0)break e;l:{if(!(4&u[229052])){i:{p:{C:{h:{if(o=e[57158])for(A=229056;;){if((s=e[A>>2])>>>0<=o>>>0&o>>>0>2]>>>0)break h;if(!(A=e[A+8>>2]))break}if((0|(s=P(0)))==-1||(f=r,(A=(o=e[57271])-1|0)&s&&(f=(r-s|0)+(A+s&0-o)|0),f>>>0<=m>>>0)||(o=e[57262])&&o>>>0<(c=(A=e[57260])+f|0)>>>0|A>>>0>=c>>>0)break i;if((0|s)!=(0|(A=P(f))))break C;break l}if((0|(s=P(f=c&l-I)))==(e[A>>2]+e[A+4>>2]|0))break p;A=s}if((0|A)==-1)break i;if(m+48>>>0<=f>>>0){s=A;break l}if((0|P(s=(s=e[57272])+(b-f|0)&0-s))==-1)break i;f=s+f|0,s=A;break l}if((0|s)!=-1)break l}e[57263]=4|e[57263]}if((0|(s=P(r)))==-1|(0|(A=P(0)))==-1|A>>>0<=s>>>0||(f=A-s|0)>>>0<=m+40>>>0)break a}A=e[57260]+f|0,e[57260]=A,A>>>0>$[57261]&&(e[57261]=A);l:{if(l=e[57158]){for(A=229056;;){if(((o=e[A>>2])+(r=e[A+4>>2])|0)==(0|s))break l;if(!(A=e[A+8>>2]))break}break o}for((A=e[57156])>>>0<=s>>>0&&A||(e[57156]=s),A=0,e[57265]=f,e[57264]=s,e[57160]=-1,e[57161]=e[57270],e[57267]=0;r=(o=A<<3)+228648|0,e[o+228656>>2]=r,e[o+228660>>2]=r,(0|(A=A+1|0))!=32;);r=(o=f-40|0)-(A=s+8&7?-8-s&7:0)|0,e[57155]=r,A=A+s|0,e[57158]=A,e[A+4>>2]=1|r,e[4+(s+o|0)>>2]=40,e[57159]=e[57274];break n}if(8&u[A+12|0]|o>>>0>l>>>0|s>>>0<=l>>>0)break o;e[A+4>>2]=r+f,s=(A=l+8&7?-8-l&7:0)+l|0,e[57158]=s,A=(r=e[57155]+f|0)-A|0,e[57155]=A,e[s+4>>2]=1|A,e[4+(r+l|0)>>2]=40,e[57159]=e[57274];break n}o=0;break A}s=0;break r}$[57156]>s>>>0&&(e[57156]=s),r=s+f|0,A=229056;o:{c:{u:{l:{i:{p:{for(;;){if((0|r)!=e[A>>2]){if(A=e[A+8>>2])continue;break p}break}if(!(8&u[A+12|0]))break i}for(A=229056;;){if((r=e[A>>2])>>>0<=l>>>0&&(c=r+e[A+4>>2]|0)>>>0>l>>>0)break l;A=e[A+8>>2]}}if(e[A>>2]=s,e[A+4>>2]=e[A+4>>2]+f,e[(b=(s+8&7?-8-s&7:0)+s|0)+4>>2]=3|m,A=(f=r+(r+8&7?-8-r&7:0)|0)-(I=m+b|0)|0,(0|l)==(0|f)){e[57158]=I,A=e[57155]+A|0,e[57155]=A,e[I+4>>2]=1|A;break c}if(e[57157]==(0|f)){e[57157]=I,A=e[57154]+A|0,e[57154]=A,e[I+4>>2]=1|A,e[A+I>>2]=A;break c}if((3&(c=e[f+4>>2]))==1){l=-8&c;i:if(c>>>0<=255){if(o=e[f+8>>2],r=c>>>3|0,(0|(s=e[f+12>>2]))==(0|o)){e[57152]=e[57152]&ts(-2,r);break i}e[o+12>>2]=s,e[s+8>>2]=o}else{if(m=e[f+24>>2],(0|f)==(0|(s=e[f+12>>2])))if((r=e[(c=f+20|0)>>2])||(r=e[(c=f+16|0)>>2])){for(;o=c,(r=e[(c=(s=r)+20|0)>>2])||(c=s+16|0,r=e[s+16>>2]););e[o>>2]=0}else s=0;else r=e[f+8>>2],e[r+12>>2]=s,e[s+8>>2]=r;if(m){o=e[f+28>>2];p:{if(e[(r=228912+(o<<2)|0)>>2]==(0|f)){if(e[r>>2]=s,s)break p;e[57153]=e[57153]&ts(-2,o);break i}if(e[m+(e[m+16>>2]==(0|f)?16:20)>>2]=s,!s)break i}e[s+24>>2]=m,(r=e[f+16>>2])&&(e[s+16>>2]=r,e[r+24>>2]=s),(r=e[f+20>>2])&&(e[s+20>>2]=r,e[r+24>>2]=s)}}c=e[(f=l+f|0)+4>>2],A=A+l|0}if(e[f+4>>2]=-2&c,e[I+4>>2]=1|A,e[A+I>>2]=A,A>>>0<=255){r=228648+(-8&A)|0,(s=e[57152])&(A=1<<(A>>>3))?A=e[r+8>>2]:(e[57152]=A|s,A=r),e[r+8>>2]=I,e[A+12>>2]=I,e[I+12>>2]=r,e[I+8>>2]=A;break c}if(c=31,A>>>0<=16777215&&(c=62+((A>>>38-(r=be(A>>>8|0))&1)-(r<<1)|0)|0),e[I+28>>2]=c,e[I+16>>2]=0,e[I+20>>2]=0,r=228912+(c<<2)|0,(o=e[57153])&(s=1<>>1|0):0),s=e[r>>2];;){if(r=s,(-8&e[s+4>>2])==(0|A))break u;if(s=c>>>29|0,c<<=1,!(s=e[(o=(4&s)+r|0)+16>>2]))break}e[o+16>>2]=I}else e[57153]=s|o,e[r>>2]=I;e[I+24>>2]=r,e[I+12>>2]=I,e[I+8>>2]=I;break c}for(r=(o=f-40|0)-(A=s+8&7?-8-s&7:0)|0,e[57155]=r,A=A+s|0,e[57158]=A,e[A+4>>2]=1|r,e[4+(s+o|0)>>2]=40,e[57159]=e[57274],e[(o=(A=(c+(c-39&7?39-c&7:0)|0)-47|0)>>>0>>0?l:A)+4>>2]=27,A=e[57267],e[o+16>>2]=e[57266],e[o+20>>2]=A,A=e[57265],e[o+8>>2]=e[57264],e[o+12>>2]=A,e[57266]=o+8,e[57265]=f,e[57264]=s,e[57267]=0,A=o+24|0;e[A+4>>2]=7,r=A+8|0,A=A+4|0,r>>>0>>0;);if((0|o)==(0|l))break n;if(e[o+4>>2]=-2&e[o+4>>2],c=o-l|0,e[l+4>>2]=1|c,e[o>>2]=c,c>>>0<=255){r=228648+(-8&c)|0,(s=e[57152])&(A=1<<(c>>>3))?A=e[r+8>>2]:(e[57152]=A|s,A=r),e[r+8>>2]=l,e[A+12>>2]=l,e[l+12>>2]=r,e[l+8>>2]=A;break n}if(A=31,c>>>0<=16777215&&(A=62+((c>>>38-(A=be(c>>>8|0))&1)-(A<<1)|0)|0),e[l+28>>2]=A,e[l+16>>2]=0,e[l+20>>2]=0,r=228912+(A<<2)|0,(o=e[57153])&(s=1<>>1|0):0),o=e[r>>2];;){if((0|c)==(-8&e[(r=o)+4>>2]))break o;if(s=A>>>29|0,A<<=1,!(o=e[(s=(4&s)+r|0)+16>>2]))break}e[s+16>>2]=l}else e[57153]=s|o,e[r>>2]=l;e[l+24>>2]=r,e[l+12>>2]=l,e[l+8>>2]=l;break n}A=e[r+8>>2],e[A+12>>2]=I,e[r+8>>2]=I,e[I+24>>2]=0,e[I+12>>2]=r,e[I+8>>2]=A}A=b+8|0;break e}A=e[r+8>>2],e[A+12>>2]=l,e[r+8>>2]=l,e[l+24>>2]=0,e[l+12>>2]=r,e[l+8>>2]=A}if(!((A=e[57155])>>>0<=m>>>0)){r=A-m|0,e[57155]=r,A=(s=e[57158])+m|0,e[57158]=A,e[A+4>>2]=1|r,e[s+4>>2]=3|m,A=s+8|0;break e}}e[56798]=48,A=0;break e}r:if(f){r=e[o+28>>2];a:{if(e[(A=228912+(r<<2)|0)>>2]==(0|o)){if(e[A>>2]=s,s)break a;b=ts(-2,r)&b,e[57153]=b;break r}if(e[f+(e[f+16>>2]==(0|o)?16:20)>>2]=s,!s)break r}e[s+24>>2]=f,(A=e[o+16>>2])&&(e[s+16>>2]=A,e[A+24>>2]=s),(A=e[o+20>>2])&&(e[s+20>>2]=A,e[A+24>>2]=s)}r:if(c>>>0<=15)A=c+m|0,e[o+4>>2]=3|A,e[(A=A+o|0)+4>>2]=1|e[A+4>>2];else if(e[o+4>>2]=3|m,e[(l=o+m|0)+4>>2]=1|c,e[l+c>>2]=c,c>>>0<=255)r=228648+(-8&c)|0,(s=e[57152])&(A=1<<(c>>>3))?A=e[r+8>>2]:(e[57152]=A|s,A=r),e[r+8>>2]=l,e[A+12>>2]=l,e[l+12>>2]=r,e[l+8>>2]=A;else{A=31,c>>>0<=16777215&&(A=62+((c>>>38-(A=be(c>>>8|0))&1)-(A<<1)|0)|0),e[l+28>>2]=A,e[l+16>>2]=0,e[l+20>>2]=0,r=228912+(A<<2)|0;a:{if((s=1<>>1|0):0),m=e[r>>2];;){if((-8&e[(r=m)+4>>2])==(0|c))break a;if(s=A>>>29|0,A<<=1,!(m=e[(s=(4&s)+r|0)+16>>2]))break}e[s+16>>2]=l}else e[57153]=s|b,e[r>>2]=l;e[l+24>>2]=r,e[l+12>>2]=l,e[l+8>>2]=l;break r}A=e[r+8>>2],e[A+12>>2]=l,e[r+8>>2]=l,e[l+24>>2]=0,e[l+12>>2]=r,e[l+8>>2]=A}A=o+8|0;break e}A:if(I){r=e[s+28>>2];r:{if(e[(A=228912+(r<<2)|0)>>2]==(0|s)){if(e[A>>2]=o,o)break r;e[57153]=ts(-2,r)&b;break A}if(e[I+(e[I+16>>2]==(0|s)?16:20)>>2]=o,!o)break A}e[o+24>>2]=I,(A=e[s+16>>2])&&(e[o+16>>2]=A,e[A+24>>2]=o),(A=e[s+20>>2])&&(e[o+20>>2]=A,e[A+24>>2]=o)}c>>>0<=15?(A=c+m|0,e[s+4>>2]=3|A,e[(A=A+s|0)+4>>2]=1|e[A+4>>2]):(e[s+4>>2]=3|m,e[(o=s+m|0)+4>>2]=1|c,e[o+c>>2]=c,M&&(r=228648+(-8&M)|0,l=e[57157],(A=1<<(M>>>3))&f?A=e[r+8>>2]:(e[57152]=A|f,A=r),e[r+8>>2]=l,e[A+12>>2]=l,e[l+12>>2]=r,e[l+8>>2]=A),e[57157]=o,e[57154]=c),A=s+8|0}return H=t+16|0,0|A}function Zt(A,t,r,s,o){var l,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0;H=l=H-544|0,eA(l+320|0,0,100),eA(l+208|0,0,100),I=r?e[r>>2]:I,W=e[A+12>>2],b=e[36115];e:{A:{r:{a:{for(;;){if(c=(0|(c=u[t+f|0]))>=(0|b)?13:c,d[l+f|0]=c,!c){c=f;break a}if(m=(0|b)<=(0|(m=u[(c=1|f)+t|0]))?13:m,d[c+l|0]=m,!m)break a;if((0|(f=f+2|0))==200)break}f=198,X=u[l+199|0];break r}if(!c)break A;X=u[l+(f=c-1|0)|0],(0|c)!=1&&(f=c-2|0)}if(Ie=8&I,e[l+536>>2]=(Ie>>>3|0?3:7)&I,I=u[l+f|0],b=1,G=(0|(M=$s(A,l,l+432|0,l+540|0,l+536|0,1)))>=0?M:0,oe=u[0|l])for(f=l,c=oe;c=e[144464+((255&c)<<2)>>2],u[c+11|0]==2&&(1048576&(c=e[c+4>>2])||(m=(2097152&c)>>>21|0,m|=c=u[e[144464+(u[0|(z=f+1|0)]<<2)>>2]+10|0]==12,d[(l+208|0)+b|0]=m,Y=e[144464+(u[(c?2:1)+f|0]<<2)>>2],m=u[Y+11|0]-10>>>0<4294967289|!(32&u[Y+6|0])&u[e[144464+(u[(c?3:2)+f|0]<<2)>>2]+11|0]==2?m:m?2:1,f=c?z:f,d[(l+320|0)+b|0]=m,b=b+1|0)),c=u[0|(f=f+1|0)];);f=r=r?G:M;r:{a:{n:{o:{c:{u:{l:{i:{p:{C:{h:{b:switch(e[A+8>>2]-1|0){case 11:if((0|(r=e[l+540>>2]))<2)break p;if(f=1,G=1&(c=r-1|0),(0|r)!=2)break h;b=0;break C;case 8:if((0|(c=e[l+540>>2]))<2)break a;if(b=3&(m=c-1|0),f=1,c-2>>>0>=3)for(G=-4&m,m=0;I=d[0|(c=(l+432|0)+f|0)],d[0|c]=(0|I)<0?4:I,I=d[c+1|0],d[c+1|0]=(0|I)<0?4:I,I=d[c+2|0],d[c+2|0]=(0|I)<0?4:I,I=c,c=d[c+3|0],d[I+3|0]=(0|c)<0?4:c,f=f+4|0,(0|G)!=(0|(m=m+4|0)););if(!b)break a;for(c=0;m=d[0|(I=(l+432|0)+f|0)],d[0|I]=(0|m)<0?4:m,f=f+1|0,(0|b)!=(0|(c=c+1|0)););break a;case 7:if(!u[l+322|0]|d[l+321|0]>0)break a;case 0:if(e[l+536>>2]|e[l+540>>2]<3)break a;if(e[l+536>>2]=2,f=4,r)break r;d[l+434|0]=4;break r;case 1:if(e[l+536>>2])break r;m:{v:{if((0|(b=e[l+540>>2]))>=3){r=b-2|0,e[l+536>>2]=r,f=r;I:if(512&W&&(c=e[144464+(X<<2)>>2],(0|(m=u[c+11|0]))!=2)){f=e[c>>2],c=l;x:{L:{if((0|(G=e[A+212>>2]))!=26977){if((0|G)!=24942)break L;_:switch(f-110|0){case 0:case 5:if(f=r,u[e[144464+(I<<2)>>2]+11|0]==2)break I;break;default:break _}f=b-1|0;break x}if((0|f)==115&&(f=r,u[e[144464+(I<<2)>>2]+11|0]==2))break I;f=b-1|0;break x}L:{_:{if((0|f)==115){if(f=r,(0|(m=u[e[144464+(I<<2)>>2]+11|0]))!=8)break _;break I}if((0|m)!=8)break L;m=u[e[144464+(I<<2)>>2]+11|0]}if(f=r,(255&m)==2)break I}f=b-1|0}e[c+536>>2]=f}if(524288&W&&(d[(c=b-1|0)+(b=l+208|0)|0]<=d[r+b|0]||(e[l+536>>2]=c,f=c)),u[(l+432|0)+f|0]>1){c=f;break m}if(c=2,r=f-1|0,f>>>0>=2)break v;e[l+536>>2]=f+1;break m}r=1}c=r,e[l+536>>2]=c}if(f=4,d[0|(r=(l+432|0)+c|0)]>=0||d[(c=(l+432|0)+c|0)-1|0]>=4&d[c+1|0]>3)break r;d[0|r]=4;break r;case 2:if(e[l+536>>2])break r;for(r=(f=e[l+540>>2])-1|0,r&=r>>31;;){if((0|(f=f-1|0))<=0)break n;if(!(d[0|(c=(l+432|0)+f|0)]>=0))break}e[l+536>>2]=f,f=4,d[0|c]=4;break r;case 3:if(e[l+536>>2])break a;if(c=(0|(f=e[l+540>>2]-3|0))<=1?1:f,e[l+536>>2]=c,f=4,r)break r;d[c+(l+432|0)|0]=4;break r;case 4:if(e[l+536>>2])break r;if(c=(r=e[l+540>>2])-3|0,e[l+536>>2]=c,(0|r)<=15){m:{v:switch(u[e[144464+(X<<2)>>2]+11|0]-2|0){case 0:c=d[r+94176|0];break m;case 2:c=d[r+94192|0];break m;default:break v}c=d[r+94160|0]}e[l+536>>2]=c}f=4,d[(l+432|0)+c|0]=4;break r;case 5:if(e[l+536>>2])break r;if(b=-1,m=0,!((0|(r=(c=e[l+540>>2])-1|0))<2)){if(f=1,z=1&c,(0|c)!=3)for(Y=(-2&c)-4|0,c=0;d[(l+432|0)+f|0]<0&&(m=(I=(0|(G=d[(l+320|0)+f|0]))<(0|b))?m:f,b=I?b:G),d[(I=f+1|0)+(l+432|0)|0]<0&&(m=(G=(0|(pe=d[I+(l+320|0)|0]))<(0|b))?m:I,b=G?b:pe),f=f+2|0,I=(0|c)!=(0|Y),c=c+2|0,I;);!z|d[(l+432|0)+f|0]>=0||(b=(c=(0|(I=d[(l+320|0)+f|0]))<(0|b))?b:I,m=c?m:f)}e[l+536>>2]=m,u[r+(l+320|0)|0]!=2|(0|b)>1?(0|b)>0||(m=1,e[l+536>>2]=1):(e[l+536>>2]=r,m=r),f=4,d[(l+432|0)+m|0]=4;break r;case 14:break o;case 12:break c;case 6:break b;default:break r}if(e[l+536>>2])break r;b=(r=e[l+540>>2])-1|0,e[l+536>>2]=b;b:if(!((0|r)<2))for(f=1;;){if(u[(l+432|0)+f|0]==1){b=f-1|0,e[l+536>>2]=b;break b}if((0|r)==(0|(f=f+1|0)))break}f=4,d[(l+432|0)+b|0]=4;break r}for(z=-2&c,b=0,m=0;c=u[0|(Y=(I=l+432|0)+f|0)],te=Y,pe=d[(Y=l+208|0)+f|0]>0,d[0|te]=pe||(0|c)==4?3:c,Ge=(0|(I=u[0|(te=(c=f+1|0)+I|0)]))==4?3:I,I=d[c+Y|0]>0,d[0|te]=I?3:Ge,b=I?c:pe?f:b,f=f+2|0,(0|z)!=(0|(m=m+2|0)););}if(G&&(I=(0|(c=u[0|(m=(l+432|0)+f|0)]))==4?3:c,c=d[(l+208|0)+f|0]>0,d[0|m]=c?3:I,b=c?f:b),c=e[l+536>>2])break u;if((0|b)>0){e[l+536>>2]=b,c=b;break u}if((0|r)<6)break i;c=r-3|0;break l}if(c=e[l+536>>2])break u}c=r-1|0}e[l+536>>2]=c}f=4,d[(l+432|0)+c|0]=4;break r}if(e[l+536>>2])break r;c=1,e[l+536>>2]=1,u[l+209|0]|e[l+540>>2]<3|d[l+210|0]<=0||(c=2,e[l+536>>2]=2),f=4,d[l+432|c]=4;break r}if(e[l+536>>2]||(0|(c=e[l+540>>2]))<3)break a;if(eA(l+432|1,0,c-1|0),e[l+536>>2]=2,r||(d[l+434|0]=4),f=4,c>>>0<4)break r;d[431+(c+l|0)|0]=3;break r}e[l+536>>2]=r,f=4;break r}f=r}!(256&W)|2&o||(0|(r=e[l+540>>2]))<3|(0|M)>2||u[0|(c=(r=r+(l+432|0)|0)-1|0)]!=4|u[e[144464+(X<<2)>>2]+11|0]!=2||(d[0|c]=1,d[r-2|0]=4);r:{a:{if(Ie)M=e[l+540>>2];else{if(r=d[l+433|0],!(!(4096&W)|(0|(M=e[l+540>>2]))!=3)){if((0|r)==4){d[l+434|0]=3;break a}if(u[l+434|0]==4){d[l+433|0]=3;break a}}if(!(!(8192&W)|(0|r)>=0|(0|M)<4|d[l+434|0]<4)){d[l+433|0]=3;break a}}if(m=0,(0|M)<2)break r}for(b=(0|f)<4?4:3,Y=128&W,pe=64&W,te=32&W,G=M-1|0,Ge=16&W,Oe=!(32768&W),X=0,I=0,f=1;;){a:{n:if((0|(c=d[0|(z=(l+432|0)+f|0)]))>=0)m=b;else{m=3;o:{c:if(!(!(!Ge|(0|b)>3)&(0|f)==(0|G))){if(!(1&(X|Oe)))break o;if(!(d[431+(l+f|0)|0]>1)){if((0|(c=d[(r=f+1|0)+(l+432|0)|0]))>=2){if((0|b)!=4||(m=4,c>>>0>=3))break c}else if(!(!te|(0|b)!=3)){b=3;break a}if(!pe|f>>>0<2||(m=u[(l+320|0)+f|0]))break o;if((0|G)>(0|(c=f))){for(;;){if(d[(l+320|0)+c|0]>0)break a;if((0|G)==(0|(c=c+1|0)))break}if(m)break o}if(d[r+(l+320|0)|0]<=0)break o;break a}m=b}c=u[0|z];break n}d[0|z]=b,X=1,m=3,c=b}n:{if(c<<24>>24>=4){if(r=I||f,!I|!Y)break n;d[0|z]=3}b=m;break a}b=m,I=r}if(m=1,(0|M)==(0|(f=f+1|0)))break}}if(s=!Ie|(0|s)>=0?s:e[((0|M)<3?16:20)+A>>2],b=0,c=0,m){if(X=3&(r=M-1|0),m=0,M-2>>>0<3)f=1;else for(Ie=-4&r,f=1,I=0;c=(r=(0|(c=(z=(0|(c=(G=(0|(c=(M=(0|(G=d[(r=l+432|0)+f|0]))<(0|c))?c:G))>(0|(z=d[(Y=f+1|0)+r|0])))?c:z))>(0|(te=d[(pe=f+2|0)+r|0])))?c:te))>(0|(Ge=d[(te=f+3|0)+r|0])))?c:Ge,b=r?z?G?M?b:f:Y:pe:te,f=f+4|0,(0|Ie)!=(0|(I=I+4|0)););if(X)for(;c=(r=(0|(I=d[(l+432|0)+f|0]))<(0|c))?c:I,b=r?b:f,f=f+1|0,(0|X)!=(0|(m=m+1|0)););}if((0|s)<0?s=c:(0|s)<=(0|c)&(0|c)>4||(d[(l+432|0)+b|0]=s),X=t+197|0,M=1,!(1&o)&&(r=e[144464+(oe<<2)>>2])){if(c=l,!((0|(m=u[r+11|0]))!=1&(0|oe)!=15))for(;r=u[0|(c=c+1|0)],(0|(m=u[e[144464+(r<<2)>>2]+11|0]))==1|(0|r)==15;);!(48&(r=e[A+4>>2]))|(0|m)!=2||(d[0|t]=(32&r)>>>5|0&&d[l+433|0]>3?11:23,t=t+1|0)}r:if(!(t>>>0>=X>>>0))for(G=65536&W,z=2&W,Ie=4&W,f=l;;){if(!(c=u[0|f]))break r;if(o=f,f=f+1|0,r=e[144464+(c<<2)>>2]){a:{n:{o:switch(u[r+11|0]){case 0:e[A+8200>>2]=0;break a;case 2:if(!(16&u[r+6|0]))break n;break;default:break o}if(u[0|f]!=20)break a}if((0|(oe=e[l+540>>2]))<(0|M))break e;I=d[0|(W=(l+432|0)+M|0)],e[A+8200>>2]=I;n:{o:{if(!((0|(r=I))>1)){if(m=oe-1|0,!(!Ie|(0|M)<2|(0|s)<2)&&(r=0,(0|m)==(0|M)))break o;if(r=1,!((0|M)==1|z|(oe-2|0)==(0|M)&d[m+(l+432|0)|0]<2|(0|m)==(0|M)||d[431+(l+M|0)|0]>=0&&(r=I,G))){r=0,d[0|W]=0;break o}}if(r&&(0|r)<2)break n}d[0|t]=u[r+94151|0],t=t+1|0,I=d[0|W]}m=(0|s)>(0|I),u[0|f]==12&&1&(oe=e[A+28>>2])&&(f=(16&oe?(0|b)!=(0|M):(0|r)<4)?o+2|0:f),s=m?s:I,M=M+1|0}if((0|c)!=1&&(d[0|t]=c,t=t+1|0),!(t>>>0>>0))break}}d[0|t]=0}return void(H=l+544|0)}de(86136,86634,1353,94208),R()}function wr(A,t,r,s,o,l,c,f,m){var I,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0,PA=0,OA=0,tt=0,ht=0,xt=0,Nt=0,Jt=0,ir=0,br=0,or=0,Tr=0,Rr=0,qr=0;H=I=H-336|0,z=f,Y=65535&m,W=s,G=65535&o,Ie=-2147483648&(o^m);e:{if(!((oe=m>>>16&32767)-32767>>>0>4294934529&(X=o>>>16&32767)-32767>>>0>=4294934530)){if(!(!s&(0|(b=2147483647&o))==2147418112?!(t|r):b>>>0<2147418112)){te=s,Ie=32768|o;break e}if(!(!f&(0|(o=2147483647&m))==2147418112?!(l|c):o>>>0<2147418112)){te=f,Ie=32768|m,t=l,r=c;break e}if(!(t|s|2147418112^b|r)){if(!(l|f|2147418112^o|c)){t=0,r=0,Ie=2147450880;break e}Ie|=2147418112,t=0,r=0;break e}if(!(l|f|2147418112^o|c)){t=0,r=0;break e}if(!(t|s|r|b)){te=(t=!(l|f|o|c))?0:te,Ie=t?2147450880:Ie,t=0,r=0;break e}if(!(l|f|o|c)){Ie|=2147418112,t=0,r=0;break e}(0|b)==65535|b>>>0<65535&&(m=s=!(G|W),b=s?t:W,f=s<<=6,Pt(I+320|0,t,r,W,G,(s=s+((0|(m=be(m?r:G)))==32?be(b)+32|0:m)|0)-15|0),Ge=16-s|0,W=e[I+328>>2],G=e[I+332>>2],r=e[I+324>>2],t=e[I+320>>2]),o>>>0>65535||(f=s=!(z|Y),m=s?l:z,o=s<<=6,Pt(I+304|0,l,c,z,Y,(s=s+((0|(f=be(f?c:Y)))==32?be(m)+32|0:f)|0)-15|0),Ge=(s+Ge|0)-16|0,z=e[I+312>>2],Y=e[I+316>>2],l=e[I+304>>2],c=e[I+308>>2])}if(CA=o=65536|Y,PA=z,b=o<<15|(s=z)>>>17,Fr(I+288|0,s=o=s<<15|c>>>17,f=b,0,0,m=0-s|0,b=1963258675-(b+!!(0|s)|0)|0,0,0),Fr(I+272|0,0-(s=e[I+296>>2])|0,0-(e[I+300>>2]+!!(0|s)|0)|0,0,0,m,b,0,0),Fr(I+256|0,m=(s=e[I+280>>2])<<1|e[I+276>>2]>>>31,s=e[I+284>>2]<<1|s>>>31,0,0,o,f,0,0),Fr(I+240|0,m,s,0,0,0-(b=e[I+264>>2])|0,0-(e[I+268>>2]+!!(0|b)|0)|0,0,0),Fr(I+224|0,b=(m=e[I+248>>2])<<1|e[I+244>>2]>>>31,s=e[I+252>>2]<<1|m>>>31,0,0,o,f,0,0),Fr(I+208|0,b,s,0,0,0-(m=e[I+232>>2])|0,0-(e[I+236>>2]+!!(0|m)|0)|0,0,0),Fr(I+192|0,m=(s=e[I+216>>2])<<1|e[I+212>>2]>>>31,s=e[I+220>>2]<<1|s>>>31,0,0,o,f,0,0),Fr(I+176|0,m,s,0,0,0-(b=e[I+200>>2])|0,0-(e[I+204>>2]+!!(0|b)|0)|0,0,0),Fr(I+160|0,m=o,s=f,0,0,f=(z=(o=e[I+184>>2])<<1|e[I+180>>2]>>>31)-1|0,o=(e[I+188>>2]<<1|o>>>31)-!z|0,0,0),Fr(I+144|0,l<<15,c<<15|l>>>17,0,0,s=f,o,0,0),pe=I+112|0,Je=e[I+168>>2],f=e[I+172>>2],M=(z=e[I+160>>2])+(m=e[I+152>>2])|0,b=(Y=e[I+164>>2])+e[I+156>>2]|0,m=b=m>>>0>M>>>0?b+1|0:b,b=(b=(0|Y)==(0|b)&M>>>0>>0|b>>>0>>0)>>>0>(Y=b+Je|0)>>>0?f+1|0:f,Fr(pe,s,o,0,0,0-(f=(z=!m&M>>>0>1|!!(0|m))+Y|0)|0,0-(!!(0|f)+(b=z>>>0>f>>>0?b+1|0:b)|0)|0,0,0),Fr(I+128|0,1-M|0,0-((M>>>0>1)+m|0)|0,0,0,s,o,0,0),Jt=(X-oe|0)+Ge|0,pe=o=e[I+116>>2],z=(s=e[I+112>>2])<<1,X=b=o<<1|s>>>31,s=b,dA=f=e[I+140>>2],s=s+(b=f<<1|(o=e[I+136>>2])>>>31)|0,o=s=(f=(m=o<<1|e[I+132>>2]>>>31)+z|0)>>>0>>0?s+1|0:s,He=s=s-(f>>>0<13927)|0,Je=s,ir=b=65536|G,br=W,Tr=(s=W)<<1,Rr=b=b<<1|s>>>31,tt=b,ht=s=st(He,M=0,b,0),Oe=b=me,Ge=t<<1,oe=s=r<<1|t>>>31,Y=b=0,He=(0|o)==(0|He)&(m=f-13927|0)>>>0>>0|o>>>0>He>>>0,o=(0|o)==(0|X)&f>>>0>>0|o>>>0>>0,s=e[I+120>>2],b=f=e[I+124>>2]<<1|s>>>31,b=(s=(M=dA>>>31|0)+(s=s<<1|pe>>>31)|0)>>>0>>0?b+1|0:b,M=(f=s)>>>0>(s=s+o|0)>>>0?b+1|0:b,M=(o=s)>>>0>(s=s+He|0)>>>0?M+1|0:M,o=s-1|0,b=st(oe,Y,He=M-!s|0,X=0),f=me+Oe|0,pe=(0|Oe)==(0|(f=(s=b+ht|0)>>>0>>0?f+1|0:f))&s>>>0>>0|f>>>0>>0,dA=o,o=st(o,b=0,OA=(or=r>>>31|0)|W<<1,Oe=0),b=me+f|0,M=0,z=b=o>>>0>(W=o+s|0)>>>0?b+1|0:b,M=(o=s=(0|b)==(0|f)&s>>>0>W>>>0|f>>>0>b>>>0)>>>0>(s=s+pe|0)>>>0?1:M,o=st(tt,Y,He,X),b=me+M|0,pe=s=o+s|0,s=s>>>0>>0?b+1|0:b,o=st(tt,Y,dA,Oe),G=me,f=o,o=st(OA,Oe,He,X),b=me+G|0,o=b=o>>>0>(M=f+o|0)>>>0?b+1|0:b,s=s+(b=(0|G)==(0|b)&f>>>0>M>>>0|b>>>0>>0)|0,pe=G=pe+o|0,G=s=G>>>0>>0?s+1|0:s,b=M+z|0,o=b=(s=(o=0)+W|0)>>>0>>0?b+1|0:b,f=(0|b)==(0|z)&s>>>0>>0|b>>>0>>0,b=G,M=f,xt=f=f+pe|0,M=b=M>>>0>f>>>0?b+1|0:b,pe=s,G=s,W=o,ht=m,s=st(m,0,OA,Oe),f=me,o=s,m=st(Je,te,oe,te),b=me+f|0,m=(0|f)==(0|(b=(s=s+m|0)>>>0>>0?b+1|0:b))&s>>>0>>0|f>>>0>b>>>0,f=b,o=st(dA,Oe,Nt=-2&Ge,0),b=me+b|0,o=b=o>>>0>(z=o+s|0)>>>0?b+1|0:b,s=(0|b)==(0|f)&s>>>0>z>>>0|f>>>0>b>>>0,f=0,s=((m=s+m|0)>>>0>>0?1:f)+W|0,b=M,m=s=(G=m+G|0)>>>0>>0?s+1|0:s,f=s=(0|s)==(0|W)&G>>>0>>0|s>>>0>>0,qr=s=s+xt|0,pe=b=f>>>0>s>>>0?b+1|0:b,s=st(tt,Y,ht,te),xt=me,tt=s,f=st(He,X,Nt,te),b=me+xt|0,W=s=s+f|0,M=s+(Y=st(Je,te,OA,Oe))|0,s=(f=s>>>0>>0?b+1|0:b)+me|0,s=M>>>0>>0?s+1|0:s,X=M,Y=M+(b=st(oe,te,dA,Oe))|0,M=me+s|0,OA=(0|s)==(0|(M=b>>>0>Y>>>0?M+1|0:M))&Y>>>0>>0|s>>>0>M>>>0,b=((s=(s=(s=(0|s)==(0|f)&W>>>0>X>>>0|s>>>0>>0)+(b=(0|f)==(0|xt)&W>>>0>>0|f>>>0>>0)|0)+OA|0)|(dA=0))+m|0,W=b=(f=M)>>>0>(X=f+G|0)>>>0?b+1|0:b,s=(0|m)==(0|b)&G>>>0>X>>>0|m>>>0>b>>>0,b=pe,f=s,dA=s=s+qr|0,m=b=f>>>0>s>>>0?b+1|0:b,s=st(Je,te,Nt,te),Je=me,G=s,f=st(oe,te,ht,te),b=me+Je|0,f=(0|(b=(s=s+f|0)>>>0>>0?b+1|0:b))==(0|Je)&s>>>0>>0|b>>>0>>0,G=b,s=b+z|0,b=(f|(pe=0))+o|0,G=(0|o)==(0|(b=s>>>0>>0?b+1|0:b))&s>>>0>>0|o>>>0>b>>>0,M=(f=b)+(b=Y)|0,b=0,b=((o=s=(0|f)==(0|(M=(z=(Y=0)+s|0)>>>0>>0?M+1|0:M))&s>>>0>z>>>0|f>>>0>M>>>0)>>>0>(s=s+G|0)>>>0?1:b)+W|0,M=m,o=b=(o=s)>>>0>(s=s+X|0)>>>0?b+1|0:b,m=M=(m=f=(0|W)==(0|b)&s>>>0>>0|b>>>0>>0)>>>0>(f=f+dA|0)>>>0?M+1|0:M,(0|M)==131071|M>>>0<131071?(br=Tr|or,ir=Oe|Rr,Fr(I+80|0,s,o,f,m,l,c,PA,CA),Y=M=e[I+84>>2],b=t<<17,W=(r=(z=0)-(G=e[I+88>>2])|0)-(M=!!(M|(t=e[I+80>>2])))|0,G=(b-(e[I+92>>2]+(G>>>0>z>>>0)|0)|0)-(r>>>0>>0)|0,z=0-t|0,Y=0-(!!(0|t)+Y|0)|0,t=Jt+16382|0):(Fr(I+96|0,s=(1&o)<<31|s>>>1,o=f<<31|o>>>1,f=(1&m)<<31|f>>>1,m=m>>>1|0,l,c,PA,CA),oe=W=e[I+100>>2],W=(z=0-(Ge=e[I+104>>2])|0)-(G=!!(W|(M=e[I+96>>2])))|0,G=((t<<16)-(e[I+108>>2]+(Y>>>0>>0)|0)|0)-(G>>>0>z>>>0)|0,z=0-M|0,Y=0-(!!(0|M)+oe|0)|0,Ge=t,oe=r,t=Jt+16383|0),(0|t)>=32767)Ie|=2147418112,t=0,r=0;else{if((0|t)>0)M=G<<1|W>>>31,W=W<<1|Y>>>31,G=M,Ge=f,oe=65535&m|t<<16,M=Y<<1|z>>>31,m=z<<1;else{if((0|t)<=-113){t=0,r=0;break e}xr(I- -64|0,s,o,f,m,1-t|0),Pt(I+48|0,Ge,oe,br,ir,t+112|0),Fr(I+32|0,l,c,PA,CA,s=e[I+64>>2],o=e[I+68>>2],Ge=e[I+72>>2],oe=e[I+76>>2]),t=e[I+40>>2],z=(r=e[I+56>>2])-(W=t<<1|(M=e[I+36>>2])>>>31)|0,G=e[I+60>>2]-((e[I+44>>2]<<1|t>>>31)+(r>>>0>>0)|0)|0,b=(t=e[I+32>>2])<<1,W=z-(t=(0|(f=M<<1|t>>>31))==(0|(m=e[I+52>>2]))&b>>>0>(r=e[I+48>>2])>>>0|f>>>0>m>>>0)|0,G=G-(t>>>0>z>>>0)|0,M=m-((r>>>0>>0)+f|0)|0,m=r-b|0}t=m,Fr(I+16|0,l,c,PA,CA,3,0,0,0),Fr(I,l,c,PA,CA,5,0,0,0),f=M+(r=0)|0,f=m>>>0>(t=t+(b=1&s)|0)>>>0?f+1|0:f,m=t,c=(0|c)==(0|f)&t>>>0>l>>>0|c>>>0>>0,M=G,t=(0|r)==(0|f)&t>>>0>>0|r>>>0>f>>>0,b=o,r=b=(r=t=(t=(0|(M=t>>>0>(l=t+W|0)>>>0?M+1|0:M))==(0|CA))&(0|l)==(0|PA)?c:t&l>>>0>PA>>>0|M>>>0>CA>>>0)>>>0>(t=t+s|0)>>>0?b+1|0:b,s=(0|o)==(0|b)&t>>>0>>0|o>>>0>b>>>0,b=oe,b=(o=s)>>>0>(s=s+Ge|0)>>>0?b+1|0:b,c=s,G=(0|(o=e[I+20>>2]))==(0|f)&$[I+16>>2]>>0|o>>>0>>0,o=e[I+28>>2],o=b>>>0<2147418112&((0|(s=e[I+24>>2]))==(0|l)&(0|o)==(0|M)?G:(0|o)==(0|M)&s>>>0>>0|o>>>0>>0),s=r,b=(r=t=(0|r)==(0|(s=(G=o)>>>0>(o=t+o|0)>>>0?s+1|0:s))&t>>>0>o>>>0|r>>>0>s>>>0)>>>0>(t=t+c|0)>>>0?b+1|0:b,c=t,f=(0|(r=e[I+4>>2]))==(0|f)&$[I>>2]>>0|r>>>0>>0,r=e[I+12>>2],r=M=(r=t=b>>>0<2147418112&((0|(t=e[I+8>>2]))==(0|l)&(0|r)==(0|M)?f:(0|r)==(0|M)&t>>>0>>0|r>>>0>>0))>>>0>(t=t+o|0)>>>0?s+1|0:s,o=(0|s)==(0|M)&t>>>0>>0|s>>>0>M>>>0,s=b,l=o,te|=o=o+c|0,Ie|=s=l>>>0>o>>>0?s+1|0:s}}e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=te,e[A+12>>2]=Ie,H=I+336|0}function KA(A,t,r,s,o){var l,c,f,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0,PA=0,OA=0;if(H=c=H-80|0,f=e[r+8>>2],!o|!y[r+4>>1]||(e[o+8>>2]=0),l=eA(s,0,152),e[l+44>>2]=u[f+14|0],e[l+40>>2]=u[f+15|0],s=y[f+8>>1]){for(s=e[34459]+(s<<1)|0,te=256&t,oe=r+32|0,Ge=r-32|0,Oe=r- -64|0,He=r+96|0,Je=r+-64|0,dA=r-28|0,CA=1&t,PA=r-24|0,pe=e[30450];;){m=15&(G=(t=y[s>>1])>>>8|0);e:{A:{r:{a:{n:{o:{c:{u:{l:{i:{p:{C:switch(0|(b=t>>>12|0)){case 10:break c;case 9:break u;case 6:break l;case 2:case 3:break i;case 1:break p;case 0:break C;case 11:case 12:case 13:case 14:case 15:break o;default:break n}I=255&t;C:{h:{b:switch(0|m){case 13:if(I)break h;m=s,t=0;break C;case 0:m=s;m:switch(I-1|0){case 1:break e;case 0:break A;default:break m}e[c+20>>2]=Io(c+75|0,e[f>>2]),e[c+16>>2]=t,rr(pe,85851,c+16|0);break e;case 5:if(u[e[144464+(u[r+34|0]<<2)>>2]+11|0]!=2)break e;e[l+20>>2]=I;break e;case 12:break b;default:break a}e[l+44>>2]=e[l+44>>2]+(t<<24>>31&-256|I);break e}d[l+132|0]=u[s+3|0],m=s+2|0,d[l+133|0]=u[0|m],t=2,I>>>0<3||(d[l+134|0]=u[s+5|0],m=s+4|0,d[l+135|0]=u[0|m],t=4,I>>>0<5||(d[l+136|0]=u[s+7|0],m=s+6|0,d[l+137|0]=u[0|m],t=6,I>>>0<7||(d[l+138|0]=u[s+9|0],m=s+8|0,d[l+139|0]=u[0|m],t=8,I>>>0<9||(d[l+140|0]=u[s+11|0],m=s+10|0,d[l+141|0]=u[0|m],t=10,I>>>0<11||(d[l+142|0]=u[s+13|0],m=s+12|0,d[l+143|0]=u[0|m],t=12,I>>>0<13||(d[l+144|0]=u[s+15|0],m=s+14|0,d[l+145|0]=u[0|m],t=14,I>>>0<15||(d[l+146|0]=u[s+17|0],m=s+16|0,d[l+147|0]=u[0|m],t=16)))))))}d[132+(t+l|0)|0]=0,I=W;break A}if(!A|m>>>0>7||(b=r,u[e[144464+(u[r+2|0]<<2)>>2]+11|0]!=2&&(b=oe,u[e[144464+(u[r+34|0]<<2)>>2]+11|0]!=2))||!(1&(m=e[A+56>>2]))&&16&u[0|r])break e;I=15&u[b+3|0],I=2&m&&u[b+6|0]<=I>>>0?4:I;p:{C:{h:{b:switch((m=7&G)-3|0){case 1:break C;case 0:break b;default:break h}if(I>>>0>3)break p;break e}if(e[102832+(m<<2)>>2]>(0|I))break p;break e}if(u[b+6|0]>I>>>0)break e}e[l+8>>2]=255&t,I=1;break r}if((57344&t)==8192){for(OA=e[32972],G=1,Ie=0;;){M=255&t,m=(z=4095&t)>>>8|0;i:if(z>>>0<=3583){(0|(I=(m>>>0)%7|0))==6&&(I=y[s+2>>1]),X=0,m=r;p:{C:{h:switch(0|I){case 6:if(b=0,y[r+36>>1]|y[r+68>>1])break i;case 3:m=Oe;break C;case 9:if(b=0,y[r+36>>1]|y[r+68>>1])break i;if(m=He,!y[r+100>>1])break p;break i;case 7:if(b=0,y[r+36>>1])break i;for(I=1;;){if(u[e[144464+(u[(m=(I<<5)+r|0)+2|0]<<2)>>2]+11|0]==2)break C;if(y[4+(((I=I+1|0)<<5)+r|0)>>1])break}break i;case 5:if(b=0,y[r+4>>1])break i;case 0:X=1,m=Ge;break C;case 4:if(b=0,y[r+36>>1])break i;case 2:m=oe;break C;case 8:if(b=0,!o)break i;if(X=1,e[(m=o)+8>>2])break p;break i;case 10:break h;default:break C}if(b=0,y[r+4>>1]|y[dA>>1])break i;X=1,m=Je;break p}C:switch(0|I){case 0:case 5:break C;default:break p}m=(u[m+2|0]==1?-32:0)+m|0}if(te?(I=e[144464+(u[m+2|0]<<2)>>2],e[m+8>>2]=I):I=e[m+8>>2],z>>>0<=1791){if(b=1,e[e[144464+(M<<2)>>2]>>2]==e[I>>2])break i;if(!(!X|u[I+11|0]!=2)){b=(0|M)==u[I+13|0];break i}b=(0|M)==u[I+12|0];break i}M=31&z,b=0;p:switch(z>>>5&7){case 0:b=(0|M)==u[I+11|0];break i;case 1:b=(0|M)==(15&y[I+6>>1]);break i;case 2:b=e[I+4>>2]>>>M&1;break i;case 4:break p;default:break i}p:switch(0|M){case 0:case 1:case 2:case 3:case 4:if(u[e[144464+(u[m+2|0]<<2)>>2]+11|0]!=2){if(u[e[144464+(u[m+34|0]<<2)>>2]+11|0]!=2)break i;m=m+32|0}I=15&u[m+3|0],I=!A|!(2&u[A+56|0])?I:u[m+6|0]<=I>>>0?4:I;C:{h:switch(M-3|0){case 1:b=u[m+6|0]<=I>>>0;break i;case 0:if(b=1,I>>>0<=3)break C;break i;default:break h}if(b=1,e[102832+(M<<2)>>2]>(0|I))break i}b=0;break i;case 17:if(!u[I+11|0]){b=1;break i}b=(32&u[r+1|0])>>>5|0;break i;case 18:b=y[m+4>>1]!=0;break i;case 19:if(b=1,y[m+36>>1])break i;b=!u[e[m+40>>2]+11|0];break i;case 9:if(y[m+4>>1])break i;for(;;){if(b=!!(0|(I=12&u[m-29|0])),I)break i;if(y[(m=m-32|0)+4>>1])break}break i;case 10:b=u[I+11|0]!=2;break i;case 11:for(;;){if(b=!!(0|(I=y[m+36>>1])),I)break i;if(I=m,m=m+32|0,u[e[I+40>>2]+11|0]==2)break}break i;case 12:if(b=1,(254&u[I+11|0])==2)break i;b=(16&u[I+4|0])>>>4|0;break i;case 13:for(;b=(u[e[m+8>>2]+11|0]==2)+b|0,I=y[m+4>>1],m=m-32|0,!I;);b=(0|b)==1;break i;case 14:for(;b=(u[e[m+8>>2]+11|0]==2)+b|0,I=y[m+4>>1],m=m-32|0,!I;);b=(0|b)==2;break i;case 16:break p;default:break i}b=(16&u[0|m])>>>4|0}else if(b=0,(0|m)==15){p:switch(M-1|0){case 0:b=CA;break i;case 1:break p;default:break i}b=e[OA+132>>2]!=0}i:if(1970>>>(m=(I=65535&t)>>>12|0)&1)m=d[m+102848|0];else{p:switch(0|m){case 0:if(m=1,(3840&I)!=3328)break i;m=1+(1+(255&I)>>>1|0)|0;break i;case 6:m=(I>>>9&7)-5>>>0<2?12:1;break i;case 2:case 3:m=(0|(m=3840&I))==3328||(0|m)==1536?2:1;break i;default:break p}m=4,(I=y[s+4>>1])>>>0>61439||(m=(0|I)==2?3:2)}if(s=((m=y[(s=(m<<1)+s|0)>>1]==3)<<1)+s|0,m^=b,G=Ie?m|G:m&G,Ie=4096&t,(57344&(t=y[s>>1]))!=8192)break}if(!(1&G))if((63488&t)!=26624){i:if(1970>>>(m=t>>>12|0)&1)m=d[m+102848|0];else{p:switch(0|m){case 0:if(m=1,(3840&t)!=3328)break i;m=1+(1+(255&t)>>>1|0)|0;break i;case 6:m=(t>>>9&7)-5>>>0<2?12:1;break i;case 2:case 3:m=(0|(t&=3840))==3328||(0|t)==1536?2:1;break i;default:break p}m=4,(t=y[s+4>>1])>>>0>61439||(m=(0|t)==2?3:2)}s=(((65024&y[(t=(m<<1)+s|0)>>1])==24576)<<1)+t|0}else s=((255&t)<<1)+s|0}m=s-2|0,I=W;break A}l:switch(m>>>1|0){case 0:s=(((255&t)<<1)+s|0)-2|0;break e;case 5:e[l>>2]=2|e[l>>2],((t=u[e[r+40>>2]+12|0])-28&255)>>>0<=5&&(m=y[(t=((t<<2)+s|0)-112|0)+4>>1],t=y[t+2>>1],e[l+96>>2]=t>>>4<<24>>24,e[l+76>>2]=(15&t)<<18|m<<2),s=s+24|0;break e;case 6:break l;default:break e}((t=u[e[PA>>2]+13|0])-28&255)>>>0<=5&&(m=y[(t=((t<<2)+s|0)-112|0)+4>>1],t=y[t+2>>1],e[l+100>>2]=t>>>4<<24>>24,e[l+80>>2]=(15&t)<<18|m<<2),s=s+24|0;break e}t=y[(s=s+2|0)>>1]|t<<16&983040;u:switch(m-1|0){case 0:if((0|Y)>9)break e;e[(c+32|0)+(Y<<2)>>2]=s,s=(e[34459]+(t<<1)|0)-2|0,Y=Y+1|0;break e;case 1:e[l+124>>2]=t;break e;case 2:break u;default:break e}e[l+128>>2]=t;break e}e[(m=(((0|m)!=1)<<3)+l|0)+108>>2]=y[s+2>>1]|(255&t)<<16,t=y[s+4>>1]<<16,s=s+6|0,e[m+112>>2]=t|y[s>>1];break e}if(I=y[(m=s+2|0)>>1],z=t>>>4|0,e[(G=((M=b-11|0)<<2)+l|0)+88>>2]=255&z,e[G+68>>2]=t<<18&3932160|I<<2,(0|(s=y[s+4>>1]))==2){s=m;break e}if(I=t>>>0<=53247?s>>>0>61439?2:1:W-((0|M)==4)|0,b-13>>>0>1)break A;e[G+88>>2]=z<<24>>24;break A}e[c+4>>2]=Io(c+75|0,e[f>>2]),e[c>>2]=t,rr(pe,85851,c);break e}e[4+((m<<2)+l|0)>>2]=I,I=te&&(0|m)==1?1:W}m=s}(0|I)!=1|(0|Y)<=0?(s=m,W=I):(s=e[(c+32|0)+((Y=Y-1|0)<<2)>>2],W=0)}if(s=s+2|0,(0|W)==1)break}!o|u[r+17|0]!=2||(A=e[r+4>>2],e[o>>2]=e[r>>2],e[o+4>>2]=A,A=e[r+28>>2],e[o+24>>2]=e[r+24>>2],e[o+28>>2]=A,A=e[r+20>>2],e[o+16>>2]=e[r+16>>2],e[o+20>>2]=A,A=e[r+12>>2],e[o+8>>2]=e[r+8>>2],e[o+12>>2]=A),d[r+23|0]=e[l+44>>2],(A=e[l+68>>2])?(e[r+24>>2]=A,A=l+88|0):(e[r+24>>2]=e[l+72>>2],A=l+92|0),e[r+28>>2]=e[A>>2]}H=c+80|0}function Ts(A,t,r,s,o,l){var c,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0;H=c=H-848|0;e:if(!(!e[A+104>>2]|8&u[o+2|0]|e[47202]==193)){for(e[s>>2]=0,e[33272]=0,e[33274]=l,d[c+192|0]=0,e[33273]=c+192;b=(l=b)+1|0,d[0|(oe=t+l|0)]-48>>>0<10;);e[56798]=0,Oe=c+188|0,G=-2147483648,H=te=H-16|0;A:if(f=u[0|t]){M=t;r:{for(;;){if(!((0|(f=f<<24>>24))==32|f-9>>>0<5))break r;if(f=u[M+1|0],M=M+1|0,!f)break}break A}r:switch((f=u[0|M])-43|0){case 0:case 2:break r;default:break A}Y=(0|f)==45?-1:0,M=M+1|0}else M=t;for(;f=-48,(((z=d[0|M])-48&255)>>>0<10||(f=-87,(z-97&255)>>>0<26||(f=-55,!((z-65&255)>>>0>25))))&&!((0|(z=f+z|0))>=10);)Fr(te,10,0,0,0,W,X,0,0),f=1,e[te+8>>2]|e[te+12>>2]||(Ie=st(W,X,10,0),(0|(Ge=me))==-1&~z>>>0>>0||(f=Ge,X=(W=z+Ie|0)>>>0>>0?f+1|0:f,pe=1,f=I)),M=M+1|0,I=f;Oe&&(e[Oe>>2]=pe?M:t);A:{r:{if(I)e[56798]=68,W=-2147483648,X=0;else if(!X&W>>>0<2147483648)break r;if(!Y){e[56798]=68,G=2147483647;break A}if(!(!X&W>>>0<=2147483648)){e[56798]=68;break A}}G=(Y^W)-Y|0}if(H=te+16|0,Y=G,!(e[56798]|e[c+188>>2]==(0|t))){A:{r:{a:{if(!(!((0|(z=64&u[A+109|0]?4:3))!=(0|l)|e[A+124>>2]!=d[t-2|0])&d[t-3|0]-48>>>0<10)){n:{if(e[A+124>>2]!=32){if(!(16&u[A+105|0]))break a;if((0|l)==3)break n;break a}if((0|l)!=3)break a}if(4&u[o+2|0]|d[t-2|0]-48>>>0>=10)break a}d[133104]=0,d[c+288|0]=0,He=1;break r}if(d[133104]=0,e[33275]=0,d[c+288|0]=0,Je=1,pe=0,u[0|t]==48)break A}pe=nr(A,t,oe,o,0)}u[0|oe]!=46|d[t+b|0]-48>>>0<10|1&d[o+13|0]|d[oe+2|0]-48>>>0<10||(d[0|oe]=0);A:if(!pe||(Ie=1,e[A+212>>2]==26741)){if(G=c+256|0,e[c+844>>2]=G,m=b,64&u[o+1|0]&&(d[c+256|0]=45,G=c+256|1,e[c+844>>2]=G,m=l+2|0),M=u[t+m|0]){for(;!((255&M)==32|(0|m)>28)&&(f=e[c+844>>2],e[c+844>>2]=f+1,d[0|f]=M,M=u[(m=m+1|0)+t|0]););G=e[c+844>>2]}if(d[0|G]=0,Ie=1,f=d[c+256|0]){if(!(I=e[A+136>>2])||tr(c+256|0,I)){if(f-48>>>0<10||(e[c+176>>2]=c+256,cA(f=c+800|0,88653,c+176|0),!TA(A,f,133104)))break A;e[s>>2]=128|e[s>>2],e[c+160>>2]=c+256,cA(f=c+800|0,88773,c+160|0),TA(A,f,133116),Ie=0}pe=2}}Oe=e[o>>2],d[c+352|0]=0,d[c+624|0]=0;A:{r:{a:if(!(!Je|u[0|t]!=48||(0|(f=d[t+1|0]))==32|(0|f)==e[A+128>>2])){n:{if((0|l)==2){if(u[t+3|0]!=58|d[t+5|0]-48>>>0>=10||!((0|(f=d[t+7|0]))==32|f-9>>>0<5))break n;break a}if((0|l)>3)break r}if(u[0|t]==48&&!((0|(f=l-1|0))<=0))for(m=0;;){if(TA(A,88875,BA(I=c+288|0)+I|0),u[(m=m+1|0)+t|0]!=48)break a;if(!((0|f)>(0|m)))break}}a:{n:{if(!((0|(f=d[0|oe]))==32&&16&u[A+105|0])){if(Ge=2,W=l+2|0,(0|f)==e[A+124>>2])break n;X=1,G=0,f=0;break a}Ge=1,W=l+2|0}if(4&u[o+14|0])G=1,f=0,X=1;else for(f=0,M=1,m=l,X=1;;){I=f,f=M,M=(te=m+Ge|0)+t|0,m=0;n:{for(;;){if(G=1,!(d[m+M|0]-48>>>0>=10)){if((0|z)!=(0|(m=m+1|0)))continue;break n}break}f=I;break a}if(d[M+z|0]-48>>>0<10){f=I;break a}if(m=0,d[M-1|0]-48>>>0<10){f=I;break a}n:{for(;;){if(u[(m+te|0)+t|0]==48){if((0|z)!=(0|(m=m+1|0)))continue;break n}break}X=0}if((0|(I=d[(m=z+te|0)+t|0]))!=e[A+124>>2]&(!(16&u[A+105|0])|(0|I)!=32))break a;if(W=m+2|0,4&u[2+(O(M=f+1|0,12)+o|0)|0])break}}m=!Y;a:if(!(!X|!(64&u[1+(O(f,12)+o|0)|0])|e[A+212>>2]!=26741)){n:switch(u[0|(I=t+W|0)]-97|0){case 0:case 4:break n;default:break a}n:{o:{c:{u:switch((M=u[I+1|0])-116|0){case 6:break a;case 1:case 2:case 3:case 4:case 5:break o;case 0:break u;default:break c}if(u[I+2|0]!=116)break n;break a}if((0|M)==32)break a}if(!(!!((0|Y)%1e3|0)&(0|f)!=1)&&(0|M)==108)break a}e[33274]=1|e[33274]}W=32768&Oe,m&=He;a:if(e[A+128>>2]!=d[0|oe]|d[t+b|0]-48>>>0>=10){n:{if(!m){if(m=0,I=1,!((0|f)>0&G))break n;Y=(b=St(A,Y,f,X,c+624|0))?0:Y,m=!!(0|b),M=0;break a}m=1,Y=0,e[33275]==1&&(e[c+144>>2]=f+1,cA(b=c+800|0,89026,c+144|0),TA(A,b,c+688|0)||(e[c+128>>2]=f,cA(b=c+800|0,89026,c+128|0),TA(A,b,c+624|0)))}I=1,M=0}else TA(A,88882,c+624|0),I=0,M=256;G=W?2:pe;a:{if(f|u[c+624|0]|u[0|oe]!=46){if(f)break a}else TA(A,89192,c+624|0);if(e[c+844>>2]=t,d[t+1|0]-48>>>0<10)for(;b=e[c+844>>2],e[c+844>>2]=b+1,d[b+2|0]-48>>>0<10;);if(d[e[c+844>>2]-1|0]-48>>>0>=10||(e[c+416>>2]=e[c+844>>2]-1,IA(A,c+416|0,c+192|0,s,4,o)&&(e[33272]=2)),u[c+192|0]|u[e[c+844>>2]]==48||IA(A,c+844|0,c+192|0,s,4,o)&&(e[33272]=1),Je){if(!G&I&&(e[c+112>>2]=Y,cA(o=c+800|0,89214,c+112|0),TA(A,o,r)))break A;if(1&d[A+110|0]){for(b=t;(32|u[0|b])!=32;)b=b+1|0;e[c+416>>2]=b,u[b+1|0]==37&&(TA(A,89328,r),o=BA(r),d[e[c+416>>2]+1|0]=32,r=r+o|0)}}}Cs(A,Y,c+416|0,m,f,G|M|He),!(2&u[A+109|0])|(0|f)<=0?(e[c+60>>2]=15,e[c- -64>>2]=c+624,e[c+56>>2]=c+416,e[c+52>>2]=c+352,e[c+48>>2]=c+288,cA(r,89415,c+48|0)):(e[c+88>>2]=15,e[c+96>>2]=c+416,e[c+92>>2]=c+352,e[c+84>>2]=c+624,e[c+80>>2]=c+288,cA(r,89346,c+80|0));a:if(!I)for(;;){for(l=l+1|0,I=0;I=(b=I)+1|0,d[(f=l+b|0)+t|0]-48>>>0<10;);o=2;n:{o:{c:{u:{l:{i:switch((I=57344&e[A+104>>2])+-8192>>>13|0){case 6:break o;case 2:break c;case 0:case 4:case 5:break u;case 1:break l;case 3:break i;default:break n}o=5}if((0|(I=u[0|(m=t+l|0)]))==48)for(;TA(A,88875,f=c+688|0),Jr(r,f),b=b-1|0,(0|(I=u[0|(m=(l=l+1|0)+t|0)]))==48;);if((0|o)<(0|b)|(I<<24>>24)-48>>>0>=10)break n;o=c+688|0,Cs(A,da(m),o,0,0,0),Jr(r,o),l=l+b|0;break n}if(Cs(A,da(o=t+l|0),c+416|0,0,0,0),!((0|I)==8192&u[0|o]!=48)){if(e[c+16>>2]=b,cA(o=c+800|0,89508,c+16|0),!TA(A,o,c+688|0))break n;Jr((0|I)==49152?r:c+416|0,c+688|0)}Jr(r,c+416|0),l=f;break n}if((0|b)>4||u[0|(o=t+l|0)]==48)break n;Cs(A,l=da(o),o=c+688|0,0,0,0),Jr(r,o),l=f;break n}if(!((0|b)<=1))for(;;){if(e[c+32>>2]=d[t+l|0],cA(o=c+800|0,89575,c+32|0),!TA(A,o,c+688|0))break n;if(Jr(r,c+688|0),l=l+1|0,!((0|(b=b-1|0))>1))break}}n:if(!((I=u[0|(b=t+l|0)])-48>>>0>=10||BA(r)>>>0>=190))for(;;){if(o=c+688|0,XA(A,d[0|b]-48|0,0,2,o),f=BA(r),e[c>>2]=15,e[c+4>>2]=o,cA(r+f|0,89594,c),(I=u[0|(b=(l=l+1|0)+t|0)])-48>>>0>=10)break n;if(!(BA(r)>>>0<=189))break}if(TA(A,89678,c+688|0)&&Jr(r,c+688|0),e[A+128>>2]!=(0|I)|d[1+(t+l|0)|0]-48>>>0>=10)break a;TA(A,88882,o=c+688|0),Jr(r,o)}if(!(o=u[0|r])|(0|o)==21||(o=zA(c+184|0,t=1+(t+l|0)|0),l=e[c+184>>2],!(2&u[A+106|0])|(0|l)!=32||(zA(c+184|0,t+o|0),l=e[c+184>>2]),Xe(l)|X||(A=BA(r)+r|0,d[0|A]=11,d[A+1|0]=0)),e[s>>2]=-2147483648|e[s>>2],e[33275]=e[33275]-1,m=1,Ie)break e;e[33264]=1;break e}e[s>>2]=-129&e[s>>2],m=0;break e}m=1}}return H=c+848|0,m}function se(A,t,r,s){var o,l,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0;if(H=o=H-416|0,pe=y[r+8>>1],W=u[r+10|0],64&(l=e[r>>2])){for(e[r>>2]=-65&l,d[199388]=1,m=e[47202],G=e[49846],b=e[47352],M=e[47351],I=e[47350];;){c=(f=e[198304+(M<<2)>>2])>>8;e:{A:switch((31&f)-9|0){case 0:m=c;break e;case 4:G=c;break e;case 3:break A;default:break e}b=f>>>0>=256?c+b|0:0}if(!(!(128&f)&(0|I)>(0|(M=M+1|0))))break}e[47352]=b,e[47351]=M,e[49846]=G,e[47202]=m}G=0;e:if(!((0|(c=e[49572]))>997)){if(1048576&l||!u[0|t])u[199388]&&(e[49572]=c+1,d[199388]=0,e[(A=190288+(c<<3)|0)>>2]=983042,e[A+4>>2]=0),d[189088]=0;else if(!((0|c)>990)){(0|(c=e[A+8224>>2]))>0&&(e[A+8224>>2]=c-1),m=512&l?s:s+4|0,b=(240&e[47202])==16,(te=2&l)&&((0|(f=e[47200]))<3||(0|(c=e[47350]))>243||(u[199388]&&(e[(M=198300+(c<<2)|0)>>2]=-129&e[M>>2]),e[47350]=c+1,d[199388]=1,Ie=(0|f)==3?20:f,e[198304+(c<<2)>>2]=Ie<<8|193)),I=b?m:s;A:{r:{if(!(8&l)){for(;s=u[(c=z)+t|0],d[c+(o+240|0)|0]=s,223&s&&(z=c+1|0,c>>>0<160););if(d[o+66|0]=0,z=o- -64|2,G=Z(e[47192],t,r,z),e[o+412>>2]=G,!(4096&G))break r;SA(t,o+240|0,c);break e}a:if(Zr(t,87276,3))Gt(t,189088,o+240|0);else{if(M=0,223&(c=u[0|(z=t+3|0)]))for(;d[(o+240|0)+M|0]=vs(c<<24>>24),M=M+1|0,223&(c=u[0|(z=z+1|0)]););d[(s=o+240|0)+M|0]=0,c=0;n:if(!((0|(r=e[34461]))<=0)){for(;;){if(!tr(s,O(c,44)+137856|0)){e[34457]=c;break n}if((0|r)==(0|(c=c+1|0)))break}c=r}if((0|(r=(0|r)==(0|c)?-1:c))<=0)break a;rs(r),d[189090]=0,d[189089]=r,d[189088]=21}G=-2147483648,e[o+412>>2]=-2147483648,s=-1;break A}if(!(!(8388608&G)|8&u[r+12|0])){for(H=b=H-208|0,M=e[A+60>>2],f=t;s=f,f=f+1|0,u[0|s]!=32;);zA(b+204|0,f);r:if(Xe(e[b+204>>2])){m=DA(b,189088),f=(!(256&M)|(X=nA(A,f,r+12|0,0))>>>15)&!(67108864&X)&u[189088]!=21;a:{n:{if(512&M){if(!(f&!(16&u[r+12|0])))break n;break a}if(f)break a}DA(189088,m);break r}if(d[0|s]=45,e[r>>2]=-2&e[r>>2],G=0,f=189088,Y=nA(e[47192],t,r,0),e[o+412>>2]=Y,!((0|M)<=0)&&(m=u[189088])){for(;G=(u[e[144464+(m<<2)>>2]+11|0]==2)+G|0,m=u[0|(f=f+1|0)];);if(!((31&M)>=(0|G))){d[0|s]=32,e[o+412>>2]=nA(e[47192],t,r,0);break r}}e[o+412>>2]=128|(Y||X),e[33264]=1}H=b+208|0}if(s=-1,u[189088]==21){if(M=DA(o+16|0,132848),b=e[o+412>>2],f=SA(t,o+240|0,c),m=o- -64|1,(0|(s=Hs(u[189089]?189089:87315,188772,189296)))<0||(e[r>>2]=4194304|e[r>>2],u[o+66|0]?(k[o+64>>1]=8192,b=nA(e[47193],m,r,0)):b=Z(e[47193],f,r,z)),u[189088]==21&&(c=SA(f,o+240|0,c),(0|(s=Hs(u[189089]?189089:87315,188772,189296)))<0||(e[r>>2]=4194304|e[r>>2],u[o+66|0]?(k[o+64>>1]=8192,b=nA(e[47193],m,r,0)):b=Z(e[47193],c,r,z)),G=4096,u[189088]==21))break e;e[o+412>>2]=b,(0|s)>=0||(d[189090]=0,k[94544]=3341,(0|s)==-1&&(DA(132848,M),rs(e[e[32972]+60>>2]),s=e[e[32972]+60>>2]))}G=e[o+412>>2],128&l||(I=268435456&G&&(0|I)<=1?1:I,!(256&G)|528&l|e[A+8224>>2]|2&u[r-11|0]||(e[A+8224>>2]=3,I=(0|I)<=4?4:I)),I=(0|I)<=0&&e[49846]>2?1:I}if(r=u[199388],!((0|I)<=0|(0|(z=e[49572]))>990)){e[49572]=z+1,f=1&r,r=0,k[(c=190288+(z<<3)|0)>>1]=f?2:0,d[c+7|0]=0,d[c+3|0]=0,f=I>>>0>1,d[c+2|0]=f?9:11,k[c+4>>1]=0,e[A+8236>>2]=0;A:if(!(!(c=f?I-2|0:0)|(0|(z=e[49572]))>990))for(m=A+8236|0;;){if(e[49572]=z+1,k[(f=190288+(z<<3)|0)>>1]=0,d[f+7|0]=0,d[f+3|0]=0,b=c>>>0>1,d[f+2|0]=b?9:11,k[f+4>>1]=0,e[m>>2]=0,z=e[49572],(0|(c=b?c-2|0:0))<=0)break A;if(!((0|z)<991))break}e[A+8228>>2]=0,e[A+8232>>2]=0}d[199388]=1&r,!te|e[47200]!=1||(e[49572]=z+2,d[199388]=0,k[(c=190288+(z<<3)|0)>>1]=1&r?2:0,d[c+7|0]=0,k[c+2>>1]=10,k[c+4>>1]=0,k[c+12>>1]=0,e[c+8>>2]=1179648,d[c+15|0]=0,1&l&&zt(d[t+1|0])&&(r=u[199388],d[199388]=0,t=e[49572],e[49572]=t+2,k[(t=190288+(t<<3)|0)>>1]=r?2:0,d[t+7|0]=0,k[t+2>>1]=10,k[t+4>>1]=0,k[t+12>>1]=0,e[t+8>>2]=1179648,d[t+15|0]=0)),c=W>>>0<31;A:if(!((0|s)<0))if(t=e[49572],r=u[190290+((I=t-1|0)<<3)|0],u[189088]!=9|u[189089]!=21)(0|r)!=21&&(f=u[199388],d[199388]=0,d[(r=190288+(t<<3)|0)+7|0]=0,k[r+2>>1]=21,k[r+4>>1]=0,k[r>>1]=f?2:0,I=t),e[49572]=I+1,d[190295+(I<<3)|0]=s;else{if((0|r)!=21)break A;e[49572]=I}t=2047&pe,r=(c?W:31)<<11,b=(Ge=128&l)?u[e[144464+(u[189088]<<2)>>2]+11|0]?189088:189089:189088,(I=u[0|b])|!(1&d[199388])||(I=23,d[0|b]=23,d[b+1|0]=0),Oe=t|r,m=e[49572];A:if(I)if((0|m)>994)t=0;else for(dA=((-1610612736&G)==-2147483648)<<4,pe=Oe+1|0,CA=A+8233|0,t=0,f=1,X=0,He=1,W=-1,te=-1,c=0;;){M=b+1|0;r:{if((0|(Y=255&I))!=255){if(r=e[144464+(Y<<2)>>2])break r;e[o>>2]=Y,H=r=H-16|0,e[r+12>>2]=o,Yi(132552,87474,o),H=r+16|0,m=e[49572]}if(!(I=u[0|M]))break A;if(b=M,(0|m)<995)continue;break A}r:if((0|(oe=255&I))!=21)if((0|(b=u[r+11|0]))!=1){r=pe;a:switch(oe-12|0){case 8:d[(r=190288+((W=m-1|0)<<3)|0)+3|0]=f,k[r>>1]=4|y[r>>1],r=c;break r;case 0:k[(r=190280+(m<<3)|0)>>1]=8|y[r>>1],r=c;break r;case 10:G|=16384,e[o+412>>2]=G,r=c;break r;case 3:break r;default:break a}Y=u[199388],d[199388]=0,d[(r=(oe=m<<3)+190288|0)+7|0]=0,d[r+2|0]=I,k[r+4>>1]=c,c=(Y?2:0)|dA,k[r>>1]=c,(0|b)==2?((0|f)>=4&&(d[189076]=1),(0|W)<0||(0|(t=m-1|0))!=(0|W)&&(d[190291+(t<<3)|0]=f),k[r>>1]=4|c,Je=(t=(0|f)>(0|te))?m:Je,te=t?f:te,c=1,X&&(d[r+7|0]=X),W=m,X=0,t=f):(!He|!(64&u[0|CA])||(k[r>>1]=8|c),c=f),m=m+1|0,e[49572]=m,d[oe+190291|0]=t,r=0,He=0,f=c}else{if(!y[r+8>>1]){f=u[r+14|0],r=c;break r}if((0|W)<0){r=c,X=Y;break r}d[190295+(W<<3)|0]=I,r=c}else e[(r=190288+(m<<3)|0)>>2]=1376256,k[r+4>>1]=0,d[r+7|0]=u[b+1|0],e[49572]=m+1,rs(u[b+1|0]),M=b+2|0,m=e[49572],r=c;if(!(I=u[0|M]))break A;if(b=M,c=r,!((0|m)<995))break}else t=0;131072&l&&(r=m+1|0,e[49572]=r,f=u[199388],d[199388]=0,d[(c=190288+(m<<3)|0)+7|0]=0,k[c+2>>1]=27,k[c+4>>1]=0,k[c>>1]=f?2:0,m=r),Ge||(k[190292+(z<<3)>>1]=Oe),e[A+8228>>2]=0,u[e[144464+(u[190282+(m<<3)|0]<<2)>>2]+11|0]!=2|(0|t)<4||(e[A+8228>>2]=1),(0|s)>=0&&(DA(132848,o+16|0),rs(e[e[32972]+60>>2]),r=u[199388],d[199388]=0,s=e[49572],k[(t=190288+(s<<3)|0)>>1]=r?2:0,k[t+2>>1]=21,k[t+4>>1]=0,d[t+7|0]=e[e[32972]+60>>2],m=s+1|0,e[49572]=m),(0|Ie)>0&&(d[199388]=0,e[49572]=m+1,e[(t=190288+(m<<3)|0)>>2]=655362,r=e[47350],e[47350]=r+1,d[t+7|0]=0,k[t+4>>1]=0,e[198304+(r<<2)>>2]=Ie<<8|225),1024&G&&(k[(t=190288+(Je<<3)|0)>>1]=64|y[t>>1]),e[A+8232>>2]=G}}return H=o+416|0,G}function Te(A,t,r,s,o){var l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0,PA=0,OA=0;e:if(t){if(te=o<<4,c=(t=e[33268])+r|0,!((0|t)<=0||(l=u[0|(m=te+129360|0)],M=u[m+1|0]-l<<8,M=(0|t)!=1?(0|M)/(0|t)|0:M,(0|r)>=(0|c))))for(G=M>>>0>255,Y=M>>>8|0,l<<=8,m=0-M>>>8|0,Ie=(0|M)<=0,t=r;Ie?(I=(b=(b=(0|(f=(0|(f=e[101024+(d[O(t,6)+A|0]<<2)>>2]))<(0|m)?m:f))>=18?18:f)+(f=(0|(f=(0|(l=l+M|0))/256|0))>0?f:0)|0)>>>0>=254?254:b,f=f>>>0>=254?254:f):(f=O(t,6)+A|0,d[f+2|0]=G|u[f+2|0],f=(b=(0|(f=(0|l)/256|0))>0?f:0)>>>0>=254?254:b,I=(b=b+Y|0)>>>0>=254?254:b,l=l+M|0),b=O(t,6)+A|0,d[b+5|0]=f,d[b+4|0]=I,(0|c)!=(0|(t=t+1|0)););if(2&u[188785]?(m=e[33271],e[33270]=m):m=e[33270],Y=(G=u[(l=(t=o<<4)+129360|0)+3|0])-(f=u[l+2|0])<<8,Ie=e[l+4>>2],(0|r)>0?(Oe=101056,oe=5,b=(0|Y)/(u[t+129368|0]-1|0)|0):(Oe=e[(t=t+129360|0)+12>>2],oe=u[t+10|0],b=0),(0|c)<(0|m)){for(M=(0|r)<=0,X=((t=Y>>31)^Y)-t|0,z=129360+(o<<4)|0,f<<=8,Ge=G<<8,G=0;;){A:{if(I=O(c,6)+A|0,!(!(1&M)&(0|(l=d[0|I]))<4)){r=0,t=c;r:if(1&((0|l)==5|M)){for(;(0|(b=d[O(t,6)+A|0]))<=6&&(r=((0|b)>3)+r|0,(0|m)!=(0|(t=t+1|0))););if(W=0,(0|(pe=(0|(t=u[z+8|0]))>(0|r)?r:t))<2){b=0,G=f;break r}b=(0|Y)/(pe-1|0)|0,G=f}else(0|pe)>0?G=b+G|0:(G=Ge+(O(X,d[W+Oe|0])>>6)|0,(0|oe)>(0|(W=W+1|0))||(Oe=e[z+12>>2],W=0));if(pe=pe-1|0,!((0|l)<4)){d[0|I]=6,r=(t=(0|(t=(0|G)/256|0))>0?t:0)+(((r=(l=e[Ie+(l<<2)>>2])>>31)^l)-r|0)|0;break A}}(0|l)!=3?(t=(0|G)/256|0,(63&u[I-6|0])>>>0>=3?(r=(l=e[Ie+(l<<2)>>2])>>31,r=(t=(0|(t=t-d[z+9|0]|0))>0?t:0)+((r^l)-r|0)|0):r=(t=(0|t)>0?t:0)+(((r=(l=e[Ie+(l<<2)>>2])>>31)^l)-r|0)|0):r=(t=(0|(t=(0|G)/256|0))>0?t:0)+(((r=(l=e[Ie+12>>2])>>31)^l)-r|0)|0}if(d[I+5|0]=t>>>0>=254?254:t,M=0,t=(0|r)>0?r:0,d[I+4|0]=t>>>0>=254?254:t,d[I+2|0]=u[I+2|0]|l>>>31,(0|m)==(0|(c=c+1|0)))break}c=m}if(!(u[133068]||((268435455&o)==3&&(t=O(c,6)+A|0,d[t+2|0]=2|u[t+2|0]),e[33269]?(t=u[(l=100768+(o<<4)|0)+5|0],f=l+3|0,r=u[l+4|0]-t|0):(t=u[(r=100768+(o<<4)|0)+2|0],f=te+100768|0,r=u[r+1|0]-t|0),l=O(c,6)+A|0,d[l+5|0]=t>>>0>=254?254:t,d[l+2|0]=u[l+2|0]|r>>>31,t=(b=t)+(((t=r>>31)^r)-t|0)|0,d[l+4|0]=t>>>0>=254?254:t,r=O(m,6)+A|0,d[r+1|0]=u[0|f],t=c+1|0,u[0|r]==4&&(d[0|r]=6),(0|(r=s-t|0))<=0||(o=u[(c=100768+(o<<4)|0)+12|0],c=u[c+13|0]-o<<8,c=(0|r)!=1?(0|c)/(0|r)|0:c,(0|t)>=(0|s)))))for(b=c>>>0>255,M=c>>>8|0,r=o<<8,o=0-c>>>8|0,G=(0|c)<=0;G?(f=(m=(f=(0|(l=(0|o)>(0|(l=e[101024+(d[O(t,6)+A|0]<<2)>>2]))?o:l))>=18?18:l)+(l=(0|(l=(0|(r=r+c|0))/256|0))>0?l:0)|0)>>>0>=254?254:m,m=l>>>0>=254?254:l):(l=O(t,6)+A|0,d[l+2|0]=b|u[l+2|0],m=(l=(0|(l=(0|r)/256|0))>0?l:0)>>>0>=254?254:l,f=(l=l+M|0)>>>0>=254?254:l,r=r+c|0),l=O(t,6)+A|0,d[l+5|0]=m,d[l+4|0]=f,(0|s)!=(0|(t=t+1|0)););}else{if(t=(oe=e[34455])+O(o,68)|0,c=u[t+24|0],m=u[t+25|0],l=(t=e[33268])+r|0,!((0|t)<=0||(I=m-c<<8,I=(0|t)!=1?(0|I)/(0|t)|0:I,(0|r)>=(0|l))))for(b=I>>>0>255,M=I>>>8|0,t=c<<8,m=0-I>>>8|0,G=(0|I)<=0;G?(c=(c=(Y=(0|(c=(0|(c=e[101024+(d[O(r,6)+A|0]<<2)>>2]))<(0|m)?m:c))>=18?18:c)+(f=(0|(c=(0|(t=t+I|0))/256|0))>0?c:0)|0)>>>0>=254?254:c,f=f>>>0>=254?254:f):(c=O(r,6)+A|0,d[c+2|0]=b|u[c+2|0],f=(c=(0|(c=(0|t)/256|0))>0?c:0)>>>0>=254?254:c,c=(c=c+M|0)>>>0>=254?254:c,t=t+I|0),Y=O(r,6)+A|0,d[Y+5|0]=f,d[Y+4|0]=c,(0|l)!=(0|(r=r+1|0)););2&u[188785]?(r=e[33271],e[33270]=r):r=e[33270],m=r,t=oe+O(o,68)|0;A:if((0|(M=u[t+33|0]))!=255)for(;;){if((0|(m=m-1|0))<(0|l)){m=r;break A}if(!(d[O(m,6)+A|0]<4))break}if((0|r)>(0|l)){for(CA=((c=(Je=(G=u[t+32|0])-(I=u[0|(f=t+31|0)])<<8)>>31)^Je)-c|0,Ge=(0|(t=u[0|(b=t+30|0)]))==255,Y=M<<8,Ie=I<<8,PA=G<<8,te=oe+O(o,68)|0,OA=(0|t)!=255,G=0,M=0,t=1,I=0;;){A:{if(z=O(l,6)+A|0,!(!(1&t)&(0|(X=d[0|z]))<4)){r:if(1&((0|X)==5|t)){a:if(OA){if(He=1,t=0,c=b,!((0|m)<=(0|(I=l+1|0)))){for(;;){if(c=b,(0|(M=d[O(I,6)+A|0]))>6)break a;if(t=((0|M)>3)+t|0,(0|m)==(0|(I=I+1|0)))break}c=b}}else{if(t=0,I=l,c=f,(0|m)<=(0|l))break a;for(;;){if(c=f,(0|(M=d[O(I,6)+A|0]))>6)break a;if(t=((0|M)>3)+t|0,(0|m)==(0|(I=I+1|0)))break}c=f}if(M=u[0|c]<<8,dA=0,(0|(I=(0|t)<(0|(c=u[te+34|0]))?t:c))<2){Oe=0;break r}Oe=(0|Je)/(I-1|0)|0}else(0|l)!=(0|m)?He?(Ge=1,I=I+1|0,He=0,M=Ie):(0|I)>0?(M=M+Oe|0,He=0):(He=0,M=(O(d[16+(te+dA|0)|0],CA)>>6)+PA|0,dA=(0|(t=dA+1|0))1)break r;if(!((0|r)>=(0|(t=t+1|0))))break}d[0|z]=6,d[z+1|0]=u[te+26|0],G=0,W=u[te+27|0],l=(0|(l=(0|M)/256|0))>0?l:0,d[z+5|0]=l>>>0>=254?254:l,l=l+W|0,d[z+4|0]=l>>>0>=254?254:l,pe=t-c|0;break A}}if((0|X)>=2){t=c=l+1|0;r:if(!((0|r)<=(0|l)))for(;;){if(d[O(t,6)+A|0]>1)break r;if(!((0|r)>=(0|(t=t+1|0))))break}G=0,l=(0|(l=(0|M)/256|0))>0?l:0,d[z+5|0]=l>>>0>=254?254:l,W=e[100976+(X<<2)>>2],d[z+2|0]=u[z+2|0]|W>>>31,l=(0|(l=(X=l)+(((l=W>>31)^W)-l|0)|0))>0?l:0,d[z+4|0]=l>>>0>=254?254:l,pe=t-c|0}else(0|pe)<=1?(W=d[36+(te+Ge|0)|0],t=0):(W=d[(t=te+Ge|0)+36|0],t=(d[t+39|0]-W|0)/(pe-1|0)|0),c=e[100976+(X<<2)>>2],d[z+2|0]=u[z+2|0]|c>>>31,t=(0|(t=(((0|M)/256|0)+W|0)+O(t,G)|0))>0?t:0,d[z+5|0]=t>>>0>=254?254:t,t=(0|(t=t+(((X=c)^(c>>=31))-c|0)|0))>0?t:0,d[z+4|0]=t>>>0>=254?254:t,G=G+1|0,c=l+1|0}if(t=0,(0|r)==(0|(l=c)))break}l=r}if(u[133068]||(c=O(l,6)+A|0,e[33269]?(f=oe+O(o,68)|0,t=u[f+47|0],m=u[f+46|0]-t|0,f=f+45|0):(f=oe+O(o,68)|0,t=u[f+44|0],m=u[f+43|0]-t|0,f=f+42|0),f=u[0|f],b=(((b=m>>31)^m)-b|0)+t|0,d[c+4|0]=b>>>0>=254?254:b,d[c+5|0]=t>>>0>=254?254:t,t=O(l,6)+A|0,d[t+2|0]=u[t+2|0]|m>>>31,r=O(r,6)+A|0,d[r+1|0]=f,t=l+1|0,u[0|r]==4&&(d[0|r]=6),(0|(r=s-t|0))<=0)||(c=oe+O(o,68)|0,o=u[c+48|0],c=u[c+49|0]-o<<8,c=(0|r)!=1?(0|c)/(0|r)|0:c,(0|t)>=(0|s)))break e;for(b=c>>>0>255,M=c>>>8|0,r=o<<8,o=0-c>>>8|0,G=(0|c)<=0;G?(f=(m=(f=(0|(l=(0|o)>(0|(l=e[101024+(d[O(t,6)+A|0]<<2)>>2]))?o:l))>=18?18:l)+(l=(0|(l=(0|(r=r+c|0))/256|0))>0?l:0)|0)>>>0>=254?254:m,m=l>>>0>=254?254:l):(l=O(t,6)+A|0,d[l+2|0]=b|u[l+2|0],m=(l=(0|(l=(0|r)/256|0))>0?l:0)>>>0>=254?254:l,f=(l=l+M|0)>>>0>=254?254:l,r=r+c|0),l=O(t,6)+A|0,d[l+5|0]=m,d[l+4|0]=f,(0|s)!=(0|(t=t+1|0)););}}function ne(){var A,t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0;if((0|(A=e[36455]))!=(0|(m=e[36454]))){e:if(!((0|(z=e[36427]))<0|(0|m)==(0|z))){r=M=e[8+(216192+((I=z)<<4)|0)>>2];A:{for(;;){if((s=e[(c=216192+((I=(0|(s=I-1|0))<0?169:s)<<4)|0)>>2])-5>>>0<2)break A;r:{if((0|s)<=4){if(e[c+12>>2]!=(0|r))break A;if(s=y[c+4>>1],e[c+12>>2]=M,r=e[c+8>>2],16&(t=y[r>>1]))break r;for(Y=32&t?(O(s,12)>>>0)/10|0:s,o=0,s=r,f=0;;){t=y[r>>1];a:if(!(f>>>0<3&&8&t)){if(t=t<<16>>16,(0|(W=(b=k[2+((G=f<<1)+r|0)>>1])-(l=k[(G=M+G|0)+2>>1])|0))>(0|(b=(0|O(Y,(0|O(e[200944+(f<<2)>>2],(0|W)>0?b+(l<<1)|0:(b<<1)+l|0))/3e3|0))/256|0)))o||((0|t)<0?s=r:(s=0,t=(0|(t=e[44469]+1|0))<=169?t:0,e[44469]=t,(t=(o=t<<6)+177888|0)&&(s=y[r+4>>1]|y[r+6>>1]<<16,l=y[r>>1]|y[r+2>>1]<<16,k[t>>1]=l,k[t+2>>1]=l>>>16,k[t+4>>1]=s,k[t+6>>1]=s>>>16,s=y[r+60>>1]|y[r+62>>1]<<16,l=y[r+56>>1]|y[r+58>>1]<<16,k[t+56>>1]=l,k[t+58>>1]=l>>>16,k[t+60>>1]=s,k[t+62>>1]=s>>>16,s=y[r+52>>1]|y[r+54>>1]<<16,l=y[r+48>>1]|y[r+50>>1]<<16,k[t+48>>1]=l,k[t+50>>1]=l>>>16,k[t+52>>1]=s,k[t+54>>1]=s>>>16,s=y[r+44>>1]|y[r+46>>1]<<16,l=y[r+40>>1]|y[r+42>>1]<<16,k[t+40>>1]=l,k[t+42>>1]=l>>>16,k[t+44>>1]=s,k[t+46>>1]=s>>>16,s=y[r+36>>1]|y[r+38>>1]<<16,l=y[r+32>>1]|y[r+34>>1]<<16,k[t+32>>1]=l,k[t+34>>1]=l>>>16,k[t+36>>1]=s,k[t+38>>1]=s>>>16,s=y[r+28>>1]|y[r+30>>1]<<16,l=y[r+24>>1]|y[r+26>>1]<<16,k[t+24>>1]=l,k[t+26>>1]=l>>>16,k[t+28>>1]=s,k[t+30>>1]=s>>>16,s=y[r+20>>1]|y[r+22>>1]<<16,l=y[r+16>>1]|y[r+18>>1]<<16,k[t+16>>1]=l,k[t+18>>1]=l>>>16,k[t+20>>1]=s,k[t+22>>1]=s>>>16,s=y[r+12>>1]|y[r+14>>1]<<16,l=y[r+8>>1]|y[r+10>>1]<<16,k[t+8>>1]=l,k[t+10>>1]=l>>>16,k[t+12>>1]=s,k[t+14>>1]=s>>>16,d[o+177904|0]=0,k[t>>1]=32768|y[t>>1],s=t))),t=b+y[G+2>>1]|0;else{if((0-b|0)<=(0|W))break a;o||((0|t)<0?s=r:(s=0,t=(0|(t=e[44469]+1|0))<=169?t:0,e[44469]=t,(t=(o=t<<6)+177888|0)&&(s=y[r+4>>1]|y[r+6>>1]<<16,l=y[r>>1]|y[r+2>>1]<<16,k[t>>1]=l,k[t+2>>1]=l>>>16,k[t+4>>1]=s,k[t+6>>1]=s>>>16,s=y[r+60>>1]|y[r+62>>1]<<16,l=y[r+56>>1]|y[r+58>>1]<<16,k[t+56>>1]=l,k[t+58>>1]=l>>>16,k[t+60>>1]=s,k[t+62>>1]=s>>>16,s=y[r+52>>1]|y[r+54>>1]<<16,l=y[r+48>>1]|y[r+50>>1]<<16,k[t+48>>1]=l,k[t+50>>1]=l>>>16,k[t+52>>1]=s,k[t+54>>1]=s>>>16,s=y[r+44>>1]|y[r+46>>1]<<16,l=y[r+40>>1]|y[r+42>>1]<<16,k[t+40>>1]=l,k[t+42>>1]=l>>>16,k[t+44>>1]=s,k[t+46>>1]=s>>>16,s=y[r+36>>1]|y[r+38>>1]<<16,l=y[r+32>>1]|y[r+34>>1]<<16,k[t+32>>1]=l,k[t+34>>1]=l>>>16,k[t+36>>1]=s,k[t+38>>1]=s>>>16,s=y[r+28>>1]|y[r+30>>1]<<16,l=y[r+24>>1]|y[r+26>>1]<<16,k[t+24>>1]=l,k[t+26>>1]=l>>>16,k[t+28>>1]=s,k[t+30>>1]=s>>>16,s=y[r+20>>1]|y[r+22>>1]<<16,l=y[r+16>>1]|y[r+18>>1]<<16,k[t+16>>1]=l,k[t+18>>1]=l>>>16,k[t+20>>1]=s,k[t+22>>1]=s>>>16,s=y[r+12>>1]|y[r+14>>1]<<16,l=y[r+8>>1]|y[r+10>>1]<<16,k[t+8>>1]=l,k[t+10>>1]=l>>>16,k[t+12>>1]=s,k[t+14>>1]=s>>>16,d[o+177904|0]=0,k[t>>1]=32768|y[t>>1],s=t))),t=y[G+2>>1]-b|0}o=1,k[2+((f<<1)+s|0)>>1]=t,e[c+8>>2]=s}if((0|(f=f+1|0))==6)break}M=s}if((0|m)!=(0|I))continue;break A}break}M=r}for(s=0;;){if((r=e[(I=216192+(z<<4)|0)>>2])-5>>>0<2)break e;if((0|r)<=4){if(r=e[I+8>>2],t=y[I+4>>1],s){if((0|r)!=(0|s))break e;e[I+8>>2]=M}else M=r;if(16&(s=y[M>>1]))break e;for(G=32&s?(O(t,6)>>>0)/5|0:t,o=0,r=s=e[I+12>>2],f=0;;){A:{r:if((0|(m=(c=k[2+((t=f<<1)+s|0)>>1])-(t=k[(b=t+M|0)+2>>1])|0))>(0|(c=(0|O(G,(0|O(e[200944+(f<<2)>>2],(0|m)>0?c+(t<<1)|0:(c<<1)+t|0))/3e3|0))/256|0))){if(!o){if(k[s>>1]<0){r=s,t=t+c|0;break r}r=(0|(r=e[44469]+1|0))<=169?r:0,e[44469]=r,o=y[s+20>>1]|y[s+22>>1]<<16,t=(r=177888+(r<<6)|0)+16|0,m=y[s+16>>1]|y[s+18>>1]<<16,k[t>>1]=m,k[t+2>>1]=m>>>16,k[t+4>>1]=o,k[t+6>>1]=o>>>16,t=y[s+4>>1]|y[s+6>>1]<<16,o=y[s>>1]|y[s+2>>1]<<16,k[r>>1]=o,k[r+2>>1]=o>>>16,k[r+4>>1]=t,k[r+6>>1]=t>>>16,t=y[s+12>>1]|y[s+14>>1]<<16,o=y[s+8>>1]|y[s+10>>1]<<16,k[r+8>>1]=o,k[r+10>>1]=o>>>16,k[r+12>>1]=t,k[r+14>>1]=t>>>16,t=y[s+28>>1]|y[s+30>>1]<<16,o=y[s+24>>1]|y[s+26>>1]<<16,k[r+24>>1]=o,k[r+26>>1]=o>>>16,k[r+28>>1]=t,k[r+30>>1]=t>>>16,t=y[s+36>>1]|y[s+38>>1]<<16,o=y[s+32>>1]|y[s+34>>1]<<16,k[r+32>>1]=o,k[r+34>>1]=o>>>16,k[r+36>>1]=t,k[r+38>>1]=t>>>16,t=y[s+44>>1]|y[s+46>>1]<<16,o=y[s+40>>1]|y[s+42>>1]<<16,k[r+40>>1]=o,k[r+42>>1]=o>>>16,k[r+44>>1]=t,k[r+46>>1]=t>>>16,t=y[s+52>>1]|y[s+54>>1]<<16,o=y[s+48>>1]|y[s+50>>1]<<16,k[r+48>>1]=o,k[r+50>>1]=o>>>16,k[r+52>>1]=t,k[r+54>>1]=t>>>16,t=y[s+60>>1]|y[s+62>>1]<<16,o=y[s+56>>1]|y[s+58>>1]<<16,k[r+56>>1]=o,k[r+58>>1]=o>>>16,k[r+60>>1]=t,k[r+62>>1]=t>>>16,d[r+16|0]=0,k[r>>1]=32768|y[r>>1],t=y[b+2>>1]}t=t+c|0}else{if((0|m)>=(0-c|0))break A;o||(k[s>>1]<0?r=s:(r=(0|(r=e[44469]+1|0))<=169?r:0,e[44469]=r,o=y[s+20>>1]|y[s+22>>1]<<16,t=(r=177888+(r<<6)|0)+16|0,m=y[s+16>>1]|y[s+18>>1]<<16,k[t>>1]=m,k[t+2>>1]=m>>>16,k[t+4>>1]=o,k[t+6>>1]=o>>>16,t=y[s+4>>1]|y[s+6>>1]<<16,o=y[s>>1]|y[s+2>>1]<<16,k[r>>1]=o,k[r+2>>1]=o>>>16,k[r+4>>1]=t,k[r+6>>1]=t>>>16,t=y[s+12>>1]|y[s+14>>1]<<16,o=y[s+8>>1]|y[s+10>>1]<<16,k[r+8>>1]=o,k[r+10>>1]=o>>>16,k[r+12>>1]=t,k[r+14>>1]=t>>>16,t=y[s+28>>1]|y[s+30>>1]<<16,o=y[s+24>>1]|y[s+26>>1]<<16,k[r+24>>1]=o,k[r+26>>1]=o>>>16,k[r+28>>1]=t,k[r+30>>1]=t>>>16,t=y[s+36>>1]|y[s+38>>1]<<16,o=y[s+32>>1]|y[s+34>>1]<<16,k[r+32>>1]=o,k[r+34>>1]=o>>>16,k[r+36>>1]=t,k[r+38>>1]=t>>>16,t=y[s+44>>1]|y[s+46>>1]<<16,o=y[s+40>>1]|y[s+42>>1]<<16,k[r+40>>1]=o,k[r+42>>1]=o>>>16,k[r+44>>1]=t,k[r+46>>1]=t>>>16,t=y[s+52>>1]|y[s+54>>1]<<16,o=y[s+48>>1]|y[s+50>>1]<<16,k[r+48>>1]=o,k[r+50>>1]=o>>>16,k[r+52>>1]=t,k[r+54>>1]=t>>>16,t=y[s+60>>1]|y[s+62>>1]<<16,o=y[s+56>>1]|y[s+58>>1]<<16,k[r+56>>1]=o,k[r+58>>1]=o>>>16,k[r+60>>1]=t,k[r+62>>1]=t>>>16,d[r+16|0]=0,k[r>>1]=32768|y[r>>1],t=y[b+2>>1])),t=t-c|0}o=1,k[2+((f<<1)+r|0)>>1]=t,e[I+12>>2]=r}if((0|(f=f+1|0))==6)break}M=r}if((0|A)==(0|(z=(0|(r=z+1|0))<=169?r:0)))break}}e[36454]=A}}function ve(A,t){var r,s,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0;H=r=H-48|0,F(+A),l=0|B(1),o=0|B(0),s=l;e:{A:{r:{if((m=2147483647&l)>>>0<=1074752122){if((1048575&l)==598523)break r;if(m>>>0<=1073928572){if((0|s)>0|(0|s)>=0){f=(A+=-1.5707963267341256)+-6077100506506192e-26,T[t>>3]=f,T[t+8>>3]=A-f-6077100506506192e-26,l=1;break e}f=(A+=1.5707963267341256)+6077100506506192e-26,T[t>>3]=f,T[t+8>>3]=A-f+6077100506506192e-26,l=-1;break e}if((0|s)>0|(0|s)>=0){f=(A+=-3.1415926534682512)+-12154201013012384e-26,T[t>>3]=f,T[t+8>>3]=A-f-12154201013012384e-26,l=2;break e}f=(A+=3.1415926534682512)+12154201013012384e-26,T[t>>3]=f,T[t+8>>3]=A-f+12154201013012384e-26,l=-2;break e}if(m>>>0<=1075594811){if(m>>>0<=1075183036){if((0|m)==1074977148)break r;if((0|s)>0|(0|s)>=0){f=(A+=-4.712388980202377)+-18231301519518578e-26,T[t>>3]=f,T[t+8>>3]=A-f-18231301519518578e-26,l=3;break e}f=(A+=4.712388980202377)+18231301519518578e-26,T[t>>3]=f,T[t+8>>3]=A-f+18231301519518578e-26,l=-3;break e}if((0|m)==1075388923)break r;if((0|s)>0|(0|s)>=0){f=(A+=-6.2831853069365025)+-2430840202602477e-25,T[t>>3]=f,T[t+8>>3]=A-f-2430840202602477e-25,l=4;break e}f=(A+=6.2831853069365025)+2430840202602477e-25,T[t>>3]=f,T[t+8>>3]=A-f+2430840202602477e-25,l=-4;break e}if(m>>>0>1094263290)break A}o=(Ie=(f=A+-1.5707963267341256*(M=.6366197723675814*A+6755399441055744-6755399441055744))-(z=6077100506506192e-26*M))<-.7853981633974483,l=Ae(M)<2147483648?~~M:-2147483648,o?(l=l-1|0,z=6077100506506192e-26*(M+=-1),f=A+-1.5707963267341256*M):Ie>.7853981633974483&&(l=l+1|0,z=6077100506506192e-26*(M+=1),f=A+-1.5707963267341256*M),A=f-z,T[t>>3]=A,F(+A),o=0|B(1),B(0),((c=m>>>20|0)-(o>>>20&2047)|0)<17||(z=f,A=(f-=A=6077100506303966e-26*M)-(z=20222662487959506e-37*M-(z-f-A)),T[t>>3]=A,F(+A),o=0|B(1),B(0),(c-(o>>>20&2047)|0)<50||(z=f,A=(f-=A=20222662487111665e-37*M)-(z=84784276603689e-45*M-(z-f-A)),T[t>>3]=A)),T[t+8>>3]=f-A-z;break e}if(m>>>0>=2146435072)A-=A,T[t>>3]=A,T[t+8>>3]=A,l=0;else{for(x(0,0|o),x(1,1048575&s|1096810496),A=+S(),l=0,o=1;c=(r+16|0)+(l<<3)|0,f=+(0|(l=Ae(A)<2147483648?~~A:-2147483648)),T[c>>3]=f,A=16777216*(A-f),l=1,c=o,o=0,c;);for(T[r+32>>3]=A,l=2;l=(o=l)-1|0,T[(r+16|0)+(o<<3)>>3]==0;);if(Ge=r+16|0,c=0,H=I=H-560|0,m=O(pe=(0|(m=((l=(m>>>20|0)-1046|0)-3|0)/24|0))>0?m:0,-24)+l|0,((W=e[28105])+(b=(te=o+1|0)-1|0)|0)>=0)for(l=W+te|0,o=pe-b|0;T[(I+320|0)+(c<<3)>>3]=(0|o)<0?0:+e[112432+(o<<2)>>2],o=o+1|0,(0|l)!=(0|(c=c+1|0)););for(X=m-24|0,l=0,c=(0|W)>0?W:0,Y=(0|te)<=0;;){if(Y)A=0;else for(G=l+b|0,o=0,A=0;A=T[(o<<3)+Ge>>3]*T[(I+320|0)+(G-o<<3)>>3]+A,(0|te)!=(0|(o=o+1|0)););if(T[(l<<3)+I>>3]=A,o=(0|l)==(0|c),l=l+1|0,o)break}dA=47-m|0,Oe=48-m|0,CA=m-25|0,l=W;A:{for(;;){if(A=T[(l<<3)+I>>3],o=0,c=l,!(G=(0|l)<=0))for(;Y=(I+480|0)+(o<<2)|0,b=Ae(f=5960464477539063e-23*A)<2147483648?~~f:-2147483648,b=Ae(A=-16777216*(f=+(0|b))+A)<2147483648?~~A:-2147483648,e[Y>>2]=b,A=T[((c=c-1|0)<<3)+I>>3]+f,(0|l)!=(0|(o=o+1|0)););A=Bs(A,X),A+=-8*Ee(.125*A),A-=+(0|(Y=Ae(A)<2147483648?~~A:-2147483648));r:{a:{n:{if(He=(0|X)<=0){if(X)break n;b=e[476+((l<<2)+I|0)>>2]>>23}else oe=c=(l<<2)+I|0,c=(b=e[c+476>>2])-((o=b>>Oe)<>2]=c,Y=o+Y|0,b=c>>dA;if((0|b)<=0)break r;break a}if(b=2,!(A>=.5)){b=0;break r}}if(o=0,c=0,!G)for(;Je=e[(oe=(I+480|0)+(o<<2)|0)>>2],G=16777215,c||(G=16777216,Je)?(e[oe>>2]=G-Je,c=1):c=0,(0|l)!=(0|(o=o+1|0)););a:if(!He){o=8388607;n:switch(0|CA){case 1:o=4194303;break;case 0:break n;default:break a}e[(G=(l<<2)+I|0)+476>>2]=e[G+476>>2]&o}Y=Y+1|0,(0|b)==2&&(A=1-A,b=2,c&&(A-=Bs(1,X)))}if(A!=0)break;if(c=0,!((0|W)>=(0|(o=l)))){for(;c=e[(I+480|0)+((o=o-1|0)<<2)>>2]|c,(0|o)>(0|W););if(c){for(m=X;m=m-24|0,!e[(I+480|0)+((l=l-1|0)<<2)>>2];);break A}}for(o=1;c=o,o=o+1|0,!e[(I+480|0)+(W-c<<2)>>2];);for(c=l+c|0;;){if(b=l+te|0,l=l+1|0,T[(I+320|0)+(b<<3)>>3]=e[112432+(pe+l<<2)>>2],o=0,A=0,(0|te)>0)for(;A=T[(o<<3)+Ge>>3]*T[(I+320|0)+(b-o<<3)>>3]+A,(0|te)!=(0|(o=o+1|0)););if(T[(l<<3)+I>>3]=A,!((0|l)<(0|c)))break}l=c}(A=Bs(A,24-m|0))>=16777216?(X=(I+480|0)+(l<<2)|0,o=Ae(f=5960464477539063e-23*A)<2147483648?~~f:-2147483648,c=Ae(A=-16777216*+(0|o)+A)<2147483648?~~A:-2147483648,e[X>>2]=c,l=l+1|0):(o=Ae(A)<2147483648?~~A:-2147483648,m=X),e[(I+480|0)+(l<<2)>>2]=o}if(A=Bs(1,m),!((0|l)<0)){for(o=l;c=o,T[(o<<3)+I>>3]=A*+e[(I+480|0)+(o<<2)>>2],o=o-1|0,A*=5960464477539063e-23,c;);if(G=0,!((0|l)<0))for(m=(0|W)>0?W:0,c=l;;){for(X=m>>>0>>0?m:G,W=l-c|0,o=0,A=0;A=T[115200+(o<<3)>>3]*T[(o+c<<3)+I>>3]+A,te=(0|o)!=(0|X),o=o+1|0,te;);if(T[(I+160|0)+(W<<3)>>3]=A,c=c-1|0,o=(0|l)!=(0|G),G=G+1|0,!o)break}}if(A=0,(0|l)>=0)for(o=l;c=o,o=o-1|0,A+=T[(I+160|0)+(c<<3)>>3],c;);if(T[r>>3]=b?-A:A,A=T[I+160>>3]-A,o=1,(0|l)>0)for(;A+=T[(I+160|0)+(o<<3)>>3],c=(0|o)!=(0|l),o=o+1|0,c;);T[r+8>>3]=b?-A:A,H=I+560|0,l=7&Y,A=T[r>>3],(0|s)<0?(T[t>>3]=-A,T[t+8>>3]=-T[r+8>>3],l=0-l|0):(T[t>>3]=A,T[t+8>>3]=T[r+8>>3])}}return H=r+48|0,l}function _e(){var A=0,t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0,PA=0,OA=0,tt=0,ht=0,xt=0,Nt=0,Jt=0,ir=0,br=0,or=0,Tr=0,Rr=0,qr=0,ss=0,as=0,ps=0,sa=0,aa=0,Xs=0;e[55925]=0,A=e[56772],e[56772]=A+1,r=e[55961],G=e[55922],W=rn(39.89822670059037*(t=+(0|A))),I=rn(22.30530784048753*t),t=+(0|G)/50*(+(0|r)/100)*(rn(14.765485471872028*t)+(W+I))*10,A=Ae(t)<2147483648?~~t:-2147483648,e[56607]=A+e[56607];e:if(!(e[55923]<=0)){for(;;){for(r=st(e[33209],0,1103515245,0),A=me,A=ji(r=r+12345|0,A=r>>>0<12345?A+1|0:A),e[33209]=A,A=8191+((A>>>0)%16383|0)|0,e[55929]=A,tt=+(0|A),t=.75*T[28387]+tt,T[28387]=t,ht=(0|(A=e[55924]))>(0|(Oe=e[55928]))?.5*t:t,ir=(o=.033*+e[56652])>0?1-o:1,r=e[56650]<<2,dA=(0|(Je=e[55921]))==1&&(0|r)>263?263:r,br=111136+((xt=e[56651])<<1)|0,or=111136+((CA=e[56658])<<1)|0,Tr=(0|CA)>0,Nt=e[55918],Rr=O(Nt,40),qr=e[55925],ss=T[27967],Jt=e[56607],t=T[27979],X=T[27969],f=T[27970],PA=e[56780],pe=e[56654],M=T[27976],z=T[27972],te=T[28388],oe=T[28389],G=e[55927],s=T[28383],b=e[55926],Ie=e[55956],as=T[27975],I=T[28131],l=T[28130],c=T[28123],Y=T[28121],m=T[28122],He=T[28120],Ge=T[28119],ps=T[28129],sa=T[28128],aa=T[28127],Xs=As(0*T[27968]),OA=0;;){W=l;A:{r:switch(Je-1|0){case 0:te=0,l=Y*c,c=m,m=s=l+(Ge*(te=(0|A)<=2?T[111312+(A<<3)>>3]:te)+He*c);break A;case 1:if(s=0,(0|A)>=(0|G)){oe=0;break A}l=T[27965]-T[27966],T[27965]=l,s=.028*(oe=l+oe);break A;case 2:if(!b){Ie=100,s=0;break A}Ie=100,r=Ae(l=+(0|A)/+(0|b)*100)<2147483648?~~l:-2147483648,s=+k[110928+((0|r)%100<<1)>>1],s=t*((+k[110928+((r+1|0)%100<<1)>>1]-s)*(l-+(0|r))+s);break A;case 3:break r;default:break A}b?(Ie=256,r=Ae(l=+(0|A)/+(0|b)*256)<2147483648?~~l:-2147483648,s=+k[111344+((0|r)%256<<1)>>1],s=t*((+k[111344+((r+1|0)%256<<1)>>1]-s)*(l-+(0|r))+s)):(Ie=256,s=0)}if((0|A)>=(0|b)&&((0|Jt)>0?(A=(0|Rr)/(0|Jt)|0,M=0,z=0,z=CA>>>0<=87?.001*+k[or>>1]:z,M=xt>>>0<=87?.001*+k[br>>1]*.1:M,Oe=A>>Tr,G=(0|(r=(b=(A-1|0)<=(0|dA))?A-2|0:dA))<=40?40:r,l=+k[111776+((G=b||(0|r)<40?G:dA)<<1)>>1],T[27966]=l,Y=l,l=+(0|G),T[27965]=Y*l*.333,pe=(0|(r=A-G|0))>(0|pe)?pe:r,PA=0-(r=(0|PA)<0?0-pe|0:pe)|0,Ge=(l*=.00833)*l,Ge*=1-(He=(Y=(l=Gr(ss*+((0|Nt)/(0|G)|0)))*Xs)+Y)-(Y=l*-l),A=(0|(b=A+r|0))!=4):(e[55930]=0,e[55931]=0,e[55932]=0,e[55933]=0,Oe=4,M=0,z=0,b=4,A=0),f=(A|=!qr)?o:f,X=A?ir:X,A=0),A=A+1|0,l=s=ps*I+(aa*s+sa*W),I=W,(0|(OA=OA+1|0))==4)break}if(e[55926]=b,e[55956]=Ie,e[55924]=A,T[28383]=s,e[55927]=G,T[28389]=oe,T[28388]=te,T[27972]=z,T[27976]=M,e[55928]=Oe,e[56654]=pe,e[56780]=PA,T[27970]=f,T[27969]=X,T[28122]=m,T[28120]=He,T[28119]=Ge,T[28123]=c,T[28121]=Y,T[28131]=I,T[28130]=s,(0|Je)==5&&(s=6e3*((t=+(0|A)/+(0|b))+t+-1),T[28383]=s),t=s*X+T[28384]*f,T[28383]=t,T[28384]=t,(0|A)<(0|G)&&(t=M*tt+t,T[28383]=t),f=ht*T[27974],W=t*T[27973]+f,I=0,e[55916]!=2&&(I=T[27987],m=T[27986],T[27987]=m,t=f+t*z,T[27986]=t,f=T[28059],c=T[28058],T[28059]=c,t=f*T[28057]+(T[28055]*(I*T[27985]+(T[27983]*t+m*T[27984]))+c*T[28056]),T[28058]=t,I=T[28049],f=T[28051],m=T[28048],c=T[28047],o=T[28050],T[28051]=o,t=I*f+(c*t+m*o),T[28050]=t,I=T[28043],f=T[28041],m=T[28040],c=T[28039],o=T[28042],T[28043]=o,t=f*I+(c*t+m*o),T[28042]=t,I=T[28035],f=T[28033],m=T[28032],c=T[28031],o=T[28034],T[28035]=o,t=f*I+(c*t+m*o),T[28034]=t,I=T[28027],f=T[28025],m=T[28024],c=T[28023],o=T[28026],T[28027]=o,t=f*I+(c*t+m*o),T[28026]=t,I=T[28019],f=T[28017],m=T[28016],c=T[28015],o=T[28018],T[28019]=o,t=f*I+(c*t+m*o),T[28018]=t,I=T[28011],f=T[28009],m=T[28008],c=T[28007],o=T[28010],T[28011]=o,t=f*I+(c*t+m*o),T[28010]=t,I=T[28003],f=T[28001],m=T[28e3],c=T[27999],o=T[28002],T[28003]=o,t=f*I+(c*t+m*o),T[28002]=t,I=T[27995],f=T[27993],m=T[27992],c=T[27991],o=T[27994],T[27995]=o,I=f*I+(c*t+m*o),T[27994]=I),t=T[28385],T[28385]=W,f=T[28075],m=T[28074],T[28075]=m,c=T[28067],o=T[28066],T[28067]=o,f=f*T[28073]+(T[28071]*W+m*T[28072]),T[28074]=f,m=c*T[28065]+(T[28063]*W+o*T[28064]),T[28066]=m,c=T[28081],o=T[28083],l=T[28079],s=T[28080],M=T[28082],T[28083]=M,W=c*o+(l*(t=as*ht+W-t)+s*M),T[28082]=W,c=T[28091],o=T[28089],l=T[28087],s=T[28088],M=T[28090],T[28091]=M,c=o*c+(l*t+s*M),T[28090]=c,o=T[28099],l=T[28097],s=T[28095],M=T[28096],z=T[28098],T[28099]=z,o=l*o+(s*t+M*z),T[28098]=o,l=T[28107],s=T[28105],M=T[28103],z=T[28104],X=T[28106],T[28107]=X,l=s*l+(M*t+z*X),T[28106]=l,s=T[28115],M=T[28113],z=T[28111],X=T[28112],te=T[28114],T[28115]=te,s=M*s+(z*t+X*te),T[28114]=s,M=T[28139],z=T[28137],X=T[28136],te=T[28135],oe=T[27971],Y=T[28138],T[28139]=Y,t=z*M+(te*(t*oe-(s-(l-(o-(c-(W-(I+f+m)))))))+X*Y),T[28138]=t,t=T[27977]*(t*+e[50779]),s=+(0|(A=Ae(t)<2147483648?~~t:-2147483648)),(0|(A=e[50776]))>1],e[50755])>>8,A=Ae(s)<2147483648?~~s:-2147483648,(0|r)>=5500&&(e[51293]=0),r=e[51290],e[51290]=r+1,A=(0|(A=(0|(A=A+b|0))<=-32768?-32768:A))>=32767?32767:A,d[0|r]=A,r=e[51290],e[51290]=r+1,d[0|r]=A>>>8,b=(r=e[51292])+1|0,e[51292]=b,k[205184+(r<<1)>>1]=A,(0|b)>=5500&&(e[51292]=0),b=1,e[56606]=e[56606]+1,$[54046]>>0)break e;if(A=e[55925]+1|0,e[55925]=A,!((0|A)>2]=t,I=f+55|0,m=f+56|0;e:{A:{r:{a:{n:for(;;){if(G=t,(2147483647^te)<(0|b))break a;te=b+te|0;o:{c:{u:{if(M=u[0|(b=G)])for(;;){l:{i:if(t=255&M){if((0|t)!=37)break l;for(M=b;;){if(u[M+1|0]!=37){t=M;break i}if(b=b+1|0,W=u[M+2|0],M=t=M+2|0,(0|W)!=37)break}}else t=b;if((0|(b=b-G|0))>(0|(Je=2147483647^te)))break a;if(A&&_r(A,G,b),b)continue n;e[f+76>>2]=t,b=t+1|0,oe=-1,u[t+2|0]!=36|d[t+1|0]-48>>>0>=10||(oe=d[t+1|0]-48|0,Ge=1,b=t+3|0),e[f+76>>2]=b,Y=0;i:if((t=(M=d[0|b])-32|0)>>>0>31)X=b;else if(X=b,75913&(t=1<>2]=X,Y|=t,(t=(M=d[b+1|0])-32|0)>>>0>=32)break i;if(b=X,!(75913&(t=1<>2]}else{if(u[X+2|0]!=36|d[X+1|0]-48>>>0>=10){if(Ge)break u;if(M=X+1|0,!A){e[f+76>>2]=M,Ge=0,pe=0;break i}t=e[r>>2],e[r>>2]=t+4,Ge=0,t=e[t>>2]}else e[((d[X+1|0]<<2)+o|0)-192>>2]=10,M=X+3|0,Ge=1,t=e[((d[X+1|0]<<3)+s|0)-384>>2];if(e[f+76>>2]=M,pe=t,(0|t)>=0)break i;pe=0-pe|0,Y|=8192}if(b=0,z=-1,u[0|M]==46)if(u[M+1|0]!=42)e[f+76>>2]=M+1,z=dn(f+76|0),t=e[f+76>>2],He=1;else{if(u[M+3|0]!=36|d[M+2|0]-48>>>0>=10){if(Ge)break u;t=M+2|0,z=0,A&&(M=e[r>>2],e[r>>2]=M+4,z=e[M>>2])}else e[((d[M+2|0]<<2)+o|0)-192>>2]=10,t=M+4|0,z=e[((d[M+2|0]<<3)+s|0)-384>>2];e[f+76>>2]=t,He=~z>>>31|0}else t=M,He=0;for(;;){if(Ie=b,X=28,W=t,(b=d[0|t])-123>>>0<4294967238)break r;if(t=W+1|0,!((b=u[123983+(b+O(Ie,58)|0)|0])-1>>>0<8))break}e[f+76>>2]=t;i:{p:{if((0|b)!=27){if(!b)break r;if((0|oe)>=0){e[(oe<<2)+o>>2]=b,b=e[(M=(oe<<3)+s|0)+4>>2],e[f+64>>2]=e[M>>2],e[f+68>>2]=b;break p}if(!A)break o;$e(f- -64|0,b,r,c);break i}if((0|oe)>=0)break r}if(b=0,!A)continue n}M=-65537&Y,Y=8192&Y?M:Y,oe=0,Oe=84065,X=m;i:{p:{C:{h:{b:{m:{v:{I:{x:{L:{_:{U:{y:{M:{Q:{F:switch(b=d[0|W],(b=Ie&&(15&b)==3?-33&b:b)-88|0){case 11:break i;case 9:case 13:case 14:case 15:break p;case 27:break v;case 12:case 17:break L;case 23:break _;case 0:case 32:break U;case 24:break y;case 22:break M;case 29:break Q;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break c;default:break F}F:switch(b-65|0){case 0:case 4:case 5:case 6:break p;case 2:break b;case 1:case 3:break c;default:break F}if((0|b)==83)break m;break c}M=e[f+64>>2],W=e[f+68>>2],Oe=84065;break x}b=0;M:switch(255&Ie){case 0:case 1:case 6:e[e[f+64>>2]>>2]=te;continue n;case 2:G=e[f+64>>2],e[G>>2]=te,e[G+4>>2]=te>>31;continue n;case 3:k[e[f+64>>2]>>1]=te;continue n;case 4:d[e[f+64>>2]]=te;continue n;case 7:break M;default:continue n}G=e[f+64>>2],e[G>>2]=te,e[G+4>>2]=te>>31;continue n}z=z>>>0<=8?8:z,Y|=8,b=120}if(G=m,dA=32&b,(M=e[f+64>>2])|(W=e[f+68>>2]))for(;d[0|(G=G-1|0)]=dA|u[124512+(15&M)|0],CA=!W&M>>>0>15|!!(0|W),Ie=W,W=W>>>4|0,M=(15&Ie)<<28|M>>>4,CA;);if(!(e[f+64>>2]|e[f+68>>2])|!(8&Y))break I;Oe=84065+(b>>>4|0)|0,oe=2;break I}if(b=m,W=G=e[f+68>>2],G|(M=e[f+64>>2]))for(;d[0|(b=b-1|0)]=7&M|48,Ie=!W&M>>>0>7|!!(0|W),W=(G=W)>>>3|0,M=(7&G)<<29|M>>>3,Ie;);if(G=b,!(8&Y))break I;z=(0|(b=m-G|0))<(0|z)?z:b+1|0;break I}M=e[f+64>>2],W=b=e[f+68>>2],(0|b)<0?(W=G=0-(W+!!(0|M)|0)|0,M=0-M|0,e[f+64>>2]=M,e[f+68>>2]=G,oe=1,Oe=84065):2048&Y?(oe=1,Oe=84066):Oe=(oe=1&Y)?84067:84065}G=ga(M,W,m)}if((0|z)<0&&He)break a;if(Y=He?-65537&Y:Y,!(z|!!((b=e[f+64>>2])|(M=e[f+68>>2])))){G=m,z=0;break c}z=(0|(b=!(b|M)+(m-G|0)|0))<(0|z)?z:b;break c}if(X=(b=(b=ca(G=(b=e[f+64>>2])||84639,0,W=z>>>0>=2147483647?2147483647:z))?b-G|0:W)+G|0,(0|z)>=0){Y=M,z=b;break c}if(Y=M,z=b,u[0|X])break a;break c}if(z){M=e[f+64>>2];break h}b=0,Sr(A,32,pe,0,Y);break C}e[f+12>>2]=0,e[f+8>>2]=e[f+64>>2],M=f+8|0,e[f+64>>2]=M,z=-1}b=0;h:{for(;;){if(!(G=e[M>>2]))break h;if(!((G=(0|(W=ai(f+4|0,G)))<0)|W>>>0>z-b>>>0)){if(M=M+4|0,z>>>0>(b=b+W|0)>>>0)continue;break h}break}if(G)break A}if(X=61,(0|b)<0)break r;if(Sr(A,32,pe,b,Y),b)for(X=0,M=e[f+64>>2];;){if(!(G=e[M>>2])||(X=(G=ai(f+4|0,G))+X|0)>>>0>b>>>0)break C;if(_r(A,f+4|0,G),M=M+4|0,!(b>>>0>X>>>0))break}else b=0}Sr(A,32,pe,b,8192^Y),b=(0|b)<(0|pe)?pe:b;continue n}if((0|z)<0&&He)break a;if(X=61,(0|(b=0|$A[0|l](A,T[f+64>>3],pe,z,Y,b)))>=0)continue n;break r}d[f+55|0]=e[f+64>>2],z=1,G=I,Y=M;break c}M=u[b+1|0],b=b+1|0}if(A)break e;if(!Ge)break o;for(b=1;;){if(A=e[(b<<2)+o>>2]){if($e((b<<3)+s|0,A,r,c),te=1,(0|(b=b+1|0))!=10)continue;break e}break}if(te=1,b>>>0>=10)break e;for(;;){if(e[(b<<2)+o>>2])break u;if((0|(b=b+1|0))==10)break}break e}X=28;break r}if((0|(M=(0|z)>(0|(W=X-G|0))?z:W))>(2147483647^oe))break a;if(X=61,(0|Je)<(0|(b=(0|(z=M+oe|0))<(0|pe)?pe:z)))break r;Sr(A,32,b,z,Y),_r(A,Oe,oe),Sr(A,48,b,z,65536^Y),Sr(A,48,M,W,0),_r(A,G,W),Sr(A,32,b,z,8192^Y);continue}break}te=0;break e}X=61}e[56798]=X}te=-1}return H=f+80|0,te}function je(A,t,r,s,o,l,c,f,m){var I,b,M,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0,PA=0,OA=0,tt=0,ht=0,xt=0,Nt=0,Jt=0,ir=0,br=0,or=0,Tr=0,Rr=0,qr=0,ss=0,as=0,ps=0;H=I=H-96|0,Oe=65535&m,X=-2147483648&(o^m),PA=oe=65535&o;e:{if(!((b=m>>>16&32767)-32767>>>0>4294934529&(M=o>>>16&32767)-32767>>>0>=4294934530)){if(G=s,!(!s&(0|(pe=Ie=2147483647&o))==2147418112?!(t|r):pe>>>0<2147418112)){W=s,X=32768|o;break e}if(!(!(o=f)&(0|(te=Ie=2147483647&m))==2147418112?!(l|c):te>>>0<2147418112)){W=f,X=32768|m,t=l,r=c;break e}if(!(t|G|2147418112^pe|r)){if(!(o|l|c|te)){X=2147450880,t=0,r=0;break e}X|=2147418112,t=0,r=0;break e}if(!(o|l|2147418112^te|c)){if(o=t|G,s=r|pe,t=0,r=0,!(s|o)){X=2147450880;break e}X|=2147418112;break e}if(!(t|G|r|pe)){t=0,r=0;break e}if(!(o|l|c|te)){t=0,r=0;break e}(0|pe)==65535|pe>>>0<65535&&(Ie=(G=!(s|oe))<<6,o=be(m=G?t:s)+32|0,Pt(I+80|0,t,r,s,oe,(m=Ie+((0|(m=be(G?r:oe)))==32?o:m)|0)-15|0),Ge=16-m|0,s=e[I+88>>2],PA=e[I+92>>2],r=e[I+84>>2],t=e[I+80>>2]),te>>>0>65535||(oe=(m=!(f|Oe))<<6,G=be(o=m?l:f)+32|0,Pt(I- -64|0,l,c,f,Oe,(o=oe+((0|(o=be(m?c:Oe)))==32?G:o)|0)-15|0),Ge=16+(Ge-o|0)|0,f=e[I+72>>2],Oe=e[I+76>>2],l=e[I+64>>2],c=e[I+68>>2])}if(o=l,l=c<<15|l>>>17,Tr=r,Ie=st(He=-32768&(m=o<<15),o=0,r,0),CA=o=me,Rr=l,pe=t,t=st(l,0,t,0),l=me+o|0,r=t>>>0>(m=t+Ie|0)>>>0?l+1|0:l,G=0,t=st(pe,z,He,z),o=(l=m)+me|0,oe=o=t>>>0>(te=G+t|0)>>>0?o+1|0:o,qr=(0|l)==(0|o)&G>>>0>te>>>0|o>>>0>>0,ss=s,Je=st(He,z,s,0),as=me,t=st(Tr,z,Rr,z),G=me+as|0,G=t>>>0>(dA=t+Je|0)>>>0?G+1|0:G,t=Oe<<15|f>>>17,s=st(OA=f<<15|c>>>17,0,pe,z),l=me+G|0,ht=l=s>>>0>(tt=s+dA|0)>>>0?l+1|0:l,l=(s=(0|r)==(0|CA)&m>>>0>>0|r>>>0>>0)+l|0,Oe=l=r>>>0>(xt=r+tt|0)>>>0?l+1|0:l,c=xt,r=l,PA=st(He,z,Nt=65536|PA,Y),ps=me,s=st(ss,W,Rr,z),o=me+ps|0,m=o=s>>>0>(Jt=s+PA|0)>>>0?o+1|0:o,t=st(ir=-2147483648|t,0,pe,z),l=me+o|0,l=t>>>0>(br=t+Jt|0)>>>0?l+1|0:l,t=st(OA,W,Tr,z),or=l,l=l+me|0,Ie=t>>>0>(CA=t+br|0)>>>0?l+1|0:l,o=r+CA|0,l=He=(t=0)>>>0>(pe=t+c|0)>>>0?o+1|0:o,r=(t=pe+qr|0)>>>0>>0?l+1|0:l,Ge=((M+b|0)+Ge|0)-16383|0,s=st(ir,W,Tr,z),f=me,o=st(Nt,W,Rr,z),l=me+f|0,Y=(0|f)==(0|(l=o>>>0>(c=o+s|0)>>>0?l+1|0:l))&s>>>0>c>>>0|l>>>0>>0,f=l,o=st(OA,W,ss,W),l=me+l|0,o=l=(s=o+c|0)>>>0>>0?l+1|0:l,c=(0|l)==(0|f)&s>>>0>>0|l>>>0>>0,l=0,l=(f=c)>>>0>(c=c+Y|0)>>>0?1:l,f=c,c=st(ir,W,Nt,W),l=me+l|0,qr=f=f+c|0,c=c>>>0>f>>>0?l+1|0:l,f=s,z=o,o=(0|G)==(0|as)&Je>>>0>dA>>>0|G>>>0>>0,l=0,o=((Y=G=(0|G)==(0|ht)&dA>>>0>tt>>>0|G>>>0>ht>>>0)>>>0>(G=o+G|0)>>>0?1:l)+z|0,l=c,Y=o=(s=s+G|0)>>>0>>0?o+1|0:o,Je=s,o=s=(0|o)==(0|z)&s>>>0>>0|o>>>0>>0,G=s=s+qr|0,c=l=o>>>0>s>>>0?l+1|0:l,o=st(OA,W,Nt,W),z=me,s=st(ir,W,ss,W),l=me+z|0,s=l=s>>>0>(f=s+o|0)>>>0?l+1|0:l,o=(l=(0|z)==(0|l)&o>>>0>f>>>0|l>>>0>>0)+c|0,c=o=s>>>0>(dA=s+G|0)>>>0?o+1|0:o,l=f+Y|0,o=l=(s=(o=0)+Je|0)>>>0>>0?l+1|0:l,f=(0|Y)==(0|l)&s>>>0>>0|l>>>0>>0,l=c,l=(c=f+(z=dA)|0)>>>0>>0?l+1|0:l,Je=c,f=s,G=o,o=(s=(s=(s=(0|m)==(0|ps)&PA>>>0>Jt>>>0|m>>>0>>0)+(m=(0|m)==(0|or)&Jt>>>0>br>>>0|m>>>0>or>>>0)|0)+(o=(0|Ie)==(0|or)&CA>>>0
>>0|Ie>>>0>>0)|0)+G|0,l=c=l,G=c=(f=(0|(o=(s=m=(Y=Ie)+f|0)>>>0>>0?o+1|0:o))==(0|G)&f>>>0>s>>>0|o>>>0>>0)+Je|0,c=l=f>>>0>c>>>0?l+1|0:l,f=s,l=0,m=o,o=o+((z=Y=(0|Oe)==(0|He)&pe>>>0>>0|Oe>>>0>He>>>0)>>>0>(Y=Y+((0|Oe)==(0|ht)&tt>>>0>xt>>>0|Oe>>>0>>0)|0)>>>0?1:l)|0,l=c,m=l=(c=f=(0|(o=(s=s+Y|0)>>>0>>0?o+1|0:o))==(0|m)&s>>>0>>0|o>>>0>>0)>>>0>(f=f+G|0)>>>0?l+1|0:l,65536&l?Ge=Ge+1|0:(G=oe>>>31|0,l=m<<1|f>>>31,f=f<<1|o>>>31,m=l,l=o<<1|s>>>31,s=s<<1|r>>>31,o=l,l=oe<<1|te>>>31,te<<=1,oe=l,l=r<<1|t>>>31,t=t<<1|G,r=l|(c=0)),(0|Ge)>=32767)X|=2147418112,t=0,r=0;else{A:{if((0|Ge)<=0){if((c=1-Ge|0)>>>0<=127){Pt(I+48|0,te,oe,t,r,l=Ge+127|0),Pt(I+32|0,s,o,f,m,l),xr(I+16|0,te,oe,t,r,c),xr(I,s,o,f,m,c),te=e[I+32>>2]|e[I+16>>2]|!!(e[I+48>>2]|e[I+56>>2]|e[I+52>>2]|e[I+60>>2]),oe=e[I+36>>2]|e[I+20>>2],t=e[I+40>>2]|e[I+24>>2],r=e[I+44>>2]|e[I+28>>2],s=e[I>>2],o=e[I+4>>2],c=e[I+8>>2],l=e[I+12>>2];break A}t=0,r=0;break e}c=f,l=65535&m|Ge<<16}W|=c,X|=l,(!t&(0|r)==-2147483648?!(te|oe):(0|r)>0|(0|r)>=0)?t|te|-2147483648^r|oe?(t=s,r=o):(G=X,X=(s=(0|(l=o))==(0|(r=(r=t=1&s)>>>0>(t=t+s|0)>>>0?l+1|0:l))&t>>>0>>0|r>>>0>>0)>>>0>(W=s+W|0)>>>0?G+1|0:G):(s=(0|o)==(0|(r=(t=s+1|0)?o:o+1|0))&t>>>0>>0|r>>>0>>0,o=X,X=(W=s+W|0)>>>0>>0?o+1|0:o)}}e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=W,e[A+12>>2]=X,H=I+96|0}function At(A,t,r,s,o,l,c){var f,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0;H=f=H-480|0,e[f+476>>2]=0,e[f+456>>2]=0,e[f+460>>2]=0,e[f+448>>2]=0,e[f+452>>2]=0,e[f+440>>2]=0,e[f+444>>2]=0,e[f+432>>2]=0,e[f+436>>2]=0,m=0;e:if(e[A+684>>2]){for(W=c?e[c>>2]:W;b=u[t+m|0],d[(f+112|0)+m|0]=b,I=m+1|0,b&&(b=m>>>0<158,m=I,b););if(d[I+(f+112|0)|0]=0,!((te=268435456&l)|!(8&e[47197]))){I=0;A:if(223&(b=u[0|t]))for(m=0;;){if(d[(f+272|0)+m|0]=b,!(223&(b=u[(I=m+1|0)+t|0])))break A;if(M=m>>>0<118,m=I,!M)break}d[(m=f+272|0)+I|0]=0,e[f+48>>2]=m,rr(e[47195],(0|l)>=0?87019:86877,f+48|0)}e[f+464>>2]=t,e[A+8208>>2]=0,e[A+8212>>2]=0,o&&(d[0|o]=0);A:{r:if(223&(m=u[0|t]))for(oe=536870912&l,pe=4096&l,Ie=f+105|0,I=t,b=0;;){M=zA(f+476|0,I),X=!!(0|zt(e[f+476>>2]))+X|0,z=u[(m=(G=255&m)+A|0)+7668|0];a:if(!((Y=e[f+476>>2])-48>>>0<10|Y-2406>>>0<10)|(X?u[A+170|0]:0)){n:if((b=e[f+476>>2]-e[A+600>>2]|0)>>>0>127||!(b=e[6192+((b<<2)+A|0)>>2])){if(z){for(Y=5168+((G<<2)+A|0)|0,z=z+(m=u[m+7924|0])|0,Ge=G|u[I+1|0]<<8,b=0;e[(I=(m<<2)+A|0)+7184>>2]==(0|Ge)&&(e[f+472>>2]=e[f+464>>2],VA(A,f+472|0,t,2,e[I+6704>>2],f+432|0,l,W),(0|(I=e[f+432>>2]))>0&&(I=I+35|0,e[f+432>>2]=I),b=1,VA(A,f+464|0,t,1,e[Y>>2],f+448|0,l,W),e[f+448>>2]>(0|I)||(I=e[f+444>>2],e[f+456>>2]=e[f+440>>2],e[f+460>>2]=I,I=e[f+436>>2],e[f+448>>2]=e[f+432>>2],e[f+452>>2]=I,e[f+464>>2]=e[f+472>>2])),z>>>0>(m=m+1|0)>>>0;);if(b)break n}o:{c:{if(!(m=e[5168+((G<<2)+A|0)>>2])){if(VA(A,f+464|0,t,0,e[A+5168>>2],f+448|0,l,W),e[f+448>>2])break o;if(16&u[188808])break c;if(b=zA(f+468|0,G=(I=e[f+464>>2])-1|0),m=e[f+468>>2],!(e[A+600>>2]<=0|(0|m)>577)){if(fi(m)){e[f+32>>2]=21,cA(r,87049,f+32|0);break A}m=e[f+468>>2]}if((0|m)==57384&&((0|(z=e[A+92>>2]))<=e[47352]||(e[47352]=z)),Cn(m)&&((0|(m=e[A+72>>2]))<=e[47352]||(e[47352]=m)),!((z=(m=e[f+468>>2])-192|0)>>>0>413)&&(z=u[z+94240|0])&&(b=b-1|0,!(u[I-2|0]==32&u[b+I|0]==32))){for(e[f+472>>2]=G,d[0|G]=z;M=u[(m=I)+b|0],d[0|m]=M,I=m+1|0,(0|M)!=32;);if((0|b)>0&&eA(m,32,b),e[A+24>>2]&&!((0|Us(94222,e[f+468>>2]))<=0)){e[f+464>>2]=G,b=0;break a}b=0,d[0|r]=0,e[f+464>>2]=t,e[A+8208>>2]=0,e[A+8212>>2]=0;break a}if(!(m=Aa(m))||(0|(I=e[m+4>>2]))==e[A+600>>2])break c;if((0|I)==e[A+188>>2]){e[f+4>>2]=J(f- -64|0,e[A+192>>2]),e[f>>2]=21,cA(r,87218,f);break A}if(!(4&u[m+16|0]))break c;e[f+20>>2]=J(f- -64|0,e[m+12>>2]),e[f+16>>2]=21,cA(r,87218,f+16|0);break A}if(VA(A,f+464|0,t,1,m,f+448|0,l,W),e[f+448>>2])break o}c:if(!((m=e[f+476>>2])-768>>>0<112)){if(zt(m)){if(d[(M+e[f+464>>2]|0)-1|0]<33&(0|X)<=1)break c;if(d[0|r]=0,!c)break r;e[c>>2]=4096|e[c>>2];break r}wA(A,e[f+476>>2],-1,f+272|0,0),u[f+272|0]&&(e[f+448>>2]=1,e[f+452>>2]=f+272)}e[f+464>>2]=(M+e[f+464>>2]|0)-1;break n}e[A+288>>2]=0}else VA(A,f+464|0,t,M,b,f+448|0,l,W);if(I=(m=e[f+452>>2])||86135,e[f+452>>2]=I,b=0,!(e[f+448>>2]<=0)){if(m=1|e[f+456>>2],(0|l)<0)break e;if(!(u[0|I]!=21|pe)){DA(r,I);break A}if(!(!(8&e[47197])|te))n:if(m=e[47195],(0|(M=e[m+76>>2]))>=0&(!M|e[56823]!=(-1073741825&M)))G=e[(M=m+76|0)>>2],e[M>>2]=G||1073741823,e[m+80>>2]==10||(0|(G=e[m+20>>2]))==e[m+16>>2]?ka(m):(e[m+20>>2]=G+1,d[0|G]=10),e[M>>2]=0;else{if(e[m+80>>2]!=10&&(0|(M=e[m+20>>2]))!=e[m+16>>2]){e[m+20>>2]=M+1,d[0|M]=10;break n}ka(m)}if(M=-32769&(m=e[f+456>>2]),e[f+456>>2]=M,!(!o|!M|(1024&m?oe:0))){A=e[f+464>>2],DA(o,I),m=M|(Oe=(r=A)-SA(t,A=f+112|0,BA(A))|0,(1151&m)==1024?Oe:0);break e}(m=e[f+460>>2])&&(d[0|m]=69),yn(A,r,s,I)}}else d[f+104|0]=95,SA(Ie,I,M),m=1,d[105+(f+M|0)|0]=0,TA(A,f+104|0,f- -64|0),b-1>>>0<=4294967293&&(m=BA(m=f- -64|0)+m|0,d[0|m]=11,d[m+1|0]=0,m=0),yn(A,r,s,f- -64|0),e[f+464>>2]=I+M,b=m;if(I=e[f+464>>2],!(223&(m=u[0|I])))break}SA(t,A=f+112|0,BA(A))}m=0}return H=f+480|0,m}function Tt(A,t){var r,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0;H=r=H-2976|0,e[t>>2]=1,s=e[A+20>>2],e[(f=r+2960|0)>>2]=e[A+16>>2],e[f+4>>2]=s,s=e[A+12>>2],e[(f=r+2952|0)>>2]=e[A+8>>2],e[f+4>>2]=s,s=e[A+4>>2],e[r+2944>>2]=e[A>>2],e[r+2948>>2]=s,e[50303]||nt();e:if(A=e[r+2948>>2],u[0|A]&&A||((A=e[r+2944>>2])||(A=(A=e[r+2952>>2])||85055,e[r+2944>>2]=A),Rt(s=r+80|0,A,60),tn(s,0),!(l=$t(201216,s))||(e[r+2948>>2]=e[l+4>>2]+1,u[r+2958|0]|u[r+2956|0]|u[r+2957|0]))){X=r+1536|0,H=W=H-336|0;A:if(!(!(A=e[(Y=r+2944|0)+4>>2])|!u[0|A])){if((0|(te=BA(A)))>=0){for(s=te>>>0>=79?79:te,b=1;A=vs(d[e[Y+4>>2]+o|0]),d[(W+256|0)+o|0]=A,b=((255&A)==45)+b|0,A=(0|s)!=(0|o),o=o+1|0,A;);if((0|b)!=1)break A}b=1}if((0|(M=e[50303]))<=0)e[X>>2]=0,A=0;else{for(f=(0|b)>=0;;){I=e[201216+(Ie<<2)>>2];A:if(Zr(e[I+8>>2],88032,3)){if((A=e[Y+4>>2])&&Zr(A,91687,3)){if(f){A=100;r:if(b){if(s=0,o=e[I+4>>2],!(oe=u[0|o])){if(!Zr(W+256|0,90013,9))break r;break A}for(;;){for(Ge=1,m=o+1|0,pe=1,Oe=0,o=0;(0|o)<(0|te)&&(0|(A=d[(W+256|0)+o|0]))!=45||(A=0),Oe=((G=(0|(z=u[o+m|0]))==45)&!!(0|(pe=(G?0:z)<<24>>24==(0|A)?pe:0)))+Oe|0,o=o+1|0,Ge=G+Ge|0,z;);if(o=o+m|0,(G=pe+Oe|0)&&(s=(0|(A=O((m=(0|(A=b-G|0))<=0?5:5-A|0)-((0|(A=Ge-G|0))>0?A:0)|0,100)-(oe<<24>>24<<1)|0))>(0|s)?A:s),!(oe=u[0|o]))break}if(!(A=s))break A}(s=e[Y>>2])&&(A=tr(s,e[I>>2])?tr(s,e[I+8>>2])?A:A+400|0:A+500|0),((o=u[Y+12|0])-1&255)>>>0>1||((s=u[I+12|0])-1&255)>>>0>1||(A=(0|s)!=(0|o)?A-50|0:A+50|0),o=u[Y+13|0],A=u[I+12|0]!=2|o>>>0>12?A:u[I+13|0]>12?A+5|0:A,(s=u[I+13|0])&&((s=((o?O(o,100):3e3)>>>0)/(s>>>0)|0)>>>0<=99&&(s=1e4/(s>>>0)|0),A=(m=A)+((A=5-(((s-100&65535)>>>0)/10|0)|0)>>31&A)|0,A=o?A+10|0:A),A=(0|A)<=1?1:A}else{if(Zr(e[I+8>>2],W+256|0,te))break A;A=100}e[X+(c<<2)>>2]=I,e[I+16>>2]=A}else e[X+(c<<2)>>2]=I;c=c+1|0}if((0|M)==(0|(Ie=Ie+1|0)))break}e[X+(c<<2)>>2]=0,A=0,c&&(La(X,c,8),A=c)}if(H=W+336|0,b=A,A||(e[t>>2]=0,A=$t(201216,85055),e[r+1536>>2]=A,b=!!(0|A)),t=u[r+2957|0],f=2,(0|(A=u[r+2956|0]))!=2&&(f=2,(t-1&255)>>>0<12||(Je=(0|A)!=1,f=(0|A)==1)),M=(c=e[132136+(f<<2)>>2])+(z=t>>>0<60)|0,A=0,(0|b)>0)for(s=0;;){l=e[(r+1536|0)+(He<<2)>>2];A:{r:{a:{if(Je){if(z||(t=0,s))break r}else{if(t=u[l+12|0],s|z)break a;t=(0|t)!=(0|f)}if(o=0,t|u[l+13|0]<60)break A;break r}if((0|t)!=(0|f)){o=s;break A}}e[(r+80|0)+(s<<2)>>2]=l,o=s+1|0}A:if(u[l+15|0]){if(G=0,t=A,s=o,!((0|A)>11))for(;;){if((o=u[0|M])||(M=c,o=u[0|c]),A=e[l+12>>2],m=O(t,24)+202624|0,e[m+8>>2]=e[l+8>>2],e[m+12>>2]=A,A=e[l+4>>2],e[m>>2]=e[l>>2],e[m+4>>2]=A,A=e[l+20>>2],e[m+16>>2]=e[l+16>>2],e[m+20>>2]=A,d[m+14|0]=o,e[(r+80|0)+(s<<2)>>2]=m,M=M+1|0,s=s+1|0,A=t+1|0,(G=G+1|0)>>>0>=u[l+15|0])break A;if(o=(0|t)<11,t=A,!o)break}}else s=o;if((0|(He=He+1|0))==(0|b))break}else{if(!l)break e;s=0}A:if(!(!(o=u[0|M])|(0|A)>=12))for(;;){if(t=e[l+12>>2],c=O(A,24)+202624|0,e[c+8>>2]=e[l+8>>2],e[c+12>>2]=t,t=e[l+4>>2],e[c>>2]=e[l>>2],e[c+4>>2]=t,t=e[l+20>>2],e[c+16>>2]=e[l+16>>2],e[c+20>>2]=t,d[c+14|0]=o,e[(r+80|0)+(s<<2)>>2]=c,s=s+1|0,!(o=u[0|(M=M+1|0)]))break A;if(t=(0|A)<11,A=A+1|0,!t)break}s?(A=e[(r+80|0)+(u[r+2958|0]%(0|s)<<2)>>2],(t=u[A+14|0])?(d[202976]=0,e[r+48>>2]=47,cA(r+2971|0,91351,r+48|0),d[r+2971|0]=0,t>>>0<=9?(e[r+20>>2]=t,e[r+16>>2]=r+2971,cA(202976,91378,r+16|0)):(e[r+36>>2]=t-10,e[r+32>>2]=r+2971,cA(202976,91503,r+32|0)),A=e[A+8>>2],e[r+4>>2]=202976,e[r>>2]=A,A=202912,cA(202912,87760,r)):A=e[A+8>>2]):A=0}else{if(A=e[l+8>>2],!u[202976])break e;e[r+64>>2]=A,e[r+68>>2]=202976,A=202912,cA(202912,87760,r- -64|0)}return H=r+2976|0,A}function XA(A,t,r,s,o){var l,c,f=0,m=0,I=0,b=0,M=0,G=0,z=0;H=l=H-464|0,d[l+432|0]=0,d[l+368|0]=0,d[l+304|0]=0,d[l+292|0]=0,M=(0|t)/10|0,f=e[33273];e:{if(!(c=2&s)|e[33272]!=2){z=32&s?113:111,b=1&s,G=t-O(M,10)|0;A:{r:{a:{n:{o:{c:{u:{l:if(u[0|f])f=0;else{i:{if(8&s){if(e[l+288>>2]=t,cA(m=l+452|0,91198,l+288|0),f=TA(A,m,l+304|0)){m=0;break l}e[l+272>>2]=t,cA(m=l+452|0,91314,l+272|0),f=TA(A,m,l+304|0),m=0}else{if(!b)break i;if(I=DA(l+432|0,133104),4&s){if(e[l+260>>2]=z,e[l+256>>2]=t,cA(m=l+452|0,91324,l+256|0),f=TA(A,m,l+304|0),u[133116]&&f)break u;if(m=f,f)break l}e[l+244>>2]=z,e[l+240>>2]=t,cA(m=l+452|0,91384,l+240|0),m=f=TA(A,m,l+304|0)}if(f)break l}i:{if(c){if(!(1&d[133096]))break i;e[l+208>>2]=t,cA(f=l+452|0,91498,l+208|0),f=TA(A,f,l+304|0)}else I=e[A+108>>2],e[l+224>>2]=t,cA(f=l+452|0,(0|r)>=2?91700:(262144&I)>>>18|0?91534:91700,l+224|0),f=TA(A,f,l+304|0);if(f)break l}!b|!(32&u[A+109|0])?(e[l+192>>2]=t,cA(f=l+452|0,91766,l+192|0),f=TA(A,f,l+304|0)):f=0}if(!(16&s)|(0|t)>9)break o;f=m;break c}if(DA(I,133116),!(16&s)|(0|t)>9)break n}TA(A,88875,l+368|0);break r}if(!f)break a;f=m}d[l+368|0]=0;break r}a:if(b&&(e[l+180>>2]=z,e[l+176>>2]=M,cA(f=l+452|0,91846,l+176|0),TA(A,f,l+368|0))){if(m=1,!G|!(16&u[A+109|0]))break a;Jr(l+368|0,133104)}else m||(e[l+160>>2]=M,cA(m=l+452|0,512&s?91936:92016,l+160|0),TA(A,m,l+368|0),m=0);if(f=G,u[l+368|0]||(f=G,16&u[A+106|0]&&(e[l+144>>2]=254&M,cA(f=l+452|0,92016,l+144|0),TA(A,f,l+368|0),f=(0|t)%20|0)),d[l+304|0]=0,M=f,(0|f)<=0)f=m;else{if(c&&(f=e[33273],u[0|f])){DA(l+304|0,f),d[l+432|0]=0,I=b;break A}if(I=0,8&s&&(e[l+128>>2]=M,cA(s=l+452|0,91314,l+128|0),I=TA(A,s,l+304|0)),!b|16&u[A+104|0]||(e[l+116>>2]=z,e[l+112>>2]=M,cA(s=l+452|0,91384,l+112|0),m=(I=TA(A,s,l+304|0))?1:m),f=m,!I){a:{if(!c|!(1&e[33274])){if(!(16&u[A+104|0])&&c)break a;m=e[A+108>>2],e[l+96>>2]=M,cA(s=l+452|0,(0|r)>=2?91700:(262144&m)>>>18|0?91534:91700,l+96|0),r=TA(A,s,l+304|0)}else e[l+80>>2]=M,cA(r=l+452|0,91498,l+80|0),r=TA(A,r,l+304|0);if(r)break r}e[l+64>>2]=M,cA(r=l+452|0,91766,l- -64|0),TA(A,r,l+304|0)}}}I=b,u[l+432|0]|f|!b||((0|t)<20|(16&u[A+104|0]?0:G)||(TA(A,92162,l+432|0),I=1,!u[l+432|0]))&&(TA(A,92205,l+432|0),I=1)}if(!(!(r=d[l+304|0])|!(48&(t=e[A+104>>2]))|!u[l+368|0])){if(TA(A,90824,l+292|0),!I|!(8&u[A+109|0])||(d[l+292|0]=0),16&u[A+104|0]){e[l+28>>2]=l+432,e[l+24>>2]=l+368,e[l+20>>2]=l+292,e[l+16>>2]=l+304,cA(o,91059,l+16|0),s=1;break e}e[l+12>>2]=l+432,e[l+8>>2]=l+304,e[l+4>>2]=l+292,e[l>>2]=l+368,cA(o,91059,l),s=1;break e}512&t&&(!r|(0|(t=BA(l+368|0)-1|0))<0||(f=u[e[144464+(d[0|(t=t+(l+368|0)|0)]<<2)>>2]+11|0]!=2,(0|(s=u[e[144464+(r<<2)>>2]+11|0]))==1&&(s=u[e[144464+(d[l+305|0]<<2)>>2]+11|0]),f|(255&s)!=2||(d[0|t]=0))),!(8&u[A+110|0])|!u[l+432|0]?(e[l+56>>2]=l+432,e[l+52>>2]=l+304,e[l+48>>2]=l+368,cA(o,92282,l+48|0)):(e[l+36>>2]=l+304,e[l+32>>2]=l+368,(0|(t=cA(o,90368,l+32|0)))>0&&(t=u[e[144464+(u[(r=t-1|0)+o|0]<<2)>>2]+11|0]==2?r:t),DA(t+o|0,l+432|0))}else DA(o,f);s=0}e:if(268435456&(A=e[A+104>>2])){if((0|BA(o))<=0)break e;for(t=0,A=0;u[0|(r=A+o|0)]==6&&(t&&(d[0|r]=5),t=1),A=A+1|0,(0|BA(o))>(0|A););}else if(256&A&&(t=0,!((0|(A=(b=BA(o))-1|0))<0))){if(A)for(G=-2&b,f=0;u[0|(m=A+o|0)]==6?(r=1,t&&(d[0|m]=5)):r=t,u[0|(m=m-1|0)]==6?(t=1,r&&(d[0|m]=5)):t=r,A=A-2|0,(0|G)!=(0|(f=f+2|0)););1&b&&(!t|u[0|(A=A+o|0)]!=6||(d[0|A]=5))}return H=l+464|0,s}function WA(A,t,r,s){var o,l,c=0,f=0,m=0,I=0,b=0,M=0,G=0;if(H=o=H-352|0,d[o+304|0]=0,d[o+224|0]=0,d[o+64|0]=0,m=e[e[47192]+292>>2],G=zA(o+348|0,t),(1048320&(c=e[o+348>>2]))==57344&&(c&=255,e[o+348>>2]=c),2&s&&Es(c)&&TA(A,85437,o+304|0),c=hn(e[o+348>>2],A),e[o+348>>2]=c,M=1&s,wA(A,c,d[0|(l=t+G|0)],o+224|0,M),!(t=u[o+224|0])){e:if((t=Xa(e[o+348>>2]))&&(e[o+348>>2]=16383&t,4&s)){A:switch(1073741823&(t>>=14)){case 0:case 3:break e;default:break A}TA(A,t=e[131232+(t<<2)>>2],o+304|0),u[o+304|0]||(d[o+306|0]=Wn(84744),b=t,t=o+304|3,TA(e[47194],b,t),u[o+307|0]&&(k[o+304>>1]=5385,t=BA(t)+(o+304|0)|0,d[t+5|0]=0,d[t+4|0]=m,d[t+3|0]=21))}wA(A,e[o+348>>2],d[0|l],o+224|0,M),t=u[o+224|0]}e:{A:{if(t&=255){if((0|t)!=21)break A;DA(r,o+224|0),G=0;break e}if(t=1632,!((0|(c=e[o+348>>2]))<1632)){for(I=103360;;){if((0|c)>=(t+10|0)){if(!(t=e[(I=I+4|0)>>2]))break A;if((0|t)<=(0|c))continue;break A}break}(0|(t=48+(c-t|0)|0))<=0||wA(A,t,0,o+224|0,M)}}A:{r:{a:{n:{if(t=Aa(e[o+348>>2])){if(c=e[t+4>>2],!t|1&(I=e[t+16>>2])||(f=e[47192],e[f+600>>2]==(0|c)|e[f+188>>2]==(0|c)|e[f+184>>2]==(0|c)||(d[o+144|0]=0,TA(f,e[t>>2],o- -64|0)?(0|(f=e[47192]))!=(0|A)&&(m=e[A+292>>2],DA(o+144|0,o- -64|0),d[o+66|0]=e[f+292>>2]):(d[o+66|0]=Wn(84744),TA(e[47194],e[t>>2],o+144|0)),u[o+144|0]&&(k[o+64>>1]=5385,DA(3|(f=o- -64|0),b=o+144|0),f=BA(b)+f|0,d[f+5|0]=0,d[f+4|0]=m,d[f+3|0]=21))),u[o+224|0])break A;if(!c||(m=e[47192],e[m+188>>2]!=(0|c)))break n;t=e[m+192>>2];break r}if(u[o+224|0])break A;I=0,c=0;break a}if((t=e[t+12>>2])&&!(2&I))break r}t=25966}if((e[A+212>>2]==(0|t)&(0|t)!=27503||(d[o+226|0]=Wn(J(o+47|0,t)),(t=e[47194])&&((0|(m=e[o+348>>2]))>55215||(0|(f=m-44032|0))<0?wA(t,m,d[0|l],o+224|3,M):(d[o+52|0]=32,t=b=o+53|0,m-50500>>>0>=588&&(t=Ar(4352+((f>>>0)/588|0)|0,b)+b|0),Ar(4449+(((m=(f>>>0)/28|0)>>>0)%21|0)|0,t),Ar(4519+(f-O(m,28)|0)|0,t+3|0),d[t+6|0]=32,d[t+7|0]=0,d[o+227|0]=0,t=o+224|3,At(e[47194],b,t,77,0,0,0),Zt(e[47194],t,0,-1,0)),t=o+224|3,u[o+227|0]==21&&(d[o+226|0]=Wn(o+224|4),wA(e[47194],e[o+348>>2],d[0|l],t,M)),rs(e[e[32972]+60>>2]),u[o+227|0]&&(k[o+224>>1]=5385,t=BA(t)+(o+224|0)|0,d[t+3|0]=21,M=e[A+292>>2],d[t+5|0]=0,d[t+4|0]=M)),!u[o+224|0]))&&(16&I||(Xe(e[o+348>>2])&&TA(e[47192],85683,o+224|0),u[o+224|0]||(gr(e[o+348>>2])||TA(e[47192],85778,o+224|0),u[o+224|0]||Gt(85992,o+224|0,0))),!(8&I)||4&s)){if(t=e[o+348>>2],(0|c)!=10240?(e[o+32>>2]=t,cA(o+52|0,86013,o+32|0)):(c=o+52|0,1&t&&(d[o+52|0]=49,c=o+53|0),2&t&&(d[0|c]=50,c=c+1|0),4&t&&(d[0|c]=51,c=c+1|0,t=e[o+348>>2]),8&t&&(d[0|c]=52,c=c+1|0,t=e[o+348>>2]),16&t&&(d[0|c]=53,c=c+1|0,t=e[o+348>>2]),32&t&&(d[0|c]=54,c=c+1|0,t=e[o+348>>2]),64&t&&(d[0|c]=55,c=c+1|0,t=e[o+348>>2]),128&t&&(d[0|c]=56,c=c+1|0),d[0|c]=0),t=o+224|0,I=u[o+52|0])for(c=o+52|0;t=BA(t)+t|0,d[0|t]=23,t=t+1|0,wA(e[47192],I<<24>>24,0,t,1),(s=u[0|t])&&(0|s)!=21||(0|(s=d[0|c]))<97||Gt(e[130860+((255&s)<<2)>>2],t,0),I=u[0|(c=c+1|0)];);t=BA(t)+t|0,d[0|t]=9,d[t+1|0]=0}}t=BA(r),2&u[A+144|0]?(e[o+16>>2]=255,e[o+28>>2]=o+304,e[o+24>>2]=o+224,e[o+20>>2]=o- -64,cA(o+144|0,86210,o+16|0)):(e[o>>2]=255,e[o+12>>2]=o+224,e[o+8>>2]=o+304,e[o+4>>2]=o- -64,cA(o+144|0,86210,o)),BA(o+144|0)+t>>>0>199||DA(t+r|0,o+144|0)}return H=o+352|0,G}function LA(A,t,r,s,o,l,c){var f,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0,dA=0,CA=0,PA=0,OA=0,tt=0;H=f=H-528|0,te=c?e[c>>2]:0,He=e[o+4>>2];e:{A:{if(e[A+220>>2]>0){Rt(I=f+352|0,t,160),H=z=H-176|0,Y=1-(W=e[A+220>>2])|0,X=e[A+224>>2],oe=e[A+216>>2],M=I;r:{a:{for(;;){if(pe=zA(z+172|0,M),m=e[z+172>>2]){if((0|m)<(0|W)|(0|m)>(0|oe))break a;if(X){if((0|(m=d[X+(m-W|0)|0]))<=0)break a}else m=m+Y|0;if(M=M+pe|0,d[G+z|0]=m,m=160,(0|(G=G+1|0))!=160)continue}else m=G;break}if(X=0,d[m+z|0]=0,Y=d[0|z],e[z+172>>2]=Y,Y){for(Je=2+(oe-W|0)|0,W=m=z;;){oe=m+1|0;n:{if((pe=e[A+8180>>2])&&(G=0,!((0|(M=k[pe>>1]))>(0|(Ge=(d[0|oe]<<8)+Y|0)))))for(;;){if((0|M)==(0|Ge)){Y=G+Je|0,e[z+172>>2]=Y,m=m+2|0;break n}if(!((0|Ge)>=(0|(M=k[pe+((G=G+1|0)<<1)>>1]))))break}m=oe}if(Ie=63&Y|Ie<<6,(0|(G=X+6|0))<8?X=G:(X=X-2|0,d[0|W]=Ie>>X,W=W+1|0),Y=d[0|m],e[z+172>>2]=Y,!Y)break}(0|X)<=0||(d[0|W]=Ie<<8-X,W=W+1|0)}else W=z;d[0|W]=0,SA(I,z,m=W-z|0),W=64|m;break r}W=BA(I)}H=z+176|0,z=I}else W=BA(t),z=t;if(I=u[0|z]){for(m=0,G=z;b=1023&(b=(b<<3)+I|0)^b>>>8,m=m+1|0,I=u[0|(G=G+1|0)];);m=m+b&1023}else m=0;if(b=e[692+((m<<2)+A|0)>>2]){if(m=u[0|b])break A;m=0;break e}if(m=0,!o)break e;e[o>>2]=0;break e}for(pe=1073741824&He,Ge=2048&l,He=512&te,Je=65536&te,dA=1&te,CA=2&te,te=8&l,PA=1024&l,oe=4&l,OA=63&W,tt=A+8233|0;;){l=(255&m)+b|0;A:{r:if((127&(m=u[b+1|0]))==(0|W)&&!Zr(z,b+2|0,OA)){b=2+((63&m)+b|0)|0;a:{if(m<<24>>24<0)X=0,d[0|s]=0;else{if((0|(X=BA(b)))>=160)break a;DA(s,b),b=1+(b+X|0)|0}if(I=0,l>>>0<=b>>>0)m=r,M=0;else{G=0,M=0;n:{for(;;){b=(m=b)+1|0;o:if((m=u[0|m])>>>0>=100){if(Y=e[A+320>>2],m>>>0>=132){G|=Y>>>m-132&1;break o}G|=!(Y>>>m-100&1)}else{if(m>>>0>=81){Y=m-80|0,Ie=l-b|0;c:if(c)for(m=0;;){if(Oe=O(m,12)+c|0,!u[Oe+10|0])break c;if(G=!!(12&u[Oe+1|0])|G,Oe=(0|m)!=(0|Y),m=m+1|0,!Oe)break}if(qA(r,b,Ie)|1&G)break r;e[33264]=Y,m=r+Ie|0,M|=128,b=l;break n}m>>>0>=65?(M=15&m|-16&M,M=12&~m?M:512|M):m>>>0>=32?I|=1<>>0>b>>>0))break}if(m=r,1&G)break A}if(65536&I&&!oe||PA&&49152&I)break A}if(oe&&(16384&I||!te&&32768&I)||(CA?0:512&I)|(dA?0:1024&I)|(Je?0:33554432&M)||!(!(131072&I)|$[e[47192]+8204>>2]<=m>>>0|pe)|(He?0:262144&I)|(8&u[e[47192]+8242|0]?0:8192&I)||16&I&&(!e[A+8184>>2]&(!te|!e[A+8192>>2])||!(!te|e[A+212>>2]!=25966)&&2097152&e[A+8232>>2])||(e[A+8188>>2]?0:64&I)|(!e[A+8196>>2]|Ge?32&I:0)||!(!(65536&M)|e[A+212>>2]!=26741|128&u[0|tt])|(e[47192]!=(0|A)?524288&I:0))break A;n:{o:{c:{if(!o){if(!X)break c;break n}if(e[o+4>>2]=I,e[o>>2]=1073741824|M,X)break o}if(m=0,!(8&u[188788]))break e;Gn(o,A=f+272|0),e[f>>2]=t,e[f+4>>2]=A,rr(e[47195],89330,f);break e}e[o>>2]=-1073741824|M}if(8&u[188788]&&(dr(s,f- -64|0),u[e[47192]+172|0]==(M>>>29&1)&&(!c|!(128&M)?(e[f+48>>2]=t,rr(e[47195],89426,f+48|0)):(SA(A=f+352|0,s=r,r=m-r|0),d[351+(r+f|0)|0]=0,e[f+32>>2]=t,e[f+36>>2]=A,rr(e[47195],89397,f+32|0)),Gn(o,A=f+272|0),t=e[47195],e[f+16>>2]=f- -64,e[f+20>>2]=A,rr(t,89534,f+16|0))),u[zA(f- -64|0,z)+z|0]|!o||zt(e[f+64>>2]))break e;e[o>>2]=134217728|e[o>>2];break e}de(89236,86634,2467,94846),R()}b=l}if(!(m=u[0|b]))break}m=0}return H=f+528|0,m}function St(A,t,r,s,o){var l,c=0,f=0;H=l=H-304|0,d[l+278|0]=0;e:{if((0|t)>0&&(1&s&&(2&s&&(e[l+164>>2]=r,e[l+160>>2]=t,cA(c=l+290|0,89701,l+160|0),c=TA(A,c,l+224|0))||1&d[133096]&&(e[l+148>>2]=r,e[l+144>>2]=t,cA(c=l+290|0,89757,l+144|0),c=TA(A,c,l+224|0))||(e[l+132>>2]=r,e[l+128>>2]=t,cA(c=l+290|0,89894,l+128|0),c=TA(A,c,l+224|0)))||(e[l+116>>2]=r,e[l+112>>2]=t,cA(c=l+290|0,89974,l+112|0),c=TA(A,c,l+224|0))))break e;if((0|(f=(0|t)%100|0))>=20&&TA(A,90022,l+278|0),1&s){if(2&s){c=f-11|0;A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(c>>>0<9)break r;if(s=90418,(0|(c=(0|t)%10|0))==1)break A;if(c-2>>>0>=3)break r;s=90453;break A;case 1:if(t-2>>>0>=3)break r;s=90453;break A;case 2:if(c>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;s=90453;break A;case 3:if(s=90508,c>>>0<9)break A;s=(s=(0|t)%10|0)?(0|s)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(c>>>0<9)){if(s=90537,(0|(c=(0|t)%10|0))==1)break A;if(!(c-2>>>0>=3)){s=90453;break A}}}s=90586}if(e[l+100>>2]=r,e[l+96>>2]=s,cA(s=l+290|0,90058,l+96|0),c=0,TA(A,s,l+224|0))break e}if(s=f-11|0,1&d[133096]){A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(s>>>0<9)break r;if(c=90418,(0|(f=(0|t)%10|0))==1)break A;if(f-2>>>0>=3)break r;c=90453;break A;case 1:if(t-2>>>0>=3)break r;c=90453;break A;case 2:if(s>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,s>>>0<9)break A;c=(c=(0|t)%10|0)?(0|c)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(s>>>0<9)){if(c=90537,(0|(f=(0|t)%10|0))==1)break A;if(!(f-2>>>0>=3)){c=90453;break A}}}c=90586}if(e[l+84>>2]=r,e[l+80>>2]=c,cA(f=l+290|0,90110,l+80|0),c=0,TA(A,f,l+224|0))break e}A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(s>>>0<9)break r;if(c=90418,(0|(f=(0|t)%10|0))==1)break A;if(f-2>>>0>=3)break r;c=90453;break A;case 1:if(t-2>>>0>=3)break r;c=90453;break A;case 2:if(s>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,s>>>0<9)break A;c=(c=(0|t)%10|0)?(0|c)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(s>>>0<9)){if(c=90537,(0|(f=(0|t)%10|0))==1)break A;if(!(f-2>>>0>=3)){c=90453;break A}}}c=90586}if(e[l+68>>2]=r,e[l+64>>2]=c,cA(f=l+290|0,90139,l- -64|0),c=0,TA(A,f,l+224|0))break e}else s=f-11|0;A:{r:{a:switch((448&e[e[47192]+108>>2])-64>>>6|0){case 0:if(s>>>0<9)break r;if(c=90418,(0|(s=(0|t)%10|0))==1)break A;if(s-2>>>0>=3)break r;c=90453;break A;case 1:if(t-2>>>0>=3)break r;c=90453;break A;case 2:if(s>>>0<9|((0|t)%10|0)-2>>>0>=3)break r;c=90453;break A;case 3:if(c=90508,s>>>0<9)break A;c=(s=(0|t)%10|0)?(0|s)==1?90453:90586:90508;break A;case 4:break a;default:break r}if(!(s>>>0<9)){if(c=90537,(0|(s=(0|t)%10|0))==1)break A;if(!(s-2>>>0>=3)){c=90453;break A}}}c=90586}e[l+52>>2]=r,e[l+48>>2]=c,cA(s=l+290|0,90218,l+48|0),c=0,TA(A,s,l+224|0)||((0|r)<4||(e[l+32>>2]=r-1,cA(s=l+290|0,89026,l+32|0),TA(A,s,l+176|0)||(TA(A,90273,l+224|0),e[33275]=3)),u[l+224|0]||(e[l+16>>2]=t,cA(s=l+290|0,90303,l+16|0),(c=TA(A,s,l+224|0))||TA(A,90347,l+224|0),e[33275]=2))}return e[l+4>>2]=l+224,e[l>>2]=l+278,cA(o,90368,l),H=l+304|0,!((0|t)!=1|(0|r)!=1)&&(t=1,32&u[A+106|0])||(t=c),t}function Vt(A,t,r,s){var o,l=0,c=0,f=0,m=0,I=0,b=0,M=0;H=o=H+-64|0,k[o+48>>1]=0,e[o+40>>2]=0,e[o+44>>2]=0,e[o+32>>2]=0,e[o+36>>2]=0,e[o+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+8>>2]=0,e[o+12>>2]=0,e[o>>2]=0,e[o+4>>2]=0,l=t;e:{for(;;){A:{r:{if((0|(c=u[0|l]))!=69){if((0|c)!=32)break r;if(s&&(d[SA(c=s,t,s=(0|(s=l-t|0))>=159?159:s)+s|0]=0),s=63&r)break A;break e}d[0|l]=101}l=l+1|0;continue}break}if(1&r){A:if((l=l-1|0)>>>0>>0)c=s;else for(c=s;;){if((192&u[0|l])!=128)break A;if(c=c+1|0,!((l=l-1|0)>>>0>=t>>>0))break}f=s-1|0}else f=s,c=s;if((0|s)!=1)for(;;){s=f;A:if(!((l=l-1|0)>>>0>>0))for(;;){if((192&u[0|l])!=128)break A;if(c=c+1|0,!((l=l-1|0)>>>0>=t>>>0))break}A:if(!((l=l-1|0)>>>0>>0))for(;;){if((192&u[0|l])!=128)break A;if(c=c+1|0,!((l=l-1|0)>>>0>=t>>>0))break}if(f=s-2|0,!((0|s)>2))break}if((0|c)<=0)f=0;else{if(m=3&(f=(s=(t=c-1|0)>>>0>=48?48:t)+1|0),t=0,c=0,s>>>0>=3)for(M=-4&f,s=0;I=l+c|0,d[c+o|0]=u[0|I],d[0|I]=32,I=(b=1|c)+l|0,d[o+b|0]=u[0|I],d[0|I]=32,I=(b=2|c)+l|0,d[o+b|0]=u[0|I],d[0|I]=32,I=(b=3|c)+l|0,d[o+b|0]=u[0|I],d[0|I]=32,c=c+4|0,(0|M)!=(0|(s=s+4|0)););if(m)for(;s=l+c|0,d[c+o|0]=u[0|s],d[0|s]=32,c=c+1|0,(0|m)!=(0|(t=t+1|0)););}}if(d[o+f|0]=0,m=65520&r,!(512&r)|u[0|(s=l-1|0)]!=105||(d[0|s]=121),c=4|m,256&r){e:{A:{r:{if((0|(t=e[A+212>>2]))!=25966){if((0|t)!=28268)break r;if(d[0|s]<0||128&(t=d[0|(f=l-2|0)]))break e;if(m=e[A+632>>2])t=!!(0|Mt(m,t));else{if((0|(m=e[A+600>>2]))>0&&(t=t-m|0)-1>>>0>254)break e;t=128&u[344+(A+t|0)|0]}if(!t)break e;if(t=d[0|s],m=e[A+612>>2])t=!!(0|Mt(m,t));else{a:{if((0|(m=e[A+600>>2]))>0){if((t=t-m|0)-1>>>0<255)break a;break e}if((0|t)<0)break e}t=4&u[344+(A+t|0)|0]}if(!t)break e;t=d[l-3|0];a:{if(m=e[A+632>>2])t=!!(0|Mt(m,t));else{n:{if((0|(m=e[A+600>>2]))>0){if((t=t-m|0)-1>>>0<255)break n;break a}if((0|t)<0)break a}t=128&u[344+(A+t|0)|0]}if(t)break e}d[0|l]=u[0|s],d[0|s]=u[0|f],d[l+1|0]=32;break e}if(f=d[l-2|0],t=e[A+632>>2])t=!!(0|Mt(t,f));else{a:{if((0|(t=e[A+600>>2]))>0){if((f=f-t|0)-1>>>0<255)break a;break A}if((0|f)<0)break A}t=128&u[344+(A+f|0)|0]}if(!t)break A;if(f=d[0|s],t=e[A+608>>2])t=!!(0|Mt(t,f));else{if((0|(t=e[A+600>>2]))>0){if((f=f-t|0)-1>>>0>=255)break A}else if((0|f)<0)break A;t=2&u[344+(A+f|0)|0]}if(!t)break A;c=Zr(87771,l-3|0,3)?20|m:c;break e}c=e[A+204>>2]?20|m:c;break e}(u[0|s]==99||(f=u[(t=l-2|0)+1|0]<<8,(u[0|t]|f)==29554|(f|u[0|t])==29289||(u[0|(t=l-2|0)]|u[t+1|0]<<8)==29301||!Zr(88115,l-3|0,3)||(u[0|(t=l-2|0)]|u[t+1|0]<<8)==29550|u[0|s]==117||!Zr(88384,l-5|0,5)||(u[0|(t=l-4|0)]|u[t+1|0]<<8|u[t+2|0]<<16|u[t+3|0]<<24)==1735287154||(u[0|t]|u[t+1|0]<<8|u[t+2|0]<<16|u[t+3|0]<<24)==1735549292))&&(c=20|m)}16&c&&(Ar(e[A+204>>2],l),8&u[188788]&&pi(88683,6,e[47195]))}return e[A+8184>>2]|!(2048&r)||(e[A+8184>>2]=1),y[o>>1]!=115&&Zr(o,88850,3)||(c|=8),H=o- -64|0,u[0|o]==39?65531&c:c}function Ot(A,t,r,s,o,l,c,f,m){var I,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0;H=I=H-112|0,b=2147483647&m;e:{if(G=!(t|r),(s|(M=2147483647&o)?M-2147418112>>>0<2147549184:G)||!(!f&(0|(W=b-2147418112|0))==-2147418112?l|c:(0|W)==-2147418112&!!(0|f)|W>>>0>2147549184)){if(!(!s&(0|M)==2147418112?G:M>>>0<2147418112)){f=s,m=32768|o,l=t,c=r;break e}if(!(!f&(0|b)==2147418112?!(l|c):b>>>0<2147418112)){m|=32768;break e}if(!(t|s|2147418112^M|r)){z=s,f=(s=!(t^l|s^f|r^c|o^m^-2147483648))?0:z,m=s?2147450880:o,l=s?0:t,c=s?0:r;break e}if(!(l|f|2147418112^b|c))break e;if(!(t|s|r|M)){if(l|f|c|b)break e;l&=t,c&=r,f&=s,m&=o;break e}if(!(l|f|c|b)){l=t,c=r,f=s,m=o;break e}}M=(G=te=(z=(0|b)==(0|M))&(0|s)==(0|f)?(0|r)==(0|c)&t>>>0>>0|r>>>0>>0:z&s>>>0>>0|b>>>0>M>>>0)?l:t,W=G?c:r,oe=z=G?m:o,G=G?f:s,X=65535&z,s=te?s:f,pe=o=te?o:m,z=o>>>16&32767,(Y=oe>>>16&32767)||(m=o=!(G|X),b=o?M:G,f=o<<=6,Pt(I+96|0,M,W,G,X,(o=o+((0|(m=be(m?W:X)))==32?be(b)+32|0:m)|0)-15|0),G=e[I+104>>2],X=e[I+108>>2],W=e[I+100>>2],Y=16-o|0,M=e[I+96>>2]),l=te?t:l,c=te?r:c,f=s,m=65535&pe,z||(o=t=!(f|m),b=t?l:f,r=t<<=6,Pt(I+80|0,l,c,f,m,(t=t+((0|(o=be(o?c:m)))==32?be(b)+32|0:o)|0)-15|0),z=16-t|0,f=e[I+88>>2],m=e[I+92>>2],c=e[I+84>>2],l=e[I+80>>2]),r=m<<3|f>>>29,t=f<<3|c>>>29,r|=524288,f=G<<3|W>>>29,m=X<<3|G>>>29,te=oe^pe,o=c<<3|l>>>29,s=l<<3,(0|z)!=(0|Y)&&((l=Y-z|0)>>>0>127?(t=0,r=0,o=0,s=1):(Pt(I- -64|0,s,o,t,r,128-l|0),xr(I+48|0,s,o,t,r,l),t=e[I+56>>2],r=e[I+60>>2],o=e[I+52>>2],s=e[I+48>>2]|!!(e[I+64>>2]|e[I+72>>2]|e[I+68>>2]|e[I+76>>2]))),G=s,b=o,z=f,X=524288|m,o=W<<3|M>>>29,W=M<<3,M=o;A:if((0|te)<0){if(l=0,c=0,f=0,m=0,!(G^W|t^z|b^M|r^X))break e;if(s=W-G|0,o=M-((G>>>0>W>>>0)+b|0)|0,f=(l=z-t|0)-(c=(0|b)==(0|M)&G>>>0>W>>>0|b>>>0>M>>>0)|0,m=t=(X-((t>>>0>z>>>0)+r|0)|0)-(l>>>0>>0)|0,t>>>0>524287)break A;l=t=!(f|m),c=t?s:f,r=t<<=6,Pt(I+32|0,s,o,f,m,t=(t=t+((0|(l=be(l?o:m)))==32?be(c)+32|0:l)|0)-12|0),Y=Y-t|0,f=e[I+40>>2],m=e[I+44>>2],s=e[I+32>>2],o=e[I+36>>2]}else o=b+M|0,l=(0|b)==(0|(o=(s=G+W|0)>>>0>>0?o+1|0:o))&s>>>0>>0|o>>>0>>0,b=r+X|0,b=(t=t+z|0)>>>0>>0?b+1|0:b,1048576&(m=(f=t+l|0)>>>0>>0?b+1|0:b)&&(s=1&G|(1&o)<<31|s>>>1,o=f<<31|o>>>1,Y=Y+1|0,f=(1&m)<<31|f>>>1,m=m>>>1|0);if(r=0,M=-2147483648&oe,(0|Y)>=32767)f=r,m=2147418112|M,l=0,c=0;else if(z=0,(0|Y)>0?z=Y:(Pt(I+16|0,s,o,f,m,Y+127|0),xr(I,s,o,f,m,1-Y|0),s=e[I>>2]|!!(e[I+16>>2]|e[I+24>>2]|e[I+20>>2]|e[I+28>>2]),o=e[I+4>>2],f=e[I+8>>2],m=e[I+12>>2]),W=7&s,s=(0|(t=f<<29|o>>>3))==(0|(c=(s=(7&o)<<29|s>>>3)>>>0>(l=(W>>>0>4)+s|0)>>>0?t+1|0:t))&s>>>0>l>>>0|t>>>0>c>>>0,t=r|(7&m)<<29|f>>>3,m=M|m>>>3&65535|z<<16,m=t>>>0>(f=s+t|0)>>>0?m+1|0:m,(0|W)!=4){if(!W)break e}else b=c+(t=0)|0,m=(t=(0|t)==(0|(c=(s=l)>>>0>(l=l+(r=1&l)|0)>>>0?b+1|0:b))&r>>>0>l>>>0|t>>>0>c>>>0)>>>0>(f=t+f|0)>>>0?m+1|0:m}e[A>>2]=l,e[A+4>>2]=c,e[A+8>>2]=f,e[A+12>>2]=m,H=I+112|0}function FA(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0;e:if(A|=0){l=(s=A-8|0)+(A=-8&(t=e[A-4>>2]))|0;A:if(!(1&t)){if(!(3&t)||(s=s-(t=e[s>>2])|0)>>>0<$[57156])break e;if(A=A+t|0,e[57157]==(0|s)){if(!(3&~(t=e[l+4>>2])))return e[57154]=A,e[l+4>>2]=-2&t,e[s+4>>2]=1|A,void(e[A+s>>2]=A)}else{if(t>>>0<=255){if(o=e[s+8>>2],t=t>>>3|0,(0|(r=e[s+12>>2]))==(0|o)){e[57152]=e[57152]&ts(-2,t);break A}e[o+12>>2]=r,e[r+8>>2]=o;break A}if(f=e[s+24>>2],(0|s)==(0|(t=e[s+12>>2])))if((r=e[(o=s+20|0)>>2])||(r=e[(o=s+16|0)>>2])){for(;c=o,(r=e[(o=(t=r)+20|0)>>2])||(o=t+16|0,r=e[t+16>>2]););e[c>>2]=0}else t=0;else r=e[s+8>>2],e[r+12>>2]=t,e[t+8>>2]=r;if(!f)break A;o=e[s+28>>2];r:{if(e[(r=228912+(o<<2)|0)>>2]==(0|s)){if(e[r>>2]=t,t)break r;e[57153]=e[57153]&ts(-2,o);break A}if(e[f+(e[f+16>>2]==(0|s)?16:20)>>2]=t,!t)break A}if(e[t+24>>2]=f,(r=e[s+16>>2])&&(e[t+16>>2]=r,e[r+24>>2]=t),!(r=e[s+20>>2]))break A;e[t+20>>2]=r,e[r+24>>2]=t}}if(!(s>>>0>=l>>>0)&&1&(t=e[l+4>>2])){A:{if(!(2&t)){if(e[57158]==(0|l)){if(e[57158]=s,A=e[57155]+A|0,e[57155]=A,e[s+4>>2]=1|A,e[57157]!=(0|s))break e;return e[57154]=0,void(e[57157]=0)}if(e[57157]==(0|l))return e[57157]=s,A=e[57154]+A|0,e[57154]=A,e[s+4>>2]=1|A,void(e[A+s>>2]=A);A=(-8&t)+A|0;r:if(t>>>0<=255){if(o=e[l+8>>2],t=t>>>3|0,(0|(r=e[l+12>>2]))==(0|o)){e[57152]=e[57152]&ts(-2,t);break r}e[o+12>>2]=r,e[r+8>>2]=o}else{if(f=e[l+24>>2],(0|l)==(0|(t=e[l+12>>2])))if((r=e[(o=l+20|0)>>2])||(r=e[(o=l+16|0)>>2])){for(;c=o,(r=e[(o=(t=r)+20|0)>>2])||(o=t+16|0,r=e[t+16>>2]););e[c>>2]=0}else t=0;else r=e[l+8>>2],e[r+12>>2]=t,e[t+8>>2]=r;if(f){o=e[l+28>>2];a:{if(e[(r=228912+(o<<2)|0)>>2]==(0|l)){if(e[r>>2]=t,t)break a;e[57153]=e[57153]&ts(-2,o);break r}if(e[f+(e[f+16>>2]==(0|l)?16:20)>>2]=t,!t)break r}e[t+24>>2]=f,(r=e[l+16>>2])&&(e[t+16>>2]=r,e[r+24>>2]=t),(r=e[l+20>>2])&&(e[t+20>>2]=r,e[r+24>>2]=t)}}if(e[s+4>>2]=1|A,e[A+s>>2]=A,e[57157]!=(0|s))break A;return void(e[57154]=A)}e[l+4>>2]=-2&t,e[s+4>>2]=1|A,e[A+s>>2]=A}if(A>>>0<=255)return t=228648+(-8&A)|0,(r=e[57152])&(A=1<<(A>>>3))?A=e[t+8>>2]:(e[57152]=A|r,A=t),e[t+8>>2]=s,e[A+12>>2]=s,e[s+12>>2]=t,void(e[s+8>>2]=A);o=31,A>>>0<=16777215&&(o=62+((A>>>38-(t=be(A>>>8|0))&1)-(t<<1)|0)|0),e[s+28>>2]=o,e[s+16>>2]=0,e[s+20>>2]=0,c=228912+(o<<2)|0;A:{r:{if((r=e[57153])&(t=1<>>1|0):0),t=e[c>>2];;){if(r=t,(-8&e[t+4>>2])==(0|A))break r;if(t=o>>>29|0,o<<=1,!(t=e[(c=r+(4&t)|0)+16>>2]))break}e[c+16>>2]=s,e[s+24>>2]=r}else e[57153]=t|r,e[c>>2]=s,e[s+24>>2]=c;e[s+12>>2]=s,e[s+8>>2]=s;break A}A=e[r+8>>2],e[A+12>>2]=s,e[r+8>>2]=s,e[s+24>>2]=0,e[s+12>>2]=r,e[s+8>>2]=A}A=e[57160]-1|0,e[57160]=A||-1}}}function cr(A,t,r){var s,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0;H=s=H-176|0;e:{if(32&t)z=r-((0|r)>1)|0;else{l=_t(A,93302);A:{r:{a:{if((0|t)!=2){if(l)break a;t=0;break e}if(z=r+1|0,M=(W=O(r,76)+133152|0)+56|0,G=_t(A,89360),c=_t(A,93318),f=_t(A,93426),m=_t(A,93499),l)break r;break A}z=r+1|0,M=(W=O(r,76)+133152|0)+56|0,m=0}for(A=0,I=(0|(o=e[l-4>>2]))!=34?(0|o)==39?o:0:o,Y=O(r,76)+133208|0;;){if(o=A,!(A=e[l>>2]))break A;r:{if(!I){if((0|A)==32|A-9>>>0<5)break A;if((0|A)!=47)break r;break A}if((0|o)!=92&&(0|A)==(0|I))break A}if(l=l+4|0,!((0|(b=Ar(A,b+Y|0)+b|0))<16))break}}I=0,d[b+M|0]=0,b=O(r,76)+133168|0,l=0;A:if(G)for(A=0,M=(0|(o=e[G-4>>2]))!=34?(0|o)==39?o:0:o;;){if(o=A,!(A=e[G>>2]))break A;r:{if(!M){if((0|A)==32|A-9>>>0<5)break A;if((0|A)!=47)break r;break A}if((0|o)!=92&&(0|A)==(0|M))break A}if(G=G+4|0,!((0|(l=Ar(A,l+b|0)+l|0))<36))break}if(d[l+b|0]=0,!(!c|e[c>>2]-48>>>0>=10)){for(;I=(e[c>>2]+O(I,10)|0)-48|0,e[(c=c+4|0)>>2]-48>>>0<10;);(0|I)<=0||(I=I-1|0)}if(o=O(r,76)+133152|0,e[o+4>>2]=I,A=0,l=0,!(!f|e[f>>2]-48>>>0>=10))for(;l=(e[f>>2]+O(l,10)|0)-48|0,e[(f=f+4|0)>>2]-48>>>0<10;);e[o+12>>2]=l,l=O(r,76)+133152|0;A:{r:if(m){for(;r=d[A+93099|0],(o=e[(A<<2)+m>>2])&&(A=A+1|0,(0|r)==(0|o)););a:{n:switch(o-34|0){case 0:case 5:break n;default:break a}if(!r){A=0;break A}}for(A=0;r=d[A+93116|0],(o=e[(A<<2)+m>>2])&&(A=A+1|0,(0|r)==(0|o)););a:{n:switch(o-34|0){case 0:case 5:break n;default:break a}if(!r){A=1;break A}}for(A=0;r=d[A+93197|0],(o=e[(A<<2)+m>>2])&&(A=A+1|0,(0|r)==(0|o)););a:switch(o-34|0){case 0:case 5:break a;default:break r}if(!r){A=2;break A}}A=3}e[l+8>>2]=e[131156+(A<<3)>>2],e[W>>2]=t}if(DA(137776,133168),r=DA(s+96|0,133208),d[s+157|0]=e[33291],d[s+156|0]=e[33290],A=e[33289],e[s+152>>2]=0,d[s+158|0]=A,(0|z)>0)for(c=0;;){if(f=1,t=O(c,76)+133152|0,u[0|(A=t+16|0)]&&$t(0,A)&&(DA(137776,A),f=0,d[0|r]=0,d[s+158|0]=0,k[s+156>>1]=0),u[0|(A=t+56|0)]){m=DA(r,A),o=e[33679];A:if(u[0|(A=o)])for(;;){if(!tr(A=A+1|0,m)){DA(m,o+1|0);break A}if(A=1+(BA(A)+A|0)|0,!u[0|A])break}f&&(d[137776]=0)}if((A=e[t+8>>2])&&(d[s+156|0]=A),(A=e[t+12>>2])&&(d[s+157|0]=A),(A=e[t+4>>2])&&(d[s+158|0]=A),(0|z)==(0|(c=c+1|0)))break}e[s+148>>2]=r,e[s+144>>2]=137776,(A=Tt(s+144|0,s+172|0))?Ls(A,43)||(t=u[s+156|0],!u[134672]|((0|t)!=u[134724]?t:0)||(e[s>>2]=A,e[s+4>>2]=134672,cA(t=s+16|0,93533,s),A=137776,Rt(137776,t,40))):A=92003,t=0,tr(A,134784)&&(DA(134784,A),t=131072)}return H=s+176|0,t}function Gs(A,t){var r,s=0,o=0,l=0,c=0,f=0;r=A+t|0;e:{A:if(!(1&(s=e[A+4>>2]))){if(!(3&s))break e;t=(s=e[A>>2])+t|0;r:{if((0|(A=A-s|0))!=e[57157]){if(s>>>0<=255){if(l=e[A+8>>2],s=s>>>3|0,(0|(o=e[A+12>>2]))!=(0|l))break r;e[57152]=e[57152]&ts(-2,s);break A}if(f=e[A+24>>2],(0|(s=e[A+12>>2]))==(0|A))if((o=e[(l=A+20|0)>>2])||(o=e[(l=A+16|0)>>2])){for(;c=l,(o=e[(l=(s=o)+20|0)>>2])||(l=s+16|0,o=e[s+16>>2]););e[c>>2]=0}else s=0;else o=e[A+8>>2],e[o+12>>2]=s,e[s+8>>2]=o;if(!f)break A;l=e[A+28>>2];a:{if(e[(o=228912+(l<<2)|0)>>2]==(0|A)){if(e[o>>2]=s,s)break a;e[57153]=e[57153]&ts(-2,l);break A}if(e[f+(e[f+16>>2]==(0|A)?16:20)>>2]=s,!s)break A}if(e[s+24>>2]=f,(o=e[A+16>>2])&&(e[s+16>>2]=o,e[o+24>>2]=s),!(o=e[A+20>>2]))break A;e[s+20>>2]=o,e[o+24>>2]=s;break A}if(3&~(s=e[r+4>>2]))break A;return e[57154]=t,e[r+4>>2]=-2&s,e[A+4>>2]=1|t,void(e[r>>2]=t)}e[l+12>>2]=o,e[o+8>>2]=l}A:{if(!(2&(s=e[r+4>>2]))){if(e[57158]==(0|r)){if(e[57158]=A,t=e[57155]+t|0,e[57155]=t,e[A+4>>2]=1|t,e[57157]!=(0|A))break e;return e[57154]=0,void(e[57157]=0)}if(e[57157]==(0|r))return e[57157]=A,t=e[57154]+t|0,e[57154]=t,e[A+4>>2]=1|t,void(e[A+t>>2]=t);t=(-8&s)+t|0;r:if(s>>>0<=255){if(l=e[r+8>>2],s=s>>>3|0,(0|(o=e[r+12>>2]))==(0|l)){e[57152]=e[57152]&ts(-2,s);break r}e[l+12>>2]=o,e[o+8>>2]=l}else{if(f=e[r+24>>2],(0|r)==(0|(s=e[r+12>>2])))if((l=e[(o=r+20|0)>>2])||(l=e[(o=r+16|0)>>2])){for(;c=o,(l=e[(o=(s=l)+20|0)>>2])||(o=s+16|0,l=e[s+16>>2]););e[c>>2]=0}else s=0;else o=e[r+8>>2],e[o+12>>2]=s,e[s+8>>2]=o;if(f){l=e[r+28>>2];a:{if(e[(o=228912+(l<<2)|0)>>2]==(0|r)){if(e[o>>2]=s,s)break a;e[57153]=e[57153]&ts(-2,l);break r}if(e[f+(e[f+16>>2]==(0|r)?16:20)>>2]=s,!s)break r}e[s+24>>2]=f,(o=e[r+16>>2])&&(e[s+16>>2]=o,e[o+24>>2]=s),(o=e[r+20>>2])&&(e[s+20>>2]=o,e[o+24>>2]=s)}}if(e[A+4>>2]=1|t,e[A+t>>2]=t,e[57157]!=(0|A))break A;return void(e[57154]=t)}e[r+4>>2]=-2&s,e[A+4>>2]=1|t,e[A+t>>2]=t}if(t>>>0<=255)return s=228648+(-8&t)|0,(o=e[57152])&(t=1<<(t>>>3))?t=e[s+8>>2]:(e[57152]=t|o,t=s),e[s+8>>2]=A,e[t+12>>2]=A,e[A+12>>2]=s,void(e[A+8>>2]=t);l=31,t>>>0<=16777215&&(l=62+((t>>>38-(s=be(t>>>8|0))&1)-(s<<1)|0)|0),e[A+28>>2]=l,e[A+16>>2]=0,e[A+20>>2]=0,c=228912+(l<<2)|0;A:{if((o=e[57153])&(s=1<>>1|0):0),s=e[c>>2];;){if(o=s,(-8&e[s+4>>2])==(0|t))break A;if(s=l>>>29|0,l<<=1,!(s=e[(c=o+(4&s)|0)+16>>2]))break}e[c+16>>2]=A,e[A+24>>2]=o}else e[57153]=s|o,e[c>>2]=A,e[A+24>>2]=c;return e[A+12>>2]=A,void(e[A+8>>2]=A)}t=e[o+8>>2],e[t+12>>2]=A,e[o+8>>2]=A,e[A+24>>2]=0,e[A+12>>2]=o,e[A+8>>2]=t}}function js(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0;if(!(t=d[88105]))return A;if(A=Ls(A,t)){if(!u[88106])return A;if(u[A+1|0]){if(!u[88107]){o=!!(0|(r=u[A+1|0]));e:if(r&&(0|(t=r|u[0|A]<<8))!=(0|(f=u[88106]|u[88105]<<8)))for(r=A+1|0;;){if(o=!!(0|(s=u[(A=r)+1|0])),!s)break e;if(r=A+1|0,(0|f)==(0|(t=s|t<<8&65280)))break}return o?A:0}if(u[A+2|0]){if(!u[88108]){r=A+2|0,o=!!(0|(t=u[A+2|0]));e:if(t&&(0|(t=u[A+1|0]<<16|u[0|A]<<24|t<<8))!=(0|(f=u[88106]<<16|u[88105]<<24|u[88107]<<8)))for(;;){if(A=r+1|0,o=!!(0|(s=u[r+1|0])),!s)break e;if(r=A,(0|f)==(0|(t=(t|s)<<8)))break}else A=r;return o?A-2|0:0}if(u[A+3|0]){if(!u[88109]){r=A+3|0,o=!!(0|(t=u[A+3|0]));e:if(t&&(0|(t=t|u[A+1|0]<<16|u[0|A]<<24|u[A+2|0]<<8))!=(0|(f=(A=u[88105]|u[88106]<<8|u[88107]<<16|u[88108]<<24)<<24|(65280&A)<<8|A>>>8&65280|A>>>24)))for(;;){if(A=r+1|0,o=!!(0|(s=u[r+1|0])),!s)break e;if(r=A,(0|f)==(0|(t=s|t<<8)))break}else A=r;return o?A-3|0:0}f=A,H=m=H-1056|0,e[(A=m+1048|0)>>2]=0,e[A+4>>2]=0,e[(A=m+1040|0)>>2]=0,e[A+4>>2]=0,e[m+1032>>2]=0,e[m+1036>>2]=0,e[m+1024>>2]=0,e[m+1028>>2]=0;e:{A:{r:{a:{if(t=u[88105]){for(;;){if(!u[l+f|0])break A;if(l=l+1|0,e[((255&t)<<2)+m>>2]=l,e[(A=(m+1024|0)+(t>>>3&28)|0)>>2]=e[A>>2]|1<>>0>1)break a}else I=-1,A=1;c=-1,r=1;break r}for(s=1,t=1;;){a:if((0|(c=u[88105+(t+I|0)|0]))!=(0|(o=u[A+88105|0])))o>>>0>>0?(s=A-I|0,r=A,t=1):(I=r,r=r+1|0,s=1,t=1);else{if((0|t)==(0|s)){r=r+s|0,t=1;break a}t=t+1|0}if(!(l>>>0>(A=r+t|0)>>>0))break}if(r=1,c=-1,l>>>0<=1)A=s;else{for(A=0,o=1,t=1;;){a:if((0|(M=u[88105+(t+c|0)|0]))!=(0|(b=u[r+88105|0])))b>>>0>M>>>0?(o=r-c|0,A=r,t=1):(c=A,A=A+1|0,o=1,t=1);else{if((0|t)==(0|o)){A=A+o|0,t=1;break a}t=t+1|0}if(!(l>>>0>(r=A+t|0)>>>0))break}A=s,r=o}}for(t=A,Zr(88105,(s=(A=c+1>>>0>I+1>>>0)?r:t)+88105|0,M=(b=A?c:I)+1|0)?(s=((A=~b+l|0)>>>0>>0?b:A)+1|0,o=0):o=l-s|0,z=l-1|0,G=63|l,c=0,A=f;;){if(!(f-A>>>0>=l>>>0))if(r=ca(f,0,G)){if(f=r,r-A>>>0>>0)break A}else f=f+G|0;r=u[A+z|0],t=l;r:{if(e[(m+1024|0)+(r>>>3&28)>>2]>>>r&1)if((0|(r=e[(r<<2)+m>>2]))==(0|l)){a:{if(I=u[(r=(t=M)>>>0>c>>>0?t:c)+88105|0])for(;;){if(u[A+r|0]!=(255&I))break a;if(!(I=u[(r=r+1|0)+88105|0]))break}for(;;){if(t>>>0<=c>>>0)break e;if(u[(t=t-1|0)+88105|0]!=u[A+t|0])break}t=s,c=o;break r}t=r-b|0}else t=(r=l-r|0)>>>0>c>>>0?r:c;c=0}A=A+t|0}}A=0}H=m+1056|0,r=A}}}}return r}function Cs(A,t,r,s,o,l){var c,f,m,I,b=0,M=0,G=0;if(H=c=H-560|0,d[c+448|0]=0,d[c+144|0]=0,d[c+120|0]=0,m=34&l,f=t-O(M=(0|t)/100|0,100)|0,1&(I=64&u[A+106|0]?(0|t)>999|l:0)|(0|t)>99){e:{A:{r:{if(!(!m|f)){if(!TA(A,90606,c+304|0))break r;break e}if(f)break A}if(TA(A,90691,c+304|0))break e}TA(A,90725,c+304|0)}b=l,(0|t)<1e3||(b=l,!(8&u[A+105|0])|t-2e3>>>0<4294967196&&(d[c+208|0]=0,St(A,b=(M>>>0)/10|0,s=16384&e[A+108>>2]?0:o+1|0,!((t>>>0)%1e3|0)|m,c+272|0)||XA(A,b,o,e[A+212>>2]==28012?520:(0|s)<4?(e[A+108>>2]>>>s&1)<<3:0,c+208|0),2&u[A+109|0]?(e[c+108>>2]=15,e[c+100>>2]=15,e[c+104>>2]=c+208,e[c+96>>2]=c+272,cA(c+144|0,90761,c+96|0)):(e[c+92>>2]=15,e[c+84>>2]=15,e[c+88>>2]=c+272,e[c+80>>2]=c+208,cA(c+144|0,90761,c+80|0)),s=1,1&(!!(0|(M=M-O(b,10)|0))|I)||(d[c+304|0]=0),b=1|l)),d[c+208|0]=0;e:if(!(~I&(0|M)<=0))if(!(4&u[A+106|0])|!(1&b|u[c+144|0])||TA(A,90824,c+120|0),!m|(16&u[A+109|0]?0:f)||(e[c+64>>2]=M,cA(s=c+548|0,90875,c- -64|0),G=TA(A,s,c+208|0),!(4096&e[A+108>>2])|(0|f)<=0||Jr(c+208|0,133104)),s=1,1&(~I|!!(0|M))){A:{r:{a:{n:{if(!(131072&e[A+108>>2])||1&b|(0|M)!=1){if(f|G||(e[c+48>>2]=M,cA(s=c+548|0,90985,c+48|0),G=TA(A,s,c+208|0)),G||(e[c+32>>2]=M,cA(s=c+548|0,91027,c+32|0),TA(A,s,c+208|0)))break n;if((0|M)!=1)break r;break a}if(!G)break a}d[c+304|0]=0;break A}if(s=1,4&u[A+105|0])break e}XA(A,M,o,0,c+208|0)}s=1}else TA(A,88875,c+208|0);e[c+28>>2]=c+304,e[c+24>>2]=c+208,e[c+20>>2]=c+120,e[c+16>>2]=c+144,cA(c+448|0,91059,c+16|0)}else b=l;d[c+132|0]=0;e:{A:{if((0|f)>0)16&u[A+109|0]&&2&b||(!(1&b)|o&&(0|t)<=100||!(64&(s=e[A+104>>2]))&(!(8388608&s)|f>>>0>9)||TA(A,90824,c+132|0),!(1&b|u[c+144|0])|!(524288&e[A+104>>2])|M||TA(A,90824,c+132|0)),d[c+336|0]=0;else if(d[c+336|0]=0,!f&s)break A;if(o?(l=e[A+108>>2],t=(0|o)<4?(l>>>o&1)<<3:0):(s=m?3:2,t=32&l|((0|t)<100?1&b?s:4|s:s),l=e[A+108>>2]),t=(0|o)==1&&e[A+212>>2]==28012?520|t:t,1048576&l&&(s=16|t,t=(0|M)>0||1&b?s:t),!XA(A,f,o,256&b|t,c+336|0)|!(128&u[A+104|0]))break e;d[c+132|0]=0;break e}u[133104]&&((0|(A=BA(c+448|0)))<=0||u[(A=A+c|0)+447|0]==10&&(d[A+447|0]=0),DA(c+336|0,133104))}e[c+8>>2]=15,e[c+12>>2]=c+336,e[c+4>>2]=c+132,e[c>>2]=c+448,cA(r,91101,c),H=c+560|0}function qs(A){var t,r,s,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0;for(o=e[32972],e[o+64>>2]=290816,e[o+68>>2]=4104,e[o+96>>2]=0,e[o+100>>2]=0,e[o+120>>2]=90,e[o+124>>2]=100,e[o+112>>2]=64,e[o+116>>2]=256,e[o+104>>2]=5,e[o+108>>2]=0,e[o+84>>2]=100,e[o+88>>2]=64,l=e[50754],e[o+132>>2]=0,e[o+136>>2]=0,e[o+128>>2]=l,e[o+140>>2]=0,e[o+144>>2]=0,e[o+148>>2]=0,e[o+152>>2]=0,e[o+156>>2]=0,e[o+160>>2]=0,e[36435]=450,e[o+92>>2]=2,e[50870]=0,e[50871]=0,e[50872]=0,e[50873]=0,e[50880]=0,e[50881]=0,e[50882]=0,e[50883]=0,e[50890]=0,e[50891]=0,e[50892]=0,e[50893]=0,c=-3.141592653589793/+e[50754],T[25429]=c,m=-2*c,T[25430]=m,t=(c=Gr(200*c))*-c,T[25434]=t,T[25439]=t,T[25444]=t,c=(m=c*As(2e3*m))+m,T[25433]=c,T[25438]=c,T[25443]=c,m=1-c-t,T[25432]=m,T[25437]=m,T[25442]=m,e[50902]=0,e[50903]=0,e[50900]=0,e[50901]=0,T[25449]=t,T[25448]=c,e[50912]=0,e[50913]=0,T[25447]=m,e[50910]=0,e[50911]=0,T[25454]=t,T[25453]=c,e[50922]=0,e[50923]=0,T[25452]=m,e[50920]=0,e[50921]=0,T[25459]=t,T[25458]=c,e[50932]=0,e[50933]=0,T[25457]=m,e[50930]=0,e[50931]=0,T[25464]=t,T[25463]=c,T[25462]=m,e[50942]=0,e[50943]=0,e[50940]=0,e[50941]=0,T[25469]=t,T[25468]=c,T[25467]=m,e[50952]=0,e[50953]=0,e[50950]=0,e[50951]=0,T[25474]=t,T[25473]=c,T[25472]=m,r=e[32972],l=0;k[(I=(l<<1)+r|0)+236>>1]=256,k[I+164>>1]=256,o=u[l+105376|0]<<1,k[I+254>>1]=o,k[I+182>>1]=o,k[I+200>>1]=u[l+105385|0]<<1,e[(o=(f=l<<2)+r|0)+308>>2]=e[f+105408>>2],e[o+272>>2]=0,k[I+218>>1]=0,e[f+200944>>2]=(0|O(e[f+105456>>2],22050))/e[50754],(0|(l=l+1|0))!=9;);for(z=e[32961],l=0,s=r+344|0;;){if(o=b,M=z,I=l,(0|(b=e[(l=(f=l<<2)+131840|0)>>2]))==-1&&(b=8e3,e[l>>2]=8e3,I&&(e[131840+(4|f)>>2]=e[f+131836>>2])),z=e[131840+(4|f)>>2],!((0|o)>=(0|(b=(0|b)/8|0))||(0|(G=b-o|0))<=0||(f=o+1|0,l=o,1&G&&(d[344+(o+r|0)|0]=(0|M)>=255?255:M,l=f),(0|f)==(0|b))))for(W=z-M|0;f=((0|O(l-o|0,W))/(0|G)|0)+M|0,d[l+s|0]=(0|f)>=255?255:f,Y=((0|O((f=l+1|0)-o|0,W))/(0|G)|0)+M|0,d[f+s|0]=(0|Y)>=255?255:Y,(0|b)!=(0|(l=l+2|0)););if(l=I+2|0,!(I>>>0<10))break}l=e[32972],e[l+80>>2]=232,e[l+72>>2]=256,e[l+76>>2]=238,A||(e[49848]=0),k[l+200>>1]=(0|O(k[l+200>>1],105))/100}function ds(A,t,r){var s,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0;H=s=H-288|0,(0|t)!=132848&&jt(132848,t,40),(0|(o=A+228|0))!=(0|t)&&jt(o,t,40),e[s+88>>2]=t,e[s+84>>2]=47,e[s+80>>2]=137584,cA(o=s+96|0,84089,s+80|0),l=Ns(o),(o=e[A+688>>2])&&(FA(o),e[A+688>>2]=0),o=es(s+96|0,84577);e:if((0|l)>0&&o)if(r=it(l),e[A+688>>2]=r,r)if(I=Qn(r,l,o),Dr(o),I>>>0<=1032)e[s+16>>2]=s+96,rr(e[30450],85164,s+16|0),r=2;else if(o=e[A+688>>2],r=e[o+4>>2],!((0|(l=e[o>>2]))!=1024|(0|r)<=0)&(0|r)<134217729){o=r+o|0,e[A+684>>2]=o,M=eA(A+5168|0,0,1024),eA(A+7664|0,0,260),eA(A+7924|0,255,256),eA(A+4788|0,0,380),eA(A+6192|0,0,512);A:if((0|(r=u[0|o]))!=7)for(;;){if((0|(l=255&r))!=6){if(!l)break A;l=e[A+684>>2],e[s+72>>2]=r<<24>>24,e[s+64>>2]=132848,e[s+68>>2]=o-l,rr(e[30450],88950,s- -64|0);break}r:{a:{n:{o:{c:switch((l=u[0|(r=o+1|0)])-18|0){case 0:break o;case 2:break c;default:break n}for(r=4+(-4&r)|0,e[A+180>>2]=r;r=(o=r)+1|0,!mi(o););for(;l=u[0|o],r=o,o=o+1|0,(0|l)!=7;);break r}if(r=o+3|0,(0|(o=((0|(o=d[o+2|0]))<65?191:-65)+o|0))>94)break a;e[4788+((o<<2)+A|0)>>2]=r;break a}r=1+((f=BA(r))+r|0)|0;n:switch(0|f){case 1:e[5168+((l<<2)+A|0)>>2]=r;break a;case 0:e[M>>2]=r;break a;default:break n}f=u[o+2|0],(0|l)!=1?(o=e[A+7664>>2],u[0|(b=(c=A+l|0)+7924|0)]==255&&(d[0|b]=o),d[0|(c=c+7668|0)]=u[0|c]+1,e[(c=(o<<2)+A|0)+6704>>2]=r,e[A+7664>>2]=o+1,e[c+7184>>2]=l|f<<8):e[6188+((f<<2)+A|0)>>2]=r}if(u[0|r]!=7)for(;r=1+(BA(r)+r|0)|0,u[0|r]!=7;);}r=u[0|(o=r+1|0)]}for(o=e[A+688>>2]+8|0;;){for(e[692+((r=m<<2)+A|0)>>2]=o;l=u[0|o];)o=o+l|0;for(o=o+1|0,e[692+((4|r)+A|0)>>2]=o;r=u[0|o];)o=r+o|0;if(o=o+1|0,(0|(m=m+2|0))==1024)break}r=0,(0|(A=e[A+324>>2]))<=0|A>>>0<=I>>>0||(e[s+48>>2]=t,rr(e[30450],85519,s+48|0))}else e[s+40>>2]=r,e[s+36>>2]=l,e[s+32>>2]=s+96,rr(e[30450],85349,s+32|0),r=2;else Dr(o),r=3;else{if(r||(e[s>>2]=s+96,rr(e[30450],84963,s)),r=1,!o)break e;Dr(o)}return H=s+288|0,r}function bs(A){var t,r=0,s=0;for(t=eA(A+344|0,0,256),d[A+364|0]=1,d[A+356|0]=1,d[A+357|0]=1,d[A+358|0]=1,d[A+359|0]=1,d[A+360|0]=1,d[A+361|0]=1,d[A+362|0]=1,d[A+363|0]=1,d[A+348|0]=1,d[A+349|0]=1,d[A+350|0]=1,d[A+351|0]=1,d[A+352|0]=1,d[A+353|0]=1,d[A+354|0]=1,d[A+355|0]=1,d[A+431|0]=3,d[A+429|0]=3,d[A+430|0]=3,d[A+406|0]=3,d[A+407|0]=3,d[A+408|0]=3,d[A+409|0]=3,d[A+410|0]=3,d[A+411|0]=3,d[A+412|0]=3,d[A+413|0]=3,d[A+414|0]=3,d[A+415|0]=3,d[A+416|0]=3,d[A+417|0]=3,d[A+418|0]=3,d[A+419|0]=3,d[A+420|0]=3,d[A+421|0]=3,d[A+440|0]=3,d[A+441|0]=3,d[A+442|0]=3,d[A+443|0]=3,s=21;d[(r=A+s|0)+344|0]=4|u[r+344|0],(0|(r=s+1|0))!=58;)d[0|(r=r+t|0)]=4|u[0|r],d[(r=s+t|0)+2|0]=4|u[r+2|0],d[r+3|0]=4|u[r+3|0],s=s+4|0;d[A+346|0]=4|u[A+346|0],d[A+347|0]=4|u[A+347|0],d[A+432|0]=4|u[A+432|0],d[A+433|0]=4|u[A+433|0],d[A+434|0]=4|u[A+434|0],d[A+435|0]=4|u[A+435|0],d[A+436|0]=4|u[A+436|0],d[A+437|0]=4|u[A+437|0],d[A+438|0]=4|u[A+438|0],d[A+439|0]=4|u[A+439|0],d[A+467|0]=4|u[A+467|0],d[A+468|0]=4|u[A+468|0],d[A+470|0]=4|u[A+470|0],d[A+471|0]=4|u[A+471|0],d[A+348|0]=64|u[A+348|0],d[A+349|0]=64|u[A+349|0],d[A+350|0]=64|u[A+350|0],d[A+351|0]=64|u[A+351|0],d[A+352|0]=64|u[A+352|0],d[A+353|0]=64|u[A+353|0],d[A+354|0]=64|u[A+354|0],d[A+355|0]=64|u[A+355|0],d[A+356|0]=64|u[A+356|0],d[A+357|0]=64|u[A+357|0],d[A+358|0]=64|u[A+358|0],d[A+359|0]=64|u[A+359|0],d[A+360|0]=64|u[A+360|0],d[A+361|0]=64|u[A+361|0],d[A+362|0]=64|u[A+362|0],d[A+363|0]=64|u[A+363|0],d[A+364|0]=64|u[A+364|0],d[A+406|0]=64|u[A+406|0],d[A+407|0]=64|u[A+407|0],d[A+408|0]=64|u[A+408|0],d[A+409|0]=64|u[A+409|0],d[A+410|0]=64|u[A+410|0],d[A+411|0]=64|u[A+411|0],d[A+412|0]=64|u[A+412|0],d[A+413|0]=64|u[A+413|0],d[A+414|0]=64|u[A+414|0],d[A+415|0]=64|u[A+415|0],d[A+416|0]=64|u[A+416|0],d[A+417|0]=64|u[A+417|0],d[A+418|0]=64|u[A+418|0],d[A+419|0]=64|u[A+419|0],d[A+420|0]=64|u[A+420|0],d[A+440|0]=64|u[A+440|0],d[A+441|0]=64|u[A+441|0],d[A+429|0]=64|u[A+429|0],d[A+430|0]=64|u[A+430|0],d[A+431|0]=64|u[A+431|0],d[A+442|0]=64|u[A+442|0],d[A+443|0]=64|u[A+443|0],e[A+40>>2]=1,e[A+204>>2]=e[A+600>>2]+77}function Ms(A,t,r,s,o,l,c,f,m){var I,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0;H=I=H-128|0;e:{A:{if(hr(l,c,f,m,0,0,0,0)){M=65535&m;r:a:{if((0|(z=m>>>16&32767))!=32767){if(b=4,z)break a;b=l|f|c|M?3:2;break r}b=!(l|f|c|M)}if((0|(W=32767&(oe=o>>>16|0)))!=32767&&b)break A}je(I+16|0,t,r,s,o,l,c,f,m),wr(I,t=e[I+16>>2],s=e[I+20>>2],o=e[I+24>>2],r=e[I+28>>2],t,s,o,r),s=e[I+8>>2],o=e[I+12>>2],f=e[I>>2],m=e[I+4>>2];break e}if(z=f,(0|hr(t,r,b=s,Y=2147483647&o,l,c,f,G=2147483647&m))<=0){if(hr(t,r,b,Y,l,c,z,G)){f=t,m=r;break e}je(I+112|0,t,r,s,o,0,0,0,0),s=e[I+120>>2],o=e[I+124>>2],f=e[I+112>>2],m=e[I+116>>2]}else{if(X=m>>>16&32767,W?(m=r,f=t):(je(I+96|0,t,r,b,Y,0,0,0,1081540608),b=e[I+104>>2],Y=f=e[I+108>>2],W=(f>>>16|0)-120|0,m=e[I+100>>2],f=e[I+96>>2]),X||(je(I+80|0,l,c,z,G,0,0,0,1081540608),z=e[I+88>>2],G=l=e[I+92>>2],X=(l>>>16|0)-120|0,c=e[I+84>>2],l=e[I+80>>2]),te=z,pe=65535&G|65536,Y=65535&Y|65536,(0|W)>(0|X)){for(;;){if(z=(G=b-te|0)-(M=(0|c)==(0|m)&l>>>0>f>>>0|c>>>0>m>>>0)|0,(0|(M=(Y-((b>>>0>>0)+pe|0)|0)-(M>>>0>G>>>0)|0))>0|(0|M)>=0){if(b=f,!((f=f-l|0)|z|(m=m-((l>>>0>b>>>0)+c|0)|0)|M)){je(I+32|0,t,r,s,o,0,0,0,0),s=e[I+40>>2],o=e[I+44>>2],f=e[I+32>>2],m=e[I+36>>2];break e}M=M<<1|z>>>31,b=z<<1|m>>>31}else M=Y<<1|b>>>31,b=b<<1|m>>>31;if(Y=M,M=m<<1|f>>>31,f<<=1,m=M,!((0|(W=W-1|0))>(0|X)))break}W=X}if(z=(G=b-te|0)-(M=(0|c)==(0|m)&l>>>0>f>>>0|c>>>0>m>>>0)|0,G=M=(Y-((b>>>0>>0)+pe|0)|0)-(M>>>0>G>>>0)|0,(0|M)<0)z=b,G=Y;else if(b=f,!((f=f-l|0)|z|(m=m-((l>>>0>b>>>0)+c|0)|0)|G)){je(I+48|0,t,r,s,o,0,0,0,0),s=e[I+56>>2],o=e[I+60>>2],f=e[I+48>>2],m=e[I+52>>2];break e}if((0|G)==65535|G>>>0<65535)for(;t=m>>>31|0,W=W-1|0,Y=m<<1|f>>>31,f<<=1,m=Y,r=t,t=G<<1|z>>>31,z=r|z<<1,G=t,t>>>0<65536;);t=32768&oe,(0|W)<=0?(je(I- -64|0,f,m,z,65535&G|(t|W+120)<<16,0,0,0,1065811968),s=e[I+72>>2],o=e[I+76>>2],f=e[I+64>>2],m=e[I+68>>2]):(s=z,o=65535&G|(t|W)<<16)}}e[A>>2]=f,e[A+4>>2]=m,e[A+8>>2]=s,e[A+12>>2]=o,H=I+128|0}function Ps(A,t,r){var s,o,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0;if(H=s=H-1040|0,(0|(c=Ba(A,589824,0)))>=0&&((l=xA(1,2072))?e[l+8>>2]=c:(De(0|c),l=0)),o=l,l){e:if(l=Sn(o))for(z=e[30450],G=(s+96|0)+t|0;;){if((0|(c=e[50303]))>=348){e[s+4>>2]=350,e[s>>2]=c+1,rr(z,91860,s);break e}if(u[l+19|0]!=46)if(e[s+88>>2]=l+19,e[s+84>>2]=47,e[s+80>>2]=A,cA(l=s+96|0,91924,s+80|0),(0|(l=Ns(l)))!=-31){if(!((0|l)<=0)&&(M=es(s+96|0,85712))){f=0,d[s+832|0]=0,d[s+752|0]=0,e[s+360>>2]=0,e[s+356>>2]=4,I=0;A:for(;;){for(b=299-I|0;Bt(s+912|0,120,M);){l=s+912|0;r:{if(u[s+912|0]!=35){a:if(!((0|(l=BA(s+912|0)-1|0))<=0))for(;;){if(!((0|(c=d[0|(m=(s+912|0)+l|0)]))==32|c-9>>>0<5))break a;if(d[0|m]=0,!((0|(l=l-1|0))>0))break}if(!(l=js(s+912|0)))break r}d[0|l]=0}l=s+912|0;r:if(c=u[s+912|0])for(;;){if(gr(c<<24>>24))break r;if(!(c=u[0|(l=l+1|0)]))break}if(d[0|l]=0,u[s+912|0]){l=l+1|0;r:switch(ft(131904,s+912|0)-1|0){case 0:for(;c=l,l=l+1|0,(0|(m=d[0|c]))==32|m-9>>>0<5;);Rt(s+832|0,c,80);continue;case 1:if(d[s+672|0]=0,e[s+364>>2]=5,c=s+672|0,e[s+16>>2]=c,e[s+20>>2]=s+364,UA(l,86237,s+16|0),(c=BA(c)+2|0)>>>0>=b>>>0)continue;d[0|(l=(s+368|0)+I|0)]=e[s+364>>2],DA(l+1|0,s+672|0),f=f+1|0,I=c+I|0;continue A;case 2:if(e[s+52>>2]=s+360,e[s+48>>2]=s+752,UA(l,86237,s+48|0),!r)continue;e[s+32>>2]=G,rr(z,92042,s+32|0);continue;case 5:break r;default:continue}e[s+64>>2]=s+356,UA(l,87268,s- -64|0)}}break}d[(s+368|0)+I|0]=0,c=ft(132112,s+752|0),f?(m=BA(G)+I|0,b=SA((f=xA(28+(BA(s+832|0)+m|0)|0,1))+24|0,s+368|0,l=I+1|0),e[f+4>>2]=b,l=DA(l+b|0,G),e[f>>2]=l,e[f+8>>2]=l,u[s+832|0]&&(e[f>>2]=DA(2+(m+b|0)|0,s+832|0)),l=e[s+360>>2],d[f+14|0]=0,d[f+12|0]=c,d[f+13|0]=l,d[f+15|0]=e[s+356>>2],Dr(M),l=e[50303],e[50303]=l+1,e[201216+(l<<2)>>2]=f):Dr(M)}}else Ps(s+96|0,t,r);if(!(l=Sn(o)))break}Mo(e[o+8>>2]),FA(o)}H=s+1040|0}function Ws(A,t){var r,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0;H=r=H-352|0;e:if(A||(A=e[136284+(t<<4)>>2])){u[0|A]!=47&&(e[r+12>>2]=A,e[r+4>>2]=47,e[r+8>>2]=47,e[r>>2]=137584,cA(A=r+16|0,84114,r)),d[r+240|0]=0;A:{r:{if(s=es(A,84577)){if((0|bo(s,20))==-1)break A;if(l=gi(s),o=gi(s),f=gi(s),!((0|l)!=65537|(0|o)!=e[50754])&(0|f)==o<<1)break r;Dr(s),k[r+256>>1]=u[84864]|u[84865]<<8,A=u[84852]|u[84853]<<8|u[84854]<<16|u[84855]<<24,e[r+240>>2]=u[84848]|u[84849]<<8|u[84850]<<16|u[84851]<<24,e[r+244>>2]=A,A=u[84860]|u[84861]<<8|u[84862]<<16|u[84863]<<24,e[r+248>>2]=u[84856]|u[84857]<<8|u[84858]<<16|u[84859]<<24,e[r+252>>2]=A,H=l=H-16|0;a:{if((s=BA(A=r+240|0))>>>0>=6&&!Zr(f=(A+s|0)-6|0,84274,6)){for(I=100;;){for(m=0,H=s=H-16|0,u[227196]||(d[227197]=Ye(),d[227196]=1),M=+ee(),Ae(c=M/1e3)<9223372036854776e3?(b=Ae(c)>=1?~~(c>0?he(Ee(23283064365386963e-26*c),4294967295):ke(23283064365386963e-26*(c-+(~~c>>>0>>>0))))>>>0:0,o=~~c>>>0):(b=-2147483648,o=0),e[s>>2]=o,e[s+4>>2]=b,c=1e3*(M-(+(st(o,b,1e3,0)>>>0)+4294967296*+(0|me)))*1e3,o=Ae(c)<2147483648?~~c:-2147483648,e[s+8>>2]=o,o=f+(s>>>4|0)^O(e[s+8>>2],65537);d[f+m|0]=65+(15&o|o<<1&32),o=o>>>5|0,(0|(m=m+1|0))!=6;);if(H=s+16|0,e[l>>2]=384,(0|(s=Ba(A,194,l)))>=0)break a;if(I=I-1|0,e[56798]!=20||!I)break}SA(f,84274,6)}else e[56798]=28;s=-1}H=l+16|0,(0|s)<0||Mo(s)}if(!(s=es(A,84577))){A=Vs(0,e[56798],A);break e}}if((0|(l=Ns(A)))<0){Dr(s),A=Vs(0,0-l|0,A);break e}if((0|bo(s,0))==-1){t=e[56798],Dr(s),A=Vs(0,t,A);break e}if(!(o=Ut(e[(f=136280+(t<<4)|0)>>2],l))){Dr(s),A=48;break e}if((0|Qn(o,l,s))!=(0|l)){t=e[56798],Dr(s),u[r+240|0]&&Co(r+240|0),FA(o),A=Vs(0,t,A);break e}Dr(s),u[r+240|0]&&Co(r+240|0),e[136276+(t<<4)>>2]=(u[o+40|0]|u[o+41|0]<<8|u[o+42|0]<<16|u[o+43|0]<<24)/2,e[f>>2]=o,A=0;break e}t=e[56798],Dr(s),A=Vs(0,t,A)}else A=28;return H=r+352|0,A}function $s(A,t,r,s,o,l){var c,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0;for(d[0|r]=1,c=1&l,pe=1,Y=-1,X=-1,b=1,l=t;;){Ie=oe-2|0,te=M,z=X;e:{A:{for(;;){if(!(G=u[0|l])){X=z,M=te;break e}if(l=l+1|0,W=e[144464+(G<<2)>>2]){r:{if((0|(f=u[W+11|0]))!=1){if(16&u[W+6|0]|(0|f)!=2)break r;d[0|(M=r+b|0)]=Y,f=(0|Y)<4|(0|z)>(0|Y),!(2&u[W+4|0])|!c|(0|Y)>=0||(d[0|M]=1),M=f?te:b,X=f?z:Y,Y=-1,b=b+1|0;break A}if(!y[W+8>>1]){f=0,I=b;a:if((0|G)!=8)f=u[W+14|0],e[o>>2]&&f>>>0>=4||(z=(0|f)<(0|z)?z:f,Y=f);else{for(;;){if(G=f,I=I-1|0,e[o>>2]|(0|I)<=0||(0|(W=d[0|(m=r+I|0)]))>3)break a;if(f=G+1|0,!(W>>>0<2))break}if(d[0|m]=4,te=(0|z)<4?I:te,z=(0|z)<=4?4:z,I>>>0<2)break a;if(W=3&(I=~G+oe|0),f=1,Ie-G>>>0>=3)for(G=-4&I,I=0;u[0|(m=r+f|0)]==4&&(d[0|m]=3),u[m+1|0]==4&&(d[m+1|0]=3),u[m+2|0]==4&&(d[m+2|0]=3),u[m+3|0]==4&&(d[m+3|0]=3),f=f+4|0,(0|G)!=(0|(I=I+4|0)););if(m=0,!W)break a;for(;u[0|(G=r+f|0)]==4&&(d[0|G]=3),f=f+1|0,(0|W)!=(0|(m=m+1|0)););}if(pe)continue;break e}}break}}X=z,M=te,(0|G)==20&&(d[r+b|0]=c&&(0|Y)<0?1:Y,b=b+1|0)}if(d[0|t]=G,oe=b-1|0,t=t+1|0,pe=(0|b)<99)continue}break}d[r+b|0]=1,d[0|t]=0;e:if((0|(t=e[o>>2]))>0)X=4,(0|t)>=(0|b)&&(e[o>>2]=oe,t=oe),d[t+r|0]=4,M=e[o>>2];else if((0|X)==5&&(X=4,!((0|b)<2))){if(l=1,z=1&(t=b-1|0),(0|b)!=2)for(te=-2&t,I=0;;){m=4;A:{r:{a:switch(u[0|(t=(f=l)+r|0)]-4|0){case 1:break r;case 0:break a;default:break A}m=2&u[A+14|0]?1:3,f=M}d[0|t]=m,M=f}m=4;A:{r:{a:switch(u[0|(t=(f=l+1|0)+r|0)]-4|0){case 1:break r;case 0:break a;default:break A}m=2&u[A+14|0]?1:3,f=M}d[0|t]=m,M=f}if(l=l+2|0,(0|te)==(0|(I=I+2|0)))break}if(z){m=4;A:{r:switch(u[0|(t=r+l|0)]-4|0){case 1:break A;case 0:break r;default:break e}m=2&u[A+14|0]?1:3,l=M}d[0|t]=m,M=l}}return e[o>>2]=M,e[s>>2]=b,X}function Ut(A,t){var r,s,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0;if(!A)return it(t);if(t>>>0>=4294967232)return e[56798]=48,0;r=t>>>0<11?16:t+11&-8,c=-8&(s=e[(f=A-8|0)+4>>2]);e:if(3&s){m=c+f|0;A:if(c>>>0>=r>>>0){if((l=c-r|0)>>>0<16)break A;e[f+4>>2]=1&s|r|2,e[(o=f+r|0)+4>>2]=3|l,e[m+4>>2]=1|e[m+4>>2],Gs(o,l)}else if(e[57158]!=(0|m))if(e[57157]!=(0|m)){if(2&(l=e[m+4>>2])||(b=c+(-8&l)|0)>>>0>>0)break e;G=b-r|0;r:if(l>>>0<=255){if(c=e[m+8>>2],o=l>>>3|0,(0|(l=e[m+12>>2]))==(0|c)){e[57152]=e[57152]&ts(-2,o);break r}e[c+12>>2]=l,e[l+8>>2]=c}else{if(M=e[m+24>>2],(0|(I=e[m+12>>2]))==(0|m))if((o=e[(c=m+20|0)>>2])||(o=e[(c=m+16|0)>>2])){for(;l=c,I=o,(o=e[(c=o+20|0)>>2])||(c=I+16|0,o=e[I+16>>2]););e[l>>2]=0}else I=0;else o=e[m+8>>2],e[o+12>>2]=I,e[I+8>>2]=o;if(M){l=e[m+28>>2];a:{if(e[(o=228912+(l<<2)|0)>>2]==(0|m)){if(e[o>>2]=I,I)break a;e[57153]=e[57153]&ts(-2,l);break r}if(e[(e[M+16>>2]==(0|m)?16:20)+M>>2]=I,!I)break r}e[I+24>>2]=M,(o=e[m+16>>2])&&(e[I+16>>2]=o,e[o+24>>2]=I),(o=e[m+20>>2])&&(e[I+20>>2]=o,e[o+24>>2]=I)}}G>>>0<=15?(e[f+4>>2]=1&s|b|2,e[(o=f+b|0)+4>>2]=1|e[o+4>>2]):(e[f+4>>2]=1&s|r|2,e[(l=f+r|0)+4>>2]=3|G,e[(o=f+b|0)+4>>2]=1|e[o+4>>2],Gs(l,G))}else{if((l=c+e[57154]|0)>>>0>>0)break e;(o=l-r|0)>>>0>=16?(e[f+4>>2]=1&s|r|2,e[(c=f+r|0)+4>>2]=1|o,e[(l=l+f|0)>>2]=o,e[l+4>>2]=-2&e[l+4>>2]):(e[f+4>>2]=l|1&s|2,e[(o=l+f|0)+4>>2]=1|e[o+4>>2],o=0,c=0),e[57157]=c,e[57154]=o}else{if((c=c+e[57155]|0)>>>0<=r>>>0)break e;e[f+4>>2]=1&s|r|2,o=c-r|0,e[(l=f+r|0)+4>>2]=1|o,e[57155]=o,e[57158]=l}o=f}else{if(r>>>0<256||c>>>0>=r+4>>>0&&(o=f,c-r>>>0<=e[57272]<<1>>>0))break e;o=0}return o?o+8|0:(f=it(t))?(SA(f,A,t>>>0>(o=(3&(o=e[A-4>>2])?-4:-8)+(-8&o)|0)>>>0?o:t),FA(A),f):0}function ea(){var A,t,r=0,s=0;return A=gs(12),e[A>>2]=22050,t=gs(432),e[(s=t)+4>>2]=0,e[s+8>>2]=0,e[s>>2]=132304,e[s+32>>2]=0,e[s+12>>2]=0,e[s+16>>2]=0,e[s+20>>2]=0,e[s+24>>2]=0,eA(s+40|0,0,376),e[s+420>>2]=0,e[s+424>>2]=-1,d[s+416|0]=1,r=eA(gs(408),0,408),e[s+28>>2]=r,d[r+8|0]=1,e[A+4>>2]=s,r=gs(1096),e[r+8>>2]=22050,e[r+4>>2]=22050,e[r>>2]=132352,e[r+64>>2]=22050,e[r+56>>2]=0,e[r+60>>2]=0,e[r+32>>2]=0,e[r+36>>2]=0,e[r+24>>2]=22050,e[r+16>>2]=0,e[r+20>>2]=0,e[r+40>>2]=0,e[r+44>>2]=0,d[r+48|0]=0,e[r+128>>2]=0,e[r+132>>2]=0,k[r+96>>1]=0,e[r+72>>2]=22050,e[r+136>>2]=0,e[r+140>>2]=0,k[r+168>>1]=0,e[r+144>>2]=22050,e[r+200>>2]=0,e[r+204>>2]=0,e[r+208>>2]=0,e[r+212>>2]=0,e[r+216>>2]=22050,k[r+240>>1]=0,e[r+280>>2]=0,e[r+284>>2]=0,e[r+272>>2]=0,e[r+276>>2]=0,e[r+288>>2]=22050,k[r+312>>1]=0,e[r+344>>2]=0,e[r+348>>2]=0,e[r+352>>2]=0,e[r+356>>2]=0,e[r+360>>2]=22050,k[r+384>>1]=0,e[r+416>>2]=0,e[r+420>>2]=0,e[r+424>>2]=0,e[r+428>>2]=0,e[r+432>>2]=22050,k[r+456>>1]=0,e[r+488>>2]=0,e[r+492>>2]=0,e[r+496>>2]=0,e[r+500>>2]=0,e[r+504>>2]=22050,k[r+528>>1]=1,e[r+560>>2]=0,e[r+564>>2]=0,e[r+568>>2]=0,e[r+572>>2]=0,k[r+600>>1]=0,e[r+576>>2]=22050,e[r+640>>2]=0,e[r+644>>2]=0,e[r+632>>2]=0,e[r+636>>2]=0,k[r+680>>1]=0,e[r+656>>2]=22050,e[r+648>>2]=22050,e[r+720>>2]=0,e[r+724>>2]=0,e[r+712>>2]=0,e[r+716>>2]=0,k[r+752>>1]=0,e[r+728>>2]=22050,e[r+792>>2]=0,e[r+796>>2]=0,e[r+784>>2]=0,e[r+788>>2]=0,k[r+824>>1]=0,e[r+800>>2]=22050,e[r+864>>2]=0,e[r+868>>2]=0,e[r+856>>2]=0,e[r+860>>2]=0,e[r+872>>2]=22050,k[r+896>>1]=0,e[r+936>>2]=0,e[r+940>>2]=0,e[r+928>>2]=0,e[r+932>>2]=0,k[r+968>>1]=0,e[r+944>>2]=22050,e[r+1008>>2]=0,e[r+1012>>2]=0,e[r+1e3>>2]=0,e[r+1004>>2]=0,k[r+1040>>1]=0,e[r+1016>>2]=22050,e[r+1088>>2]=0,e[(s=r+1080|0)>>2]=0,e[s+4>>2]=0,e[(s=r+1072|0)>>2]=0,e[s+4>>2]=0,e[A+8>>2]=r,$A[e[e[r>>2]+4>>2]](r,t),A}function Yr(A,t,r){var s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0;e:if(M=e[50759]){if(s=e[50980],o=O(s,80)+222176|0,(0|(m=(0|(o=(0|(o=(e[o+12>>2]+e[o>>2]|0)/(0|A)|0))<(0|(b=((0|O(e[50754],19))/40<<16)/(0|A)|0))?o:b))>=399?399:o))>=0&&(eA(t,0,4+(m<<2)|0),s=e[50980]),(0|s)>=0)for(G=e[50801];;){if(l=O(c,80)+222176|0,e[l+4>>2]&&(f=e[l>>2])){if(z=f+e[l+12>>2]|0,s=1+((f-e[l+8>>2]|0)/(0|A)|0)|0,(0|f)>(0|(s=O(o=(0|s)<=1?1:s,A))))for(;e[(I=(o<<2)+t|0)>>2]=e[I>>2]+O(e[l+4>>2],u[((f-s|0)/(e[l+8>>2]>>8)|0)+G|0]),o=o+1|0,(0|f)>(0|(s=A+s|0)););if(!((0|s)>=(0|z)))for(;e[(I=(o<<2)+t|0)>>2]=e[I>>2]+O(e[l+4>>2],u[((s-f|0)/(e[l+12>>2]>>8)|0)+G|0]),o=o+1|0,(0|z)>(0|(s=A+s|0)););}if(!((0|(c=c+1|0))<=e[50980]))break}if(o=1,!((0|(l=65536e3/(0|A)|0))<=0||(0|(s=O(e[55565],10)))<=0))for(l=(0|s)/(0|l)|0;e[(f=(o<<2)+t|0)>>2]=e[f>>2]+s,o=o+1|0,(0|(s=s-l|0))>0;);if((0|c)<=8)for(;o=(s=c<<2)+203216|0,l=O(c,80)+222176|0,f=e[l+4>>2]>>14,e[o>>2]=(0|O(O(f,f),5))/2,r?s=e[s+203264>>2]:(f=s+203264|0,s=e[l>>2]/(0|A)|0,e[f>>2]=s),(0|s)>=(0|b)&&(e[o>>2]=0),(0|(c=c+1|0))!=9;);if(o=0,(0|m)>=0)for(s=0;l=e[(c=(s<<2)+t|0)>>2]>>15,l=O(l,l)>>8,e[c>>2]=l,(0|o)<=524287999&&(e[c>>2]=O(l,u[344+((o>>19)+M|0)|0])>>13),o=A+o|0,c=(0|s)!=(0|m),s=s+1|0,c;);if(e[t+4>>2]=(0|O(e[t+4>>2],u[203300]?6:10))/8,1&r)for(A=e[50826],s=1;;){if(e[(r=s<<2)+203312>>2]=e[t+r>>2]-e[A+r>>2]>>3,(0|(r=s+1|0))==30)break e;e[(r<<=2)+203312>>2]=e[t+r>>2]-e[A+r>>2]>>3,s=s+2|0}}else m=1;return m}function Ys(A,t,r,s){var o,l=0,c=0;H=o=H-176|0,d[0|A]=0,k[o+80>>1]=24320,e[o+104>>2]=0,e[o+108>>2]=0,d[82+(Ar(r,l=o+80|2)+o|0)|0]=0;e:{A:{if(!s){if(s=o+80|1,e[o+12>>2]=s,IA(t,o+12|0,o+16|0,o+104|0,0,0)||(e[o+12>>2]=l,IA(t,o+12|0,o+16|0,o+104|0,0,0)||(d[o+81|0]=32,At(t,l,o+16|0,60,0,0,0))),(r=u[o+16|0])&&(0|r)!=21)break A;r:{if(e[t+212>>2]!=25966){if(Hs(85719,188772,189296),d[o+81|0]=95,e[o+12>>2]=s,IA(e[47193],o+12|0,o+16|0,o+104|0,0,0)||(e[o+12>>2]=l,IA(e[47193],o+12|0,o+16|0,o+104|0,0,0)),u[o+16|0])break r;rs(e[e[32972]+60>>2]),r=u[o+16|0]}if(255&r)break A;t=u[87124]|u[87125]<<8|u[87126]<<16|u[87127]<<24,r=u[87120]|u[87121]<<8|u[87122]<<16|u[87123]<<24,d[0|A]=r,d[A+1|0]=r>>>8,d[A+2|0]=r>>>16,d[A+3|0]=r>>>24,d[A+4|0]=t,d[A+5|0]=t>>>8,d[A+6|0]=t>>>16,d[A+7|0]=t>>>24,d[A+16|0]=u[87136],t=u[87132]|u[87133]<<8|u[87134]<<16|u[87135]<<24,r=u[87128]|u[87129]<<8|u[87130]<<16|u[87131]<<24,d[A+8|0]=r,d[A+9|0]=r>>>8,d[A+10|0]=r>>>16,d[A+11|0]=r>>>24,d[A+12|0]=t,d[A+13|0]=t>>>8,d[A+14|0]=t>>>16,d[A+15|0]=t>>>24;break e}s=o+16|0,l=o+104|0,H=r=H-112|0,(c=e[47193])?(Zt(c,s,l,-1,0),dr(l=s,s=r+48|0),t=e[t+212>>2],d[r+43|0]=t>>>24,d[0|(c=(l=r+43|0)+(t>>>0>16777215)|0)]=t>>>16,d[0|(c=c+!!(16711680&t)|0)]=t>>>8,d[0|(c=c+!!(65280&t)|0)]=t,d[c+!!(255&t)|0]=0,e[r+16>>2]=85719,e[r+24>>2]=l,e[r+20>>2]=s,cA(A,85662,r+16|0)):(Zt(t,s,l,-1,0),dr(s,t=r+48|0),e[r>>2]=t,cA(A,85451,r)),H=r+112|0,rs(e[e[32972]+60>>2]);break e}if(e[o+12>>2]=l,IA(t,o+12|0,o+16|0,o+104|0,0,0),!u[o+16|0])break e}Zt(r=t,t=o+16|0,o+104|0,-1,0),dr(r=t,t=o+112|0),e[o>>2]=t,cA(A,85451,o)}return H=o+176|0,A}function Lr(A,t){var r,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0;if(H=r=H-112|0,e[r+72>>2]=-1,e[(s=r- -64|0)>>2]=-1,e[s+4>>2]=-1,e[r+56>>2]=-1,e[r+60>>2]=-1,e[r+48>>2]=-1,e[r+52>>2]=-1,e[r+40>>2]=-1,e[r+44>>2]=-1,e[r+32>>2]=-1,e[r+36>>2]=-1,e[r+24>>2]=-1,e[r+28>>2]=-1,e[r+16>>2]=-1,e[r+20>>2]=-1,(0|t)>0){for(l=e[r+72>>2],c=e[r+68>>2],f=e[r+64>>2],m=e[r+60>>2],I=e[r+56>>2],b=e[r+52>>2],M=e[r+48>>2],G=e[r+44>>2],z=e[r+40>>2],W=e[r+36>>2],Y=e[r+32>>2],X=e[r+28>>2],te=e[r+24>>2],oe=e[r+20>>2],pe=e[r+16>>2];o=l,l=(0|(l=e[(s=134912+(Ie<<6)|0)+60>>2]))<0?o:l,o=c,c=(0|(c=e[s+56>>2]))<0?o:c,o=f,f=(0|(f=e[s+52>>2]))<0?o:f,o=m,m=(0|(m=e[s+48>>2]))<0?o:m,o=I,I=(0|(I=e[s+44>>2]))<0?o:I,o=b,b=(0|(b=e[s+40>>2]))<0?o:b,o=M,M=(0|(M=e[s+36>>2]))<0?o:M,o=G,G=(0|(G=e[s+32>>2]))<0?o:G,o=z,z=(0|(z=e[s+28>>2]))<0?o:z,o=W,W=(0|(W=e[s+24>>2]))<0?o:W,o=Y,Y=(0|(Y=e[s+20>>2]))<0?o:Y,o=X,X=(0|(X=e[s+16>>2]))<0?o:X,o=te,te=(0|(te=e[s+12>>2]))<0?o:te,o=oe,oe=(0|(oe=e[s+8>>2]))<0?o:oe,pe=(0|(s=e[s+4>>2]))<0?pe:s,(0|(Ie=Ie+1|0))!=(0|t););e[r+72>>2]=l,e[r+68>>2]=c,e[r+64>>2]=f,e[r+60>>2]=m,e[r+56>>2]=I,e[r+52>>2]=b,e[r+48>>2]=M,e[r+44>>2]=G,e[r+40>>2]=z,e[r+36>>2]=W,e[r+32>>2]=Y,e[r+28>>2]=X,e[r+24>>2]=te,e[r+20>>2]=oe,e[r+16>>2]=pe}for(t=0;;){if((0|(s=e[(l=t<<2)+(r+16|0)>>2]))!=e[(l=l+134848|0)>>2]){d[r+80|0]=0;e:{A:switch(t-1|0){case 4:e[47201]=s-1;break e;case 5:e[47200]=s;break e;case 0:case 1:case 2:case 3:case 11:break A;default:break e}e[r+4>>2]=s,e[r>>2]=1,e[r+8>>2]=d[t+102812|0],cA(r+80|0,91942,r)}e[l>>2]=s,s=r+80|0,DA(e[A>>2]+189424|0,s),e[A>>2]=e[A>>2]+BA(s)}if((0|(t=t+1|0))==15)break}H=r+112|0}function iA(A){var t,r,s,o=0,l=0,c=0,f=0;for(o=17,e[A+328>>2]=17,e[A+224>>2]=0,e[A+216>>2]=1105,e[A+220>>2]=1072,e[A+600>>2]=1056,e[A+8180>>2]=105296,c=eA(A+344|0,0,256),d[A+393|0]=1,d[A+365|0]=1,d[A+360|0]=1,d[A+545|0]=1,d[A+529|0]=1,d[A+391|0]=1,d[A+379|0]=1,d[A+374|0]=1,d[A+489|0]=1,d[A+487|0]=1,d[A+398|0]=1,d[A+387|0]=1,d[A+388|0]=2,d[A+389|0]=1,d[A+390|0]=1,d[A+385|0]=2,d[A+383|0]=2,d[A+368|0]=1,d[A+369|0]=2,l=104224;d[0|(o=o+c|0)]=4|u[0|o],o=c+u[l+1|0]|0,d[0|o]=4|u[0|o],o=c+u[l+2|0]|0,d[0|o]=4|u[0|o],o=u[0|(l=l+3|0)],(0|l)!=104251;);d[A+386|0]=8|u[A+386|0],d[A+382|0]=8|u[A+382|0],d[A+384|0]=8|u[A+384|0],d[A+369|0]=16|u[A+369|0],d[A+370|0]=16|u[A+370|0],d[A+371|0]=16|u[A+371|0],l=u[A+361|0],c=u[A+362|0],o=u[A+363|0],f=u[A+364|0],t=u[A+366|0],r=u[A+367|0],d[A+372|0]=16|u[A+372|0],d[A+373|0]=16|u[A+373|0],d[A+375|0]=16|u[A+375|0],d[A+376|0]=16|u[A+376|0],d[A+377|0]=16|u[A+377|0],d[A+378|0]=16|u[A+378|0],d[A+380|0]=16|u[A+380|0],d[A+381|0]=16|u[A+381|0],d[A+383|0]=16|u[A+383|0],d[A+385|0]=16|u[A+385|0],s=u[A+388|0],d[A+367|0]=48|r,d[A+366|0]=40|t,d[A+364|0]=48|f,d[A+363|0]=48|o,d[A+362|0]=48|c,d[A+361|0]=48|l,d[A+388|0]=80|s,l=u[A+390|0],c=u[A+391|0],o=u[A+393|0],d[A+360|0]=128|u[A+360|0],f=u[A+365|0],d[A+393|0]=192|o,d[A+365|0]=128|f,d[A+368|0]=128|u[A+368|0],d[A+374|0]=128|u[A+374|0],d[A+379|0]=128|u[A+379|0],d[A+387|0]=128|u[A+387|0],o=u[A+389|0],d[A+391|0]=192|c,d[A+390|0]=192|l,d[A+389|0]=128|o,d[A+529|0]=128|u[A+529|0],d[A+545|0]=128|u[A+545|0],d[A+489|0]=128|u[A+489|0],d[A+487|0]=128|u[A+487|0],d[A+398|0]=128|u[A+398|0]}function IA(A,t,r,s,o,l){var c,f=0,m=0,I=0,b=0,M=0,G=0;H=c=H-192|0,f=M=e[t>>2];e:{A:{for(;m=1,(0|(I=d[0|f]))>=0||(m=2,I>>>0<4294967264||(m=I>>>0<4294967280?3:4)),!(u[0|(I=m+f|0)]!=32|u[I+1|0]!=46);){if(b-160>>>0<4294967135)break A;SA((G=c+32|0)+b|0,f,m),d[(m=m+b|0)+G|0]=46,f=I+3|0,b=m+1|0}if(b){for(m=0;I=m,m=m+1|0,223&u[f+I|0];);if(!((G=I+b|0)+1>>>0>160)&&(SA((m=c+32|0)+b|0,f,I),d[m+G|0]=0,LA(A,m,f,r,s,o,l))){e[s>>2]=128|e[s>>2],e[33264]=b,A=1;break e}}}for(f=0;;){if(M=(m=M)+1|0,223&(m=u[0|m]))if(!f|(0|m)!=46|d[31+(f+c|0)|0]-48>>>0>=10){if(d[(c+32|0)+f|0]=m,m=159,(0|(f=f+1|0))!=159)continue}else m=f;else m=f;break}d[(f=c+32|0)+m|0]=0,f=LA(A,f,M,r,s,o,l);A:if(8&u[s+3|0]){if(!tr(r,I=A+268|0)){if(I=e[A+288>>2]+1|0,e[A+288>>2]=I,(0|I)<4)break A;d[0|r]=0;break A}Rt(I,r,20),e[A+288>>2]=1}else e[A+288>>2]=0;A:{if(!f){if(f=0,8&u[s+5|0]&&(I=zA(c+28|0,f=c+32|u[c+32|0]==95),ta(A,e[c+28>>2],r),f=f+I|0),!(m>>>0<2|f)){if(d[0|r]=0,!(16&o&&u[0|(f=31+(m+c|0)|0)]==101)&&(!(4096&o)||u[0|(f=(m=(c+32|0)+m|0)-1|0)]!=u[m-2|0]))break A;d[0|f]=0,f=LA(A,c+32|0,M,r,s,o,l)}if(!f)break A}if(b=e[s>>2],u[A+172|0]&&(b^=536870912,e[s>>2]=b),A=1,!(536870912&b))break e;2&o&&(k[66448]=8192,e[c+16>>2]=r,cA(132898,87470,c+16|0),A=e[t>>2],e[t>>2]=132898,8&u[188788]&&(SA(t=c+32|0,s=A,A=f-A|0),d[A+t|0]=0,e[c+4>>2]=132898,A=e[47195],e[c>>2]=t,rr(A,87652,c)))}d[0|r]=0,A=0}return H=c+192|0,A}function jA(A,t){var r=0,s=0,o=0;r=31&A;e:{A:{r:{if((0|(A&=96))==96)A=-1;else{if((0|A)!=64)break r;A=1}if(r>>>0>=15)break e;t=e[203136+(r<<2)>>2]+O(A,t)|0;break A}if(r>>>0>=15)break e}A=e[(s=r<<2)+105616>>2],e[s+203136>>2]=(0|t)>=0?(0|A)>(0|t)?t:A:0}e:{A:{r:{a:{n:switch(r-1|0){case 5:if(!(A=e[50759]))break A;e[54728]=e[50982],t=e[50979],r=e[50978],eA(205184,0,11e3),e[51293]=0,t=(r=(o=(0|(s=e[50789]))>0)?130:(0|r)>=5499?5499:r)?o?s:(0|t)>=100?100:t:0,e[50755]=t,r=(0|O(r,e[50754]))/1e3|0,e[51292]=r,e[54729]=(0|t)>20?r<<1:t?r:0,e[33037]=(0|O(500-t|0,(0|O(u[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16|0))/500;break a;case 0:break n;case 2:case 12:break e;case 4:break r;default:break A}if(!(A=e[50759]))break A}return t=256,(0|(r=(0|(r=e[50785]))>=101?101:r))>=51&&(t=256+(((O(r,25)-1250&65535)>>>0)/50|0)|0),k[A+164>>1]=(0|O(k[A+236>>1],t))/256,k[A+166>>1]=(0|O(k[A+238>>1],t))/256,k[A+168>>1]=(0|O(k[A+240>>1],t))/256,k[A+170>>1]=(0|O(k[A+242>>1],t))/256,k[A+172>>1]=(0|O(k[A+244>>1],t))/256,k[A+174>>1]=(0|O(k[A+246>>1],t))/256,A=e[50790],k[102e3]=(0|O(k[102036],O(A,-3)+256|0))/256,void(k[101999]=(0|O(k[102035],O(A,-6)+256|0))/256)}e[50759]&&(e[54728]=e[50982],A=e[50979],t=e[50978],eA(205184,0,11e3),e[51293]=0,A=(t=(s=(0|(r=e[50789]))>0)?130:(0|t)>=5499?5499:t)?s?r:(0|A)>=100?100:A:0,e[50755]=A,t=(0|O(t,e[50754]))/1e3|0,e[51292]=t,e[54729]=(0|A)>20?t<<1:A?t:0,e[33037]=(0|O(500-A|0,(0|O(u[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16|0))/500)}return}e[33037]=(0|O(u[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16}function Gt(A,t,r){var s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0;r&&(e[r>>2]=0);e:{A:if(!((0|(s=d[0|A]))<0)){for(;;){if((0|(l=255&s))==32|l-9>>>0<5){if((0|(s=d[0|(A=A+1|0)]))>=0)continue;break A}break}if(!(255&s))break e}for(;;){if((0|(s=m=255&s))==32|s-9>>>0<5)break e;if((0|m)!=124||(0|(s=u[0|(l=A+1|0)]))==124){A:{if((0|(M=e[36115]))>=2){for(s=1,l=-1,I=0;;){r:if(!(!(b=e[144464+(s<<2)>>2])|u[b+11|0]==15)){f=e[b>>2];a:{n:{if(m>>>0>=33){if(G=0,c=0,(255&f)==(0|m)&&(c=1,(o=u[A+1|0])>>>0<33|(0|o)!=(f>>>8&255)||(c=2,(o=u[A+2|0])>>>0<33|(0|o)!=(f>>>16&255)||(c=(o=(o=u[A+3|0])>>>0>32&(0|o)==(f>>>24|0))?4:3,G=0-o|0))),(0|l)>=(0|c))break r;if(o=4,!(1&G))break n;break a}if(c=0,(0|l)>=0)break r}if(f>>>((o=c)<<3)&255)break r}I=u[b+10|0],l=o}if((0|M)==(0|(s=s+1|0)))break}if(I)break A}return r&&zA(r,A),void(d[0|t]=0)}d[0|t]=I,A=((0|l)<=1?1:l)+A|0,t=l=t+1|0;A:if((0|I)==21){r:if((0|(o=u[0|A]))==32|o-9>>>0<5)s=l;else if(s=l,o)for(;;){if(d[0|s]=vs(o),s=s+1|0,(0|(o=u[0|(A=A+1|0)]))==32|o-9>>>0<5)break r;if(!o)break}if(d[0|s]=0,!o){if(t=s,tr(l,85593))break A;return void(d[0|l]=0)}d[0|s]=124,t=s+1|0}s=u[0|A]}else A=l;if(!(255&s))break}}d[0|t]=0}function Qs(A,t){var r=0,s=0,o=0,l=0,c=0;e:{A:{r:{a:{n:switch((0|(r=e[A+4>>2]))==e[A+104>>2]?r=Me(A):(e[A+4>>2]=r+1,r=u[0|r]),r-43|0){case 0:case 2:break n;default:break a}if(l=(0|r)==45,c=!t,(0|(r=e[A+4>>2]))==e[A+104>>2]?r=Me(A):(e[A+4>>2]=r+1,r=u[0|r]),c|(t=r-58|0)>>>0>4294967285)break r;if(e[A+116>>2]<0)break A;e[A+4>>2]=e[A+4>>2]-1;break A}t=r-58|0}if(!(t>>>0<4294967286)){if((t=r-48|0)>>>0<10){for(;o=(0|(s=(s=O(s,10)+r|0)-48|0))<214748364,(0|(t=e[A+4>>2]))==e[A+104>>2]?r=Me(A):(e[A+4>>2]=t+1,r=u[0|t]),o&(t=r-48|0)>>>0<=9;);o=s>>31}r:if(!(t>>>0>=10))for(;;){if(t=(s=st(s,o,10,0))+r|0,r=me,r=t>>>0>>0?r+1|0:r,s=t-48|0,o=r-(t>>>0<48)|0,(0|(t=e[A+4>>2]))==e[A+104>>2]?r=Me(A):(e[A+4>>2]=t+1,r=u[0|t]),(t=r-48|0)>>>0>9)break r;if(!(s>>>0<2061584302&(0|o)<=21474836|(0|o)<21474836))break}if(t>>>0<10)for(;(0|(t=e[A+4>>2]))==e[A+104>>2]?t=Me(A):(e[A+4>>2]=t+1,t=u[0|t]),t-48>>>0<10;);(0|(t=e[A+116>>2]))>0|(0|t)>=0&&(e[A+4>>2]=e[A+4>>2]-1),A=s,s=l?0-A|0:A,o=l?0-(!!(0|A)+o|0)|0:o;break e}}if(o=-2147483648,!(e[A+116>>2]<0))return e[A+4>>2]=e[A+4>>2]-1,me=-2147483648,0}return me=o,s}function Is(A){var t=0,r=0,s=0,o=0;if(e[36432]=110,e[36433]=100,e[36434]=450,e[36430]=5,t=e[203136+((0|A)==2?32:8)>>2],s=e[32972],(0|(r=e[s+84>>2]))>0&&(t=(0|O(t,r))/100|0),r=(0|t)>=359?359:t,r=(0|(t=(0|t)>=450?450:t))>399?6:(0|t)>379?7:u[((0|r)<=80?80:r)+101856|0],1&A&&(e[32526]=(0|O(r,e[s+72>>2]))/256,e[32527]=(0|O(r,e[s+76>>2]))/256,e[32528]=(0|O(r,e[s+80>>2]))/256,r>>>0>7||(o=r-1|0,e[32528]=o,e[32526]=r,e[32527]=o)),2&A){A=e[s+72>>2];e:{A:{r:{a:{n:{o:{c:{u:{if((0|t)>=351)s=t-350|0,e[36432]=85-(((255&s)>>>0)/3|0)&255,s=60-(s>>>3|0)|0;else{if((0|t)<251)break u;s=t-250|0,e[36432]=110-(s>>>2|0),s=110-(s>>>1|0)|0}if(e[36433]=s,A=(0|O(A,r))/256|0,e[36431]=110+((0|O(A,150))/128|0),t>>>0<=349)break c;if(r=t-350|0,e[36431]=u[r+102224|0],t>>>0<390)break n;if(e[36434]=450+((t+112<<24>>24)/-2<<24>>24),t>>>0<441)break o;e[36434]=860-t,A=12;break A}A=(0|O(A,r))/256|0,e[36431]=(0|t)>=170?110+((0|O(A,150))/128|0)|0:128+((A<<7)/130|0)|0}A=(A<<8)/115|0;break A}if(A=12,t>>>0>430)break A;if(A=13,t>>>0<=400)break a;break A}if(A=(A<<8)/115|0,e[36428]=A,t>>>0<375)break r}A=14;break A}if((0|t)<351)break e;A=u[r+102336|0]}e[36428]=A}e[36429]=(0|A)<=16?16:A}}function vr(A,t,r){var s,o,l,c;s=.000244140625*+e[50767],T[r>>3]=s,T[r+40>>3]=.015625*+e[A+112>>2],T[r+48>>3]=.015625*+e[A+276>>2],T[r+56>>3]=.00390625*+(0|O(k[A+166>>1],k[t+4>>1]))+ +k[A+220>>1],T[r+64>>3]=.00390625*+(0|O(k[A+168>>1],k[t+6>>1]))+ +k[A+222>>1],T[r+72>>3]=.00390625*+(0|O(k[A+170>>1],k[t+8>>1]))+ +k[A+224>>1],T[r+80>>3]=.00390625*+(0|O(k[A+172>>1],k[t+10>>1]))+ +k[A+226>>1],T[r+88>>3]=.00390625*+(0|O(k[A+174>>1],k[t+12>>1]))+ +k[A+228>>1],o=k[A+230>>1],l=k[A+176>>1],c=k[t+14>>1],e[r+112>>2]=0,e[r+116>>2]=1080623104,e[r+104>>2]=0,e[r+108>>2]=1081032704,T[r+96>>3]=.00390625*+(0|O(l,c))+ +(0|o),u[t+40|0]?(e[r+184>>2]=0,e[r+188>>2]=1072693248,T[r+104>>3]=u[t+40|0]<<1):(e[r+184>>2]=0,e[r+188>>2]=0),T[r+120>>3]=.00390625*+k[A+202>>1]*+(u[t+35|0]<<1),T[r+128>>3]=.00390625*+k[A+204>>1]*+(u[t+36|0]<<1),T[r+136>>3]=.00390625*+k[A+206>>1]*+(u[t+37|0]<<1),t=u[t+38|0],A=k[A+208>>1],e[r+176>>2]=0,e[r+180>>2]=1079574528,e[r+160>>2]=0,e[r+164>>2]=1083129856,e[r+152>>2]=0,e[r+156>>2]=1083129856,e[r+352>>2]=0,e[r+356>>2]=1072693248,e[r+168>>2]=0,e[r+172>>2]=1079574528,T[r+144>>3]=.00390625*+(0|A)*+(t<<1),A=e[50779],T[r+368>>3]=s,T[r+360>>3]=+(0|A)/100*3}function ws(A){var t=0;aA(A,Xr(A));e:{A:{r:{a:{n:{o:{c:{u:{l:{i:{if((0|(A=-1048576&me))<268435455|(0|A)<=268435455){p:{C:{if((0|A)<33554431|(0|A)<=33554431){if((0|A)<8388607|(0|A)<=8388607){if(t=524328,!0&(0|A)==-2147483648)break e;if(0|(0|A)!=-2143289344)break A;return 557096}if(!0&(0|A)==8388608)break C;if(0|(0|A)!=16777216)break A;return 524358}if((0|A)>71303167)break p;if(!0&(0|A)==33554432)break r;if(0|(0|A)!=67108864)break A}return 266270}if(!0&(0|A)==71303168)break i;if(!0&(0|A)==134217728)break a;if(0|(0|A)!=138412032)break A;return 294942}if((0|A)<542113791|(0|A)<=542113791){if((0|A)<536870911|(0|A)<=536870911){if(!0&(0|A)==268435456)break n;if(0|(0|A)!=272629760)break A;return 299028}if(!0&(0|A)==536870912)break c;if(!0&(0|A)==538968064)break o;if(0|(0|A)!=541065216)break A;return 569389}if((0|A)<1075838975|(0|A)<=1075838975){if(!0&(0|A)==542113792)break i;if(0|(0|A)!=1073741824)break A;return 532520}if(!0&(0|A)==1075838976)break u;if(!0&(0|A)==1077936128)break l;if(0|(0|A)!=1078984704)break A}return 299038}return 565288}return 1581096}return 536621}return 1585197}return 266260}return 262174}return 2396190}t=16384}return t}function mr(A,t,r,s,o,l){var c,f,m=0,I=0,b=0,M=0;if(f=8388607&A,I=e[34456],m=u[0|(A=f+I|0)]|u[A+1|0]<<8){c=!(b=u[A+2|0]),A=e[36434]<0?(0|O(r,o))/256|0:r,r=(0|O(o,e[36431]))/256|0,r=(0|A)<(0|(r=(4&s)>>>2|0&&(0|r)>(0|o)?o:r))?r:A,b||(m=m>>>1|0,r=(0|r)/2|0);e:if(!((0|l)<0)){if(s=f+4|0,256&t)A=e[50758],e[36439]=A,e[(t=216192+(A<<4)|0)>>2]=7,e[t+8>>2]=s+I,e[t+4>>2]=m<<16|r,l=b|l<<8;else{if(A=e[50758],e[36439]=A,e[(A=216192+(A<<4)|0)>>2]=6,l=b|l<<8,e[A+12>>2]=l,e[A+8>>2]=s+I,I=A,A=O(t=m>>>2|0,3),o=(0|r)>(0|m),e[I+4>>2]=o?A:r,I=e[50758]+1|0,e[50758]=(0|I)<=169?I:0,(0|A)<(0|(r=o?r-A|0:0)))for(o=t<<1,b=s+(b?t:o)|0;t=e[50758],e[36439]=t,e[(t=216192+(t<<4)|0)>>2]=6,e[t+4>>2]=o,e[t+12>>2]=l,e[t+8>>2]=b+e[34456],t=e[50758]+1|0,e[50758]=(0|t)<=169?t:0,(0|A)<(0|(r=r-o|0)););if((0|r)<=0)break e;A=e[50758],e[36439]=A,e[(t=216192+(A<<4)|0)>>2]=6,e[t+4>>2]=r,e[t+8>>2]=e[34456]+(s+(m-r<>2]=l,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0}}}function SA(A,t,r){var s,o=0,l=0;if(r>>>0>=512)return Fe(0|A,0|t,0|r),A;s=A+r|0;e:if(3&(A^t))if(s>>>0<4)r=A;else if((o=s-4|0)>>>0>>0)r=A;else for(r=A;d[0|r]=u[0|t],d[r+1|0]=u[t+1|0],d[r+2|0]=u[t+2|0],d[r+3|0]=u[t+3|0],t=t+4|0,o>>>0>=(r=r+4|0)>>>0;);else{A:if(3&A)if(r)for(r=A;;){if(d[0|r]=u[0|t],t=t+1|0,!(3&(r=r+1|0)))break A;if(!(r>>>0>>0))break}else r=A;else r=A;if(!((o=-4&s)>>>0<64||(l=o+-64|0)>>>0>>0))for(;e[r>>2]=e[t>>2],e[r+4>>2]=e[t+4>>2],e[r+8>>2]=e[t+8>>2],e[r+12>>2]=e[t+12>>2],e[r+16>>2]=e[t+16>>2],e[r+20>>2]=e[t+20>>2],e[r+24>>2]=e[t+24>>2],e[r+28>>2]=e[t+28>>2],e[r+32>>2]=e[t+32>>2],e[r+36>>2]=e[t+36>>2],e[r+40>>2]=e[t+40>>2],e[r+44>>2]=e[t+44>>2],e[r+48>>2]=e[t+48>>2],e[r+52>>2]=e[t+52>>2],e[r+56>>2]=e[t+56>>2],e[r+60>>2]=e[t+60>>2],t=t- -64|0,l>>>0>=(r=r- -64|0)>>>0;);if(r>>>0>=o>>>0)break e;for(;e[r>>2]=e[t>>2],t=t+4|0,o>>>0>(r=r+4|0)>>>0;);}if(r>>>0>>0)for(;d[0|r]=u[0|t],t=t+1|0,(0|s)!=(0|(r=r+1|0)););return A}function Gr(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0;F(+A),t=0|B(1),B(0);e:{if((s=(t=t>>>20&2047)-969|0)>>>0<63)m=t;else{if((0|s)<0)return A+1;if(!(t>>>0<1033)){if(F(+A),s=0|B(1),r=0,!(0|B(0))&(0|s)==-1048576)break e;return t>>>0>=2047?A+1:(0|s)<0?(T[(t=H-16|0)+8>>3]=12882297539194267e-247,12882297539194267e-247*T[t+8>>3]):(T[(t=H-16|0)+8>>3]=3105036184601418e216,3105036184601418e216*T[t+8>>3])}}if(r=T[14409],l=(r=(A=(r=(o=T[14408]*A+r)-r)*T[14411]+(r*T[14410]+A))*A)*r*(A*T[14415]+T[14414]),r*=A*T[14413]+T[14412],F(+o),B(1),f=0|B(0),A=l+(r+(T[(s=f<<4&2032)+115376>>3]+A)),c=e[(s=s+115384|0)>>2],t=(f<<13)+(t=e[s+4>>2])|0,t=(s=(s=c)+(c=0)|0)>>>0>>0?t+1|0:t,!m)return-2147483648&f?(x(0,0|s),x(1,t+1071644672|0),(A=(o=(r=+S())*A)+r)<1&&(e[(t=H-16|0)+8>>2]=0,e[t+12>>2]=1048576,T[t+8>>3]=22250738585072014e-324*T[t+8>>3],A=(A=(l=A+1)+(o+(r-A)+(A+(1-l)))+-1)==0?0:A),A*=22250738585072014e-324):(x(0,0|s),x(1,t-1058013184|0),A=5486124068793689e288*((r=+S())*A+r)),A;x(0,0|s),x(1,0|t),r=(r=+S())*A+r}return r}function es(A,t){var r,s=0,o=0,l=0,c=0;H=r=H-16|0;e:{if(Ls(84270,d[0|t])){if(o=2,Ls(t,43)||(o=u[0|t]!=114),o=Ls(t,120)?128|o:o,l=o=Ls(t,101)?524288|o:o,c=64|o,l=(0|(o=u[0|t]))==114?l:c,l=(0|o)==119?512|l:l,e[r>>2]=438,e[r+4>>2]=0,(A=0|ue(-100,0|A,32768|((0|o)==97?1024|l:l),0|r))>>>0>=4294963201&&(e[56798]=0-A,A=-1),(0|A)<0)break e;H=o=H-32|0;A:{r:{if(Ls(84270,d[0|t])){if(s=it(1176))break r}else e[56798]=28;t=0;break A}eA(s,0,144),Ls(t,43)||(e[s>>2]=u[0|t]==114?8:4),u[0|t]==97?(1024&(t=0|Qe(0|A,3,0))||(t|=1024,e[o+16>>2]=t,e[o+20>>2]=t>>31,Qe(0|A,4,o+16|0)),t=128|e[s>>2],e[s>>2]=t):t=e[s>>2],e[s+80>>2]=-1,e[s+48>>2]=1024,e[s+60>>2]=A,e[s+44>>2]=s+152,8&t||(e[o>>2]=o+24,e[o+4>>2]=0,0|xe(0|A,21523,0|o)||(e[s+80>>2]=10)),e[s+40>>2]=10,e[s+36>>2]=11,e[s+32>>2]=12,e[s+12>>2]=13,u[227205]||(e[s+76>>2]=-1),e[s+56>>2]=e[56816],(t=e[56816])&&(e[t+52>>2]=s),e[56816]=s,t=s}if(H=o+32|0,s=t)break e;De(0|A)}else e[56798]=28;s=0}return H=r+16|0,s}function La(A,t,r){var s,o=0,l=0,c=0,f=0,m=0;if(c=A,H=s=H-208|0,e[s+8>>2]=1,e[s+12>>2]=0,f=t<<2){for(e[s+16>>2]=4,e[s+20>>2]=4,t=4,o=4,l=2;A=t,t=(o+4|0)+t|0,e[(s+16|0)+(l<<2)>>2]=t,l=l+1|0,o=A,t>>>0>>0;);if((A=(c+f|0)-4|0)>>>0<=c>>>0)l=0,t=1,A=0;else{for(l=1,t=1;3&~l?($[(s+16|0)+((o=t-1|0)<<2)>>2]>=A-c>>>0?kr(c,r,s+8|0,t,0,s+16|0):wa(c,r,t,s+16|0),(0|t)!=1?(pn(s+8|0,o),t=1):(pn(s+8|0,1),t=0)):(wa(c,r,t,s+16|0),di(s+8|0,2),t=t+2|0),l=1|(o=e[s+8>>2]),e[s+8>>2]=l,A>>>0>(c=c+4|0)>>>0;);l=o>>>0>1,A=e[s+12>>2]!=0}if(kr(c,r,s+8|0,t,0,s+16|0),l|(0|t)!=1|A)for(;(0|t)<=1?(di(o=s+8|0,A=ce(o)),l=e[s+8>>2],A=A+t|0):(pn(o=s+8|0,2),e[s+8>>2]=7^e[s+8>>2],di(o,1),kr((m=c-4|0)-e[(f=s+16|0)+((A=t-2|0)<<2)>>2]|0,r,o,t-1|0,1,f),pn(o,1),l=1|e[s+8>>2],e[s+8>>2]=l,kr(m,r,o,A,1,f)),t=A,c=c-4|0,e[s+12>>2]|(0|t)!=1|(0|l)!=1;);}H=s+208|0}function ba(A,t,r,s){var o,l=0,c=0,f=0;H=o=H-32|0,f=l=2147483647&s,c=l-1006698496|0;e:if(0|(l=l-1140785152|0)>>>0>c>>>0){if(l=r<<4|t>>>28,r=s<<4|r>>>28,(0|(t&=268435455))==134217728&!!(0|A)|t>>>0>134217728){c=r+1073741824|0,c=(l=l+1|0)?c:c+1|0;break e}if(c=r+1073741824|0,A|(0|t)!=134217728)break e;c=(A=1&l)>>>0>(l=A+l|0)>>>0?c+1|0:c}else(!r&(0|f)==2147418112?!(A|t):f>>>0<2147418112)?(l=0,c=2146435072,f>>>0>1140785151||(c=0,(f=f>>>16|0)>>>0<15249||(Pt(o+16|0,A,t,r,l=65535&s|65536,f-15233|0),xr(o,A,t,r,l,15361-f|0),l=(t=e[o+8>>2])<<4,t=e[o+12>>2]<<4|t>>>28,r=e[o>>2],f=c=e[o+4>>2],l|=c>>>28,c=t,(0|(A=268435455&f))==134217728&!!(0|(t=r|!!(e[o+16>>2]|e[o+24>>2]|e[o+20>>2]|e[o+28>>2])))|A>>>0>134217728?c=(l=l+1|0)?c:c+1|0:t|(0|A)!=134217728||(c=(A=l)>>>0>(l=l+(1&l)|0)>>>0?c+1|0:c)))):(l=r<<4|t>>>28,c=524287&(A=s<<4|r>>>28)|2146959360);return H=o+32|0,x(0,0|l),x(1,-2147483648&s|c),+S()}function _a(A){var t,r=0,s=0,o=0,l=0,c=0;if(F(+A),c=0|B(1),o=0|B(0),(0|(l=c>>>20&2047))==2047)return(A*=1)/A;if(!(s=o<<1)&(0|(r=c<<1|o>>>31))==2145386496|r>>>0<2145386496)return!s&(0|r)==2145386496?0*A:A;if(l)r=1048575&c|1048576;else{if(l=0,s=o<<12,(0|(r=c<<12|o>>>20))>0|(0|r)>=0)for(;l=l-1|0,r=r<<1|s>>>31,s<<=1,(0|r)>0|(0|r)>=0;);s=31&(r=1-l|0),(63&r)>>>0>=32?(r=o<>>32-s|c<1023){for(;;){if(!((0|(o=r+-1048576|0))<0||(r=o)|s))return 0*A;if(r=r<<1|s>>>31,s<<=1,!((0|(l=l-1|0))>1023))break}l=1023}if(!((0|(o=r+-1048576|0))<0||(r=o)|s))return 0*A;if((0|r)==1048575|r>>>0<1048575)for(;l=l-1|0,o=r>>>0<524288,r=r<<1|s>>>31,s<<=1,o;);return t=-2147483648&c,(0|l)>0?r=r+-1048576|l<<20:(o=1-l|0,c=r,l=s,s=31&o,(63&o)>>>0>=32?(r=0,s=c>>>s|0):(r=c>>>s|0,s=((1<>>s)),x(0,0|s),x(1,r|t),+S()}function Fs(A,t,r,s,o){var l,c=0,f=0;H=l=H-160|0;e:{A:{r:{a:switch((c=u[t+10|0])-15|0){case 6:break r;case 0:break a;default:break A}d[0|A]=0;break e}e[l>>2]=O(u[r+7|0],44)+137856,cA(A,86002,l),A=BA(A)+A|0;break e}if(s){if(d[l+140|0]=0,r?KA(0,0,r,l+8|0,0):Nn(c,l+8|0),r=l+140|0,c=u[l+140|0]){if((0|c)==32){d[0|A]=0;break e}224&(c=c<<24>>24)||(o&&(e[o>>2]=c),r=l+141|0)}if(!((0|(o=BA(r)))<=0)){A=DA(A,r)+o|0,d[0|A]=0;break e}}o=0;A:if(!(!(r=255&(c=e[t>>2]))|(0|r)==47)){if(s){if((0|(f=255&c))==95)break A;r:{a:{if((0|f)==35){if(f=3,u[t+11|0]!=2)break a;break A}if((f=r-32|0)>>>0>95)break r}r=y[93952+(f<<1)>>1]}o=Ar(r,A)}else d[0|A]=c,o=1;for(;;){if(!(r=255&(c>>=8))|(0|r)==47)break A;if(s){if((0|r)==35&u[t+11|0]==2)break A;if(r-48>>>0<10)continue;(f=r-32|0)>>>0<=95&&(r=y[93952+(f<<1)>>1]),o=Ar(r,A+o|0)+o|0}else d[A+o|0]=c,o=o+1|0}}d[0|(A=A+o|0)]=0}return H=l+160|0,A}function Aa(A){var t,r=0;t=A,r=131280;e:{A:{if(!((0|A)<=1023||(r=131300,A>>>0<1328||(r=131320,A>>>0<1424||(r=131340,A>>>0<1536||(r=131360,A>>>0<1792||(r=131380,A>>>0<1872||(r=131400,A>>>0<2432||(r=131420,A>>>0<2560||(r=131440,A>>>0<2688||(r=131460,A>>>0<2816||(r=131480,A>>>0<2944||(r=131500,A>>>0<3072||(r=131520,A>>>0<3200||(r=131540,A>>>0<3328||(r=131560,A>>>0<3456||(r=131580,A>>>0<3584||(r=131600,A>>>0<3712||(r=131620,A>>>0<3840||(r=131640,A>>>0<4096||(r=131660,A>>>0<4256||(r=131680,A>>>0<4352||(r=131700,A>>>0<4608||(r=131720,A>>>0<5024||(r=131740,A>>>0<10496||(r=131760,A>>>0<12544||(r=131780,A>>>0<40960))))))))))))))))))))))))))){if(A>>>0>=55296)break A;r=131800}if((0|t)>=y[(A=r)+8>>1])break e}A=0}return A}function ta(A,t,r){var s,o=0,l=0,c=0,f=0;H=s=H-208|0,d[s+80|0]=0;e:{if((o=t-224|0)>>>0<=158)t=101072+(o<<1)|0;else{if((t=t-592|0)>>>0>88)break e;t=101392+(t<<1)|0}if(t=y[t>>1]){if(c=t<<16>>16,f=(o=63&t)>>>0>37?o+59|0:k[101584+(o<<1)>>1],o=t>>>6|0,(0|c)<0)o=59+(63&o)|0,t=t>>>12&7;else{if(!(l=31&o))break e;o=0,t=t>>>11&15}(l=TA(A,e[129920+(l<<3)>>2],s+112|0))&&ks(A,f,s+176|0)&&(t&&4096&TA(A,e[129920+(t<<3)>>2],s+80|0)&&(r=BA(t=DA(r,s+80|0)),d[s+80|0]=0,r=t+r|0),o?(ks(t=A,o,A=s+144|0),e[s+68>>2]=s+80,e[s- -64>>2]=A,e[s+60>>2]=6,e[s+52>>2]=23,e[s+56>>2]=s+176,e[s+48>>2]=s+112,cA(r,84101,s+48|0)):(0|c)<0?DA(r,s+176|0):1&e[A+144>>2]|4096&l?(e[s+36>>2]=23,e[s+40>>2]=6,e[s+44>>2]=s+176,e[s+32>>2]=s+112,cA(r,84430,s+32|0)):(e[s+16>>2]=23,e[s+8>>2]=23,e[s>>2]=4,e[s+12>>2]=s+112,e[s+4>>2]=s+176,cA(r,84802,s)))}}H=s+208|0}function Ia(){uA(),e[55928]=0,e[55926]=0,e[55927]=0,e[55924]=0,e[56244]=0,e[56245]=0,e[56246]=0,e[56247]=0,e[56260]=0,e[56261]=0,e[56262]=0,e[56263]=0,e[56276]=0,e[56277]=0,e[56278]=0,e[56279]=0,e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,e[55988]=0,e[55989]=0,e[55990]=0,e[55991]=0,e[56004]=0,e[56005]=0,e[56006]=0,e[56007]=0,e[56020]=0,e[56021]=0,e[56022]=0,e[56023]=0,e[56036]=0,e[56037]=0,e[56038]=0,e[56039]=0,e[56052]=0,e[56053]=0,e[56054]=0,e[56055]=0,e[56068]=0,e[56069]=0,e[56070]=0,e[56071]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0}function Ra(A,t){var r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0;e:{if((0|(l=e[A+4>>2]))==e[A>>2])if((c=e[A+8>>2])>>>0<(r=e[A+12>>2])>>>0)r=(o=(1+(r-c>>2)|0)/2<<2)+c|0,(0|l)!=(0|c)&&(ze(r=r-(s=c-l|0)|0,l,s),l=e[A+8>>2]),e[A+4>>2]=r,e[A+8>>2]=o+l;else{if((s=(0|r)==(0|l)?1:r-l>>1)>>>0>=1073741824)break e;if(b=(m=gs(r=s<<2))+r|0,f=r=(s+3&-4)+m|0,(0|l)!=(0|c)){if(M=-4&(c=c-l|0),o=r,s=l,c=1+((I=c-4|0)>>>2|0)&7)for(f=0;e[o>>2]=e[s>>2],s=s+4|0,o=o+4|0,(0|c)!=(0|(f=f+1|0)););if(f=r+M|0,!(I>>>0<28))for(;e[o>>2]=e[s>>2],e[o+4>>2]=e[s+4>>2],e[o+8>>2]=e[s+8>>2],e[o+12>>2]=e[s+12>>2],e[o+16>>2]=e[s+16>>2],e[o+20>>2]=e[s+20>>2],e[o+24>>2]=e[s+24>>2],e[o+28>>2]=e[s+28>>2],s=s+32|0,(0|f)!=(0|(o=o+32|0)););}e[A+12>>2]=b,e[A+8>>2]=f,e[A+4>>2]=r,e[A>>2]=m,l&&(FA(l),r=e[A+4>>2])}else r=l;return e[r-4>>2]=e[t>>2],void(e[A+4>>2]=e[A+4>>2]-4)}Li(),R()}function ja(A,t,r){var s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0;e:{A:{r:{a:{n:{o:{c:{u:{l:{if(t){if(!r)break l;break u}return oA=(t=A)-O(A=(A>>>0)/(r>>>0)|0,r)|0,fA=0,me=0,A}if(!A)break c;break o}if(!((s=r-1|0)&r))break n;l=0-(c=(be(r)+33|0)-be(t)|0)|0;break r}return oA=0,fA=t-O(A=(t>>>0)/0|0,0)|0,me=0,A}if((s=32-be(t)|0)>>>0<31)break a;break A}if(oA=A&s,fA=0,(0|r)==1)break e;return r=31&(s=hi(r)),(63&s)>>>0>=32?A=t>>>r|0:(o=t>>>r|0,A=((1<>>r),me=o,A}c=s+1|0,l=63-s|0}if(s=31&(o=63&c),o>>>0>=32?(o=0,f=t>>>s|0):(o=t>>>s|0,f=((1<>>s),s=31&(l&=63),l>>>0>=32?(t=A<>>32-s|t<>>31,f=(o=f<<1|t>>>31)-(I=r&(l=b-(m+(o>>>0>s>>>0)|0)>>31))|0,o=m-(o>>>0>>0)|0,t=t<<1|A>>>31,A=M|A<<1,M=m=1&l,c=c-1|0;);return oA=f,fA=o,me=t<<1|A>>>31,m|A<<1}oA=A,fA=t,A=0,t=0}return me=t,A}function Wa(A,t){var r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0;e:{if((0|(r=e[A+8>>2]))==e[A+12>>2])if((s=e[A+4>>2])>>>0>(c=e[A>>2])>>>0)o=ze((l=(1+(s-c>>2)|0)/-2<<2)+s|0,s,r=r-s|0)+r|0,e[A+8>>2]=o,e[A+4>>2]=l+e[A+4>>2];else{if((l=(0|r)==(0|c)?1:r-c>>1)>>>0>=1073741824)break e;if(b=(f=gs(o=l<<2))+o|0,o=l=(-4&l)+f|0,(0|r)!=(0|s)){if(M=-4&(r=r-s|0),I=1+((m=r-4|0)>>>2|0)&7)for(o=0,r=l;e[r>>2]=e[s>>2],s=s+4|0,r=r+4|0,(0|I)!=(0|(o=o+1|0)););else r=l;if(o=l+M|0,!(m>>>0<28))for(;e[r>>2]=e[s>>2],e[r+4>>2]=e[s+4>>2],e[r+8>>2]=e[s+8>>2],e[r+12>>2]=e[s+12>>2],e[r+16>>2]=e[s+16>>2],e[r+20>>2]=e[s+20>>2],e[r+24>>2]=e[s+24>>2],e[r+28>>2]=e[s+28>>2],s=s+32|0,(0|o)!=(0|(r=r+32|0)););}e[A+12>>2]=b,e[A+8>>2]=o,e[A+4>>2]=l,e[A>>2]=f,c&&(FA(c),o=e[A+8>>2])}else o=r;return e[o>>2]=e[t>>2],void(e[A+8>>2]=e[A+8>>2]+4)}Li(),R()}function Ss(A,t){var r,s=0,o=0,l=0,c=0,f=0;o=189088,H=r=H-320|0,e[r+312>>2]=0,l=$s(A,c=DA(r+112|0,189088),r,r+316|0,r+312|0,0),s=e[r+316>>2];e:if((0|t)<=3){if((0|s)<2)break e;if(l=3&(t=s-1|0),A=1,s-2>>>0>=3)for(f=-4&t,t=0;d[0|(s=A+r|0)]>=4&&(d[0|s]=3),d[(s=A+r|0)+1|0]>=4&&(d[s+1|0]=3),d[s+2|0]>=4&&(d[s+2|0]=3),d[s+3|0]>=4&&(d[s+3|0]=3),A=A+4|0,(0|f)!=(0|(t=t+4|0)););if(!l)break e;for(t=0;d[0|(s=A+r|0)]>=4&&(d[0|s]=3),A=A+1|0,(0|l)!=(0|(t=t+1|0)););}else if(A=1,!((0|s)<=1)){for(;;){if((0|l)>d[0|(f=A+r|0)]){if((0|s)!=(0|(A=A+1|0)))continue;break e}break}d[0|f]=t}if(A=u[0|c])for(t=1;s=e[144464+((255&A)<<2)>>2],u[s+11|0]!=2|16&u[s+6|0]||(l=255&(s=d[t+r|0]),(0|s)<2&&l||(d[0|o]=u[l+94151|0],o=o+1|0,A=u[0|c]),t=t+1|0),d[0|o]=A,o=o+1|0,A=u[0|(c=c+1|0)];);d[0|o]=0,H=r+320|0}function Ne(A){var t=0,r=0,s=0,o=0,l=0,c=0;r=t=e[(A|=0)>>2],e[A>>2]=t+1;e:{A:{r:{a:{n:{o:{c:switch(((l=u[0|t])>>>4|0)-8|0){case 0:case 1:case 2:case 3:break A;case 7:break n;case 6:break o;case 4:case 5:break c;default:break e}if((s=t+2|0)>>>0>=(o=e[A+4>>2])>>>0)break a;if(e[A>>2]=s,(192&(r=u[r+1|0]))!=128)break r;return 63&r|l<<6&1984}if((s=t+3|0)>>>0>=(o=e[A+4>>2])>>>0)break a;if(r=t+2|0,e[A>>2]=r,(192&(t=u[t+1|0]))!=128){s=r;break r}if(e[A>>2]=s,(192&(r=u[0|r]))!=128)break r;return 63&r|(63&t|l<<6&960)<<6}if(!((o=e[A+4>>2])>>>0<=(r=t+4|0)>>>0)){if(s=t+2|0,e[A>>2]=s,(192&(o=u[t+1|0]))!=128||(s=t+3|0,e[A>>2]=s,(192&(c=u[t+2|0]))!=128)||(e[A>>2]=r,t=u[0|s],s=r,(192&t)!=128))break r;return 0|((A=63&t|c<<6&4032|(63&o|l<<6&960)<<12)>>>0>=1114112?65533:A)}}e[A>>2]=o;break A}e[A>>2]=s-1}l=65533}return 0|l}function Z(A,t,r,s){var o,l,c=0,f=0,m=0,I=0,b=0,M=0;if(H=o=H-432|0,!(!s|!(536870912&(l=nA(A,t,r,s))))&&(k[o+48>>1]=8192,s=DA(o+48|2,s),u[0|s])){for(m=o+224|0,c=1,I=200;;){if(zA(o+44|0,s),t=Es(e[o+44>>2]),f=e[r>>2],t?(e[r>>2]=2|f,Ar(vs(e[o+44>>2]),s)):e[r>>2]=-3&f,M=e[33264],nA(A,s,r,0),1&c?(e[o+16>>2]=189088,f=zs(m,I,84130,o+16|0)):(e[o+32>>2]=15,e[o+36>>2]=189088,f=zs(m,I,84434,o+32|0)),c=(t=e[33264])+1|0,e[33264]=c,t>>>0<=2147483646){for(;;)if(t=s,s=s+1|0,(0|(b=d[0|t]))==32|b-9>>>0<5){for(;t=(s=t)+1|0,(0|(b=d[0|s]))==32|b-9>>>0<5;);if(c=c-1|0,e[33264]=c,!((0|c)>0))break}}if(m=m+f|0,e[33264]=M,!(u[0|s]&&(c=0,(0|(I=I-f|0))>1)))break}(o+224|0)!=(0|m)&&(e[o>>2]=o+224,zs(189088,200,84130,o))}return H=o+432|0,l}function le(A,t,r,s,o,l,c,f){var m,I;m=e[32972],I=e[m+116>>2],k[A+8>>1]=y[A+8>>1]+l,l=32&f?0-l|0:l,k[A+10>>1]=l+y[A+10>>1],k[A+12>>1]=l+y[A+12>>1],s=(0|s)>(0|(l=((l=(0|O(t,I))/256|0)-(t=k[A+6>>1])|0)/2|0))?l:s,k[A+6>>1]=((0|r)<(0|s)?s:r)+t;e:{A:switch(o-1|0){case 0:t=(0|(t=235-(r=k[A+4>>1])|0))<=-100?-100:t,k[A+4>>1]=((0|t)>=-60?-60:t)+r;break e;case 1:t=(0|(t=(0|(t=235-(r=k[A+4>>1])|0))<=-300?-300:t))>=-150?-150:t,k[A+4>>1]=t+r,k[A+2>>1]=t+y[A+2>>1];break e;case 2:break A;default:break e}t=(0|(t=(0|(t=100-(r=k[A+4>>1])|0))<=-400?-400:t))>-300?-400:t,k[A+4>>1]=t+r,k[A+2>>1]=t+y[A+2>>1]}e[m+132>>2]||(d[A+20|0]=(O(u[A+20|0],c)>>>0)/100,d[A+21|0]=(O(u[A+21|0],c)>>>0)/100,d[A+22|0]=(O(u[A+22|0],c)>>>0)/100,d[A+23|0]=(O(u[A+23|0],c)>>>0)/100,d[A+24|0]=(O(u[A+24|0],c)>>>0)/100,d[A+25|0]=(O(u[A+25|0],c)>>>0)/100)}function we(A){var t,r=0,s=0,o=0,l=0;H=t=H-48|0;e:{if(A){u[0|A]||(A=cn(84285),u[0|A]&&A||(A=cn(121696),u[0|A]&&A||(A=cn(84614),u[0|A]&&A||(A=84891))));A:{for(;;){if(!(!(s=u[A+r|0])|(0|s)==47)){if(o=23,(0|(r=r+1|0))!=23)continue;break A}break}o=r}s=84891;A:{r:{if(r=u[0|A],(u[A+o|0]|(0|r)==46||(s=A,(0|r)==67))&&!u[s+1|0]||!tr(s,84891)||!tr(s,85136)){if(r=121652,u[s+1|0]==46)break r;A=0;break A}if(r=e[56851])for(;;){if(!tr(s,r+8|0))break r;if(!(r=e[r+32>>2]))break}(A=it(36))&&(r=e[30414],e[A>>2]=e[30413],e[A+4>>2]=r,SA(r=A+8|0,s,o),d[r+o|0]=0,e[A+32>>2]=e[56851],e[56851]=A),r=A||121652}A=r}if((0|A)==-1)break e;e[56809]=A}else A=e[56809];l=A?A+8|0:84309}return H=t+48|0,l}function Me(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0;m=!!((t=e[A+112>>2])|(s=e[A+116>>2])),o=t,c=t=(l=e[A+4>>2])-(f=e[A+44>>2])|0,r=t+e[A+120>>2]|0,t=e[A+124>>2]+(t>>31)|0;e:{if(!(((0|(t=r>>>0>>0?t+1|0:t))>=(0|s)&r>>>0>=o>>>0|(0|t)>(0|s))&m)){if((0|(m=Qt(A)))>=0)break e;l=e[A+4>>2],f=e[A+44>>2]}return e[A+112>>2]=-1,e[A+116>>2]=-1,e[A+104>>2]=l,s=(c=r)+(r=f-l|0)|0,t=(r>>31)+t|0,e[A+120>>2]=s,e[A+124>>2]=r>>>0>s>>>0?t+1|0:t,-1}return t=(s=r+1|0)?t:t+1|0,l=e[A+4>>2],f=e[A+8>>2],c=o=e[A+116>>2],o|(r=e[A+112>>2])&&(o=r-s|0,(0|(r=c-(t+(r>>>0>>0)|0)|0))>=(0|(c=(I=f-l|0)>>31))&o>>>0>=I>>>0|(0|r)>(0|c)||(f=o+l|0)),e[A+104>>2]=f,s=(o=(r=e[A+44>>2])-l|0)+s|0,t=(o>>31)+t|0,e[A+120>>2]=s,e[A+124>>2]=s>>>0>>0?t+1|0:t,r>>>0>=l>>>0&&(d[l-1|0]=m),m}function ze(A,t,r){var s=0,o=0;e:if((0|A)!=(0|t)){if(t-(o=A+r|0)>>>0<=0-(r<<1)>>>0)return SA(A,t,r);if(s=3&(A^t),A>>>0>>0){if(s)s=A;else{if(3&A)for(s=A;;){if(!r)break e;if(d[0|s]=u[0|t],t=t+1|0,r=r-1|0,!(3&(s=s+1|0)))break}else s=A;if(!(r>>>0<=3))for(;e[s>>2]=e[t>>2],t=t+4|0,s=s+4|0,(r=r-4|0)>>>0>3;);}if(r)for(;d[0|s]=u[0|t],s=s+1|0,t=t+1|0,r=r-1|0;);}else{if(!s){if(3&o)for(;;){if(!r)break e;if(d[0|(s=(r=r-1|0)+A|0)]=u[t+r|0],!(3&s))break}if(!(r>>>0<=3))for(;e[(r=r-4|0)+A>>2]=e[t+r>>2],r>>>0>3;);}if(!r)break e;for(;d[(r=r-1|0)+A|0]=u[t+r|0],r;);}}return A}function $e(A,t,r,s){e:switch(t-9|0){case 0:return t=e[r>>2],e[r>>2]=t+4,void(e[A>>2]=e[t>>2]);case 6:return t=e[r>>2],e[r>>2]=t+4,t=k[t>>1],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 7:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=y[t>>1],void(e[A+4>>2]=0);case 8:return t=e[r>>2],e[r>>2]=t+4,t=d[0|t],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 9:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=u[0|t],void(e[A+4>>2]=0);case 16:return t=e[r>>2]+7&-8,e[r>>2]=t+8,void(T[A>>3]=T[t>>3]);case 17:$A[0|s](A,r);default:return;case 1:case 4:case 14:return t=e[r>>2],e[r>>2]=t+4,t=e[t>>2],e[A>>2]=t,void(e[A+4>>2]=t>>31);case 2:case 5:case 11:case 15:return t=e[r>>2],e[r>>2]=t+4,e[A>>2]=e[t>>2],void(e[A+4>>2]=0);case 3:case 10:case 12:case 13:break e}t=e[r>>2]+7&-8,e[r>>2]=t+8,r=e[t+4>>2],e[A>>2]=e[t>>2],e[A+4>>2]=r}function hA(A,t,r,s,o,l){var c;H=c=H-80|0;e:if((0|l)>=16384){if(je(c+32|0,t,r,s,o,0,0,0,2147352576),s=e[c+40>>2],o=e[c+44>>2],t=e[c+32>>2],r=e[c+36>>2],l>>>0<32767){l=l-16383|0;break e}je(c+16|0,t,r,s,o,0,0,0,2147352576),l=((0|l)>=49149?49149:l)-32766|0,s=e[c+24>>2],o=e[c+28>>2],t=e[c+16>>2],r=e[c+20>>2]}else(0|l)>-16383||(je(c- -64|0,t,r,s,o,0,0,0,7471104),s=e[c+72>>2],o=e[c+76>>2],t=e[c+64>>2],r=e[c+68>>2],l>>>0>4294934644?l=l+16269|0:(je(c+48|0,t,r,s,o,0,0,0,7471104),l=((0|l)<=-48920?-48920:l)+32538|0,s=e[c+56>>2],o=e[c+60>>2],t=e[c+48>>2],r=e[c+52>>2]));je(c,t,r,s,o,0,0,0,l+16383<<16),t=e[c+12>>2],e[A+8>>2]=e[c+8>>2],e[A+12>>2]=t,t=e[c+4>>2],e[A>>2]=e[c>>2],e[A+4>>2]=t,H=c+80|0}function yA(A,t){var r,s,o=0;H=r=H+-64|0,o=e[A>>2],s=e[o-4>>2],o=e[o-8>>2],e[r+32>>2]=0,e[r+36>>2]=0,e[r+40>>2]=0,e[r+44>>2]=0,e[r+48>>2]=0,e[r+52>>2]=0,d[r+55|0]=0,d[r+56|0]=0,d[r+57|0]=0,d[r+58|0]=0,d[r+59|0]=0,d[r+60|0]=0,d[r+61|0]=0,d[r+62|0]=0,e[r+24>>2]=0,e[r+28>>2]=0,e[r+20>>2]=0,e[r+16>>2]=125084,e[r+12>>2]=A,e[r+8>>2]=t,A=A+o|0,o=0;e:if(Ks(s,t,0))e[r+56>>2]=1,$A[e[e[s>>2]+20>>2]](s,r+8|0,A,A,1,0),o=e[r+32>>2]==1?A:0;else{$A[e[e[s>>2]+24>>2]](s,r+8|0,A,1,0);A:switch(e[r+44>>2]){case 0:o=e[r+48>>2]==1&&e[r+36>>2]==1&&e[r+40>>2]==1?e[r+28>>2]:0;break e;case 1:break A;default:break e}e[r+32>>2]!=1&&e[r+48>>2]|e[r+36>>2]!=1|e[r+40>>2]!=1||(o=e[r+24>>2])}return H=r- -64|0,o}function wA(A,t,r,s,o){var l,c,f=0;H=l=H-80|0,k[l+72>>1]=0,e[l+64>>2]=0,e[l+68>>2]=0,d[0|s]=0,f=Ar(t,c=2|(f=l- -64|0))+f|0,d[f+2|0]=32;e:if((0|r)!=-1)t>>>0>=33&&!gr(t)?(d[f+3|0]=(0|r)==32?32:31,d[l+65|0]=95,TA(A,l- -64|1,l+16|0)||(d[l+65|0]=32,TA(A,c,l+16|0)||At(A,c,l+16|0,40,0,268435456,0)),u[l+16|0]||ta(A,t,l+16|0),t=DA(s,l+16|0),!(r=u[0|t])|(0|r)==21||(e[l+56>>2]=0,e[l+60>>2]=0,Zt(A,t,l+56|0,-1,1&o))):(e[l>>2]=t,cA(t=l- -64|1,85485,l),TA(A,t,s));else{if(TA(A,c,s)||(d[l+65|0]=95,TA(A,l- -64|1,l+16|0)|e[A+212>>2]==25966))break e;Wn(85055),TA(e[47194],c,l+16|0)&&(d[0|s]=21,d[s+1|0]=0),rs(e[e[32972]+60>>2])}H=l+80|0}function eA(A,t,r){var s=0,o=0,l=0,c=0;if(r&&(d[0|A]=t,d[(s=A+r|0)-1|0]=t,!(r>>>0<3||(d[A+2|0]=t,d[A+1|0]=t,d[s-3|0]=t,d[s-2|0]=t,r>>>0<7||(d[A+3|0]=t,d[s-4|0]=t,r>>>0<9||(o=(s=0-A&3)+A|0,t=O(255&t,16843009),e[o>>2]=t,e[(r=(s=r-s&-4)+o|0)-4>>2]=t,s>>>0<9||(e[o+8>>2]=t,e[o+4>>2]=t,e[r-8>>2]=t,e[r-12>>2]=t,s>>>0<25||(e[o+24>>2]=t,e[o+20>>2]=t,e[o+16>>2]=t,e[o+12>>2]=t,e[r-16>>2]=t,e[r-20>>2]=t,e[r-24>>2]=t,e[r-28>>2]=t,(r=s-(c=4&o|24)|0)>>>0<32))))))))for(s=st(t,0,1,1),l=me,t=o+c|0;e[t+24>>2]=s,e[t+28>>2]=l,e[t+16>>2]=s,e[t+20>>2]=l,e[t+8>>2]=s,e[t+12>>2]=l,e[t>>2]=s,e[t+4>>2]=l,t=t+32|0,(r=r-32|0)>>>0>31;);return A}function nt(){var A,t=0,r=0,s=0,o=0,l=0;if(H=A=H-208|0,(0|(s=e[50303]))>0)for(;(o=e[(r=201216+(t<<2)|0)>>2])&&(FA(o),e[r>>2]=0),(0|s)!=(0|(t=t+1|0)););if(e[50303]=0,e[A+16>>2]=137584,e[A+20>>2]=47,cA(t=A+32|0,87827,A+16|0),Ps(t,BA(t)+1|0,0),e[A+4>>2]=47,e[A>>2]=137584,cA(t,87933,A),Ps(t,BA(t)+1|0,1),t=e[50303],e[(r=t<<2)+201216>>2]=0,r=Ut(s=e[50741],r+4|0)){if(e[50741]=r,La(201216,t,7),s=e[50741],r=0,t=e[50304])for(o=0;l=e[t+4>>2],u[0|l]&&tr(l+1|0,86589)&&Zr(e[t+8>>2],88032,3)&&(e[(r<<2)+s>>2]=t,r=r+1|0),t=e[201216+((o=o+1|0)<<2)>>2];);e[(r<<2)+s>>2]=0}return H=A+208|0,s}function Bt(A,t,r){var s=0,o=0,l=0,c=0;if(l=t-1|0,(0|t)>=2){t=A;e:{for(;;){A:{r:{if((0|(s=e[r+4>>2]))!=(0|(o=e[r+8>>2]))){if((c=ca(s,10,o-s|0))?o=1+(c-(s=e[r+4>>2])|0)|0:(s=e[r+4>>2],o=e[r+8>>2]-s|0),SA(t,s,s=o>>>0>>0?o:l),o=s+e[r+4>>2]|0,e[r+4>>2]=o,t=t+s|0,c||!(l=l-s|0))break A;if((0|o)!=e[r+8>>2]){e[r+4>>2]=o+1,s=u[0|o];break r}}if(!((0|(s=Qt(r)))>=0)){if(s=0,(0|A)==(0|t))break e;if(16&u[0|r])break A;break e}}if(d[0|t]=s,t=t+1|0,(255&s)!=10&&(l=l-1|0))continue}break}A?(d[0|t]=0,s=A):s=0}}else if(t=e[r+72>>2],e[r+72>>2]=t-1|t,!l)return d[0|A]=0,A;return s}function vt(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0;if(t=O(A,44),(0|(A=e[t+137896>>2]))>0&&vt(A-1|0),A=e[36115],!((0|(t=e[(r=t+137856|0)+36>>2]))<=0)){if(o=e[r+32>>2],f=1&t,(0|t)!=1)for(m=-2&t,r=0;t=u[(l=(s=r<<4)+o|0)+10|0],e[144464+(t<<2)>>2]=l,(0|A)>=(0|t)?t=A:eA(144464+((A=A+1|0)<<2)|0,0,t-A<<2),A=u[(s=(16|s)+o|0)+10|0],e[144464+(A<<2)>>2]=s,(0|A)<=(0|t)?A=t:eA(144464+((t=t+1|0)<<2)|0,0,A-t<<2),r=r+2|0,(0|m)!=(0|(c=c+2|0)););else r=0;f&&(t=u[(r=(r<<4)+o|0)+10|0],e[144464+(t<<2)>>2]=r,(0|A)>=(0|t)||(eA(144464+((A=A+1|0)<<2)|0,0,t-A<<2),A=t))}e[36115]=A}function nr(A,t,r,s,o){var l,c=0,f=0,m=0;H=l=H-16|0;e:if(1&d[A+106|0]&&(c=u[0|r],!(!(1&d[s+2|0])&(0|c)!=46||256&(m=e[s+12>>2])|!(!(2&m)||o)||(zA(l+12|0,(0|c)!=46?r:r+2|0),!(c=u[0|r])|!u[r+1|0])))){if(!(!(m=e[l+12>>2])|2&u[s+2|0])){if(!zt(m))break e;c=u[0|r]}(0|c)==46&&(d[0|r]=32),f=2,e[A+212>>2]!=26741|o||(r=zt(e[l+12>>2])?Z(A,r+2|0,0,0):0,128&u[A+8233|0]&&(!(!(o=e[l+12>>2])|2&u[s+2|0])&o-48>>>0>=10||(f=0)),f=32768&r?0:f,131072&r&&(f=163840&e[A+8232>>2]?34:u[t-2|0]!=45?f:0))}return H=l+16|0,f}function Lt(A,t,r,s,o){var l,c=0,f=0;if(H=l=H-208|0,e[l+204>>2]=r,eA(r=l+160|0,0,40),e[l+200>>2]=e[l+204>>2],(0|lA(0,t,l+200|0,l+80|0,r,s,o))<0)o=-1;else{e[A+76>>2]>=0,c=e[A>>2],e[A+72>>2]<=0&&(e[A>>2]=-33&c);e:{A:{if(e[A+48>>2]){if(e[A+16>>2])break A}else e[A+48>>2]=80,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,f=e[A+44>>2],e[A+44>>2]=l;if(r=-1,va(A))break e}r=lA(A,t,l+200|0,l+80|0,l+160|0,s,o)}f&&($A[e[A+36>>2]](A,0,0),e[A+48>>2]=0,e[A+44>>2]=f,e[A+28>>2]=0,t=e[A+20>>2],e[A+16>>2]=0,e[A+20>>2]=0,r=t?r:-1),t=A,A=e[A>>2],e[t>>2]=A|32&c,o=32&A?-1:r}return H=l+208|0,o}function Pr(A,t,r,s){var o,l=0,c=0,f=0,m=0,I=0,b=0,M=0;if(H=o=H-208|0,c=u[0|t])for(;d[l+o|0]=c,m=((255&c)==6&(0|f)!=21)+m|0,f=c<<24>>24,c=u[(l=l+1|0)+t|0];);if(d[l+o|0]=0,l=u[0|o])for(b=m-2|0,f=0,M=(0|s)<2,c=0;;){e:{A:if((255&l)!=6|M|(0|c)==21){if((0|(s=255&l))==255){if(!I|(0|r)<2)break e;s=r>>>0>2?11:(0|f)%3|0?23:11}c=s,s=f}else{if(l=f+1|0,u[A+169|0]){c=(0|l)>1?5:6,s=l;break A}if(c=6,s=m,(0|l)==(0|m))break A;c=(0|l)%3|0||(0|f)==(0|b)?5:6,s=l}f=s,d[0|t]=c,t=t+1|0}if(!(l=u[(I=I+1|0)+o|0]))break}(0|r)>=2&&(d[0|t]=11,t=t+1|0),d[0|t]=0,H=o+208|0}function qt(A,t){var r=0;r=0,A&&(r=e[50754],r=(A=(A=(0|O(e[145712+(t?12:((0|A)>199)<<2)>>2],A))/256|0)>>>0>(t=e[36430])>>>0?A:t)>>>0<=89999?(O(A,r)>>>0)/1e3|0:(O(A,(0|r)/25|0)>>>0)/40|0),(0|(A=e[36440]))<=0||(0|(t=e[36424]))<0||(e[(t=216192+(t<<4)|0)+4>>2]||(e[t+4>>2]=A),e[36440]=0),e[36426]=0,e[36439]=-1,e[36455]=e[50758],ne(),e[36427]=-1,A=216192+(e[50758]<<4)|0,e[A>>2]=5,e[A+4>>2]=r,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0,e[36426]=0,e[36438]&&(e[36438]=0,A=216192+(e[50758]<<4)|0,e[A>>2]=14,e[A+4>>2]=0,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}function hr(A,t,r,s,o,l,c,f){var m,I=0,b=0,M=0;I=1,m=b=2147483647&s;e:if(!((M=(0|b)==2147418112)&!r?A|t:M&!!(0|r)|b>>>0>2147418112)&&!((M=(0|(b=2147483647&f))==2147418112)&!c?o|l:M&!!(0|c)|b>>>0>2147418112)){if(!(A|o|r|c|t|l|b|m))return 0;if((0|(I=s&f))>0|(0|I)>=0){if(I=-1,(0|r)==(0|c)&(0|s)==(0|f)?(0|t)==(0|l)&A>>>0>>0|t>>>0>>0:r>>>0>>0&(0|s)<=(0|f)|(0|s)<(0|f))break e;return!!(A^o|r^c|t^l|s^f)}I=-1,((0|r)==(0|c)&(0|s)==(0|f)?(0|t)==(0|l)&A>>>0>o>>>0|t>>>0>l>>>0:r>>>0>c>>>0&(0|s)>=(0|f)|(0|s)>(0|f))||(I=!!(A^o|r^c|t^l|s^f))}return I}function dr(A,t){var r=0,s=0,o=0,l=0;for(r=u[85836]|u[85837]<<8,d[0|t]=r,d[t+1|0]=r>>>8,d[t+2|0]=u[85838];;)if(o=u[0|A],A=r=A+1|0,(0|o)!=255){if(!o)break;if(!(s=e[144464+(o<<2)>>2]))continue;if(u[s+11|0]==1&&(l=u[s+14|0],!(y[s+8>>1]|l>>>0>4))){if(l>>>0<2)continue;d[0|t]=u[l+93943|0],t=t+1|0;continue}if(255&(A=e[s>>2]))for(;d[0|t]=A,t=t+1|0,s=65280&A,A=A>>>8|0,s;);if(A=r,(0|o)!=21||(32|(r=d[0|A]))-97>>>0>=26)continue;for(;d[0|t]=r,t=t+1|0,(32|(r=d[0|(A=A+1|0)]))-97>>>0<26;);}d[0|t]=0}function $t(A,t){var r,s,o=0,l=0,c=0;H=r=H-112|0,A||(e[50303]||nt(),A=201216),Rt(o=r+16|0,t,40),e[r>>2]=47,e[r+4>>2]=o,cA(t=r- -64|0,87599,r),s=BA(t),c=-1;e:{A:{r:{if(l=e[A>>2]){t=0,o=-1;a:{for(;;){if(nn(r+16|0,e[l>>2])){if(nn(r+16|0,l=e[l+8>>2])?c=nn(r- -64|0,l+(BA(l)-s|0)|0)?c:t:o=t,l=e[((t=t+1|0)<<2)+A>>2])continue;break a}break}if((0|t)>=0)break A;t=(0|o)<0?c:o;break r}if((0|(t=o))>=0)break r}t=c}if(o=0,(0|t)<0)break e}o=e[(t<<2)+A>>2]}return H=r+112|0,o}function Hr(A,t){var r,s,o=0,l=0,c=0,f=0,m=0;H=r=H-16|0,F(+t),s=0|B(1),l=0|B(0),(0|(c=(o=2147483647&s)+-1048576|0))==2145386495|c>>>0<2145386495?(f=l<<28,c=o>>>4|0,o=(15&o)<<28|l>>>4,l=c+1006632960|0):(0|o)==2146435072|o>>>0>2146435072?(f=l<<28,o=(15&s)<<28|l>>>4,l=s>>>4|2147418112):o|l?(Pt(r,l,c=o,0,0,(o=o?be(o):be(l)+32|0)+49|0),m=e[r>>2],f=e[r+4>>2],c=15372-o<<16,o=e[r+8>>2],l=c|65536^e[r+12>>2]):(o=0,l=0),e[A>>2]=m,e[A+4>>2]=f,e[A+8>>2]=o,e[A+12>>2]=-2147483648&s|l,H=r+16|0}function jt(A,t,r){var s=0,o=0;e:{A:{r:{if(!(3&((o=A)^t))){s=!!(0|r);a:if(!(!(3&t)|!r))for(;;){if(s=u[0|t],d[0|o]=s,!s)break e;if(o=o+1|0,s=!!(0|(r=r-1|0)),!(3&(t=t+1|0)))break a;if(!r)break}if(!s)break A;if(!u[0|t])break e;if(!(r>>>0<4))for(;;){if(~(s=e[t>>2])&s-16843009&-2139062144)break r;if(e[o>>2]=s,o=o+4|0,t=t+4|0,!((r=r-4|0)>>>0>3))break}}if(!r)break A}for(;;){if(s=u[0|t],d[0|o]=s,!s)break e;if(o=o+1|0,t=t+1|0,!(r=r-1|0))break}}r=0}return eA(o,0,r),A}function kr(A,t,r,s,o,l){var c,f=0,m=0,I=0;H=c=H-240|0,f=e[r>>2],e[c+232>>2]=f,r=e[r+4>>2],e[c>>2]=A,e[c+236>>2]=r,I=1;e:{A:{r:{if(r|(0|f)!=1){for(f=A;;){if((0|$a(r=f-e[(m=(s<<2)+l|0)>>2]|0,A,t))<=0){r=f;break r}a:{if(!((0|s)<2|o)&&(o=e[m-8>>2],(0|$a(m=f-4|0,r,t))>=0||(0|$a(m-o|0,r,t))>=0))break a;if(e[(I<<2)+c>>2]=r,di(f=c+232|0,o=ce(f)),I=I+1|0,s=s+o|0,o=0,f=r,e[c+236>>2]|e[c+232>>2]!=1)continue;break A}break}r=f;break A}r=A}if(o)break e}li(c,I),wa(r,t,s,l)}H=c+240|0}function Qr(A,t){var r=0;e[4+((r=A<<2)+134912|0)>>2]=t,e[r+136192>>2]=t,r=28;e:{A:{r:switch(A-1|0){case 0:e[50792]=t,e[50786]=t,Is(3);break A;case 1:e[50787]=t,e[33037]=(0|O(u[e[50797]+105596|0],(0|O(e[50787],55))/100|0))/16;break A;case 2:A=(0|t)>=99?99:t,e[50785]=(0|A)>0?A:0;break A;case 3:e[50788]=(0|t)>=99?99:t;break A;case 12:e[47268]=t;break A;case 6:e[47205]=t;break A;case 9:break A;case 8:break r;default:break e}(A=255&t)&&(e[e[47192]+152>>2]=A),e[47196]=t}r=0}return r}function _t(A,t){var r=0,s=0,o=0;e:if(e[A>>2])for(;;){if(gr(e[A-4>>2])){if(s=0,(0|(r=d[0|t]))==e[A>>2])for(;(0|(r=d[(s=s+1|0)+t|0]))==e[(A=A+4|0)>>2];);if(!r){for(;t=A,A=A+4|0,gr(e[t>>2]););for(o=t+((e[t>>2]==61)<<2)|0;o=(A=o)+4|0,gr(e[A>>2]););A:switch((t=e[A>>2])-34|0){case 0:case 5:break e;default:break A}return gr(t)||e[A>>2]==47?102808:A}}if(!e[(A=A+4|0)>>2])break}return o}function fr(A,t,r,s){var o,l,c=0,f=0,m=0;return!u[A+25|0]|T[A+8>>3]!=r|T[A+16>>3]!=s?(T[A+16>>3]=s,T[A+8>>3]=r,s=(c=Gr(-3.141592653589793/(f=+e[A>>2])*s))*-c,T[A+48>>3]=s,c*=As(-6.283185307179586/f*r),c+=c,T[A+40>>3]=c,f=1-c-s,T[A+32>>3]=f,!(m=u[A+24|0])|r==0||(f=1/f,T[A+32>>3]=f,s*=r=-f,T[A+48>>3]=s,c*=r,T[A+40>>3]=c,m=1)):(m=u[A+24|0],s=T[A+48>>3],c=T[A+40>>3],f=T[A+32>>3]),d[A+25|0]=1,r=T[A+64>>3],o=T[A+56>>3],T[A+64>>3]=o,l=t,t=s*r+(f*t+c*o),T[A+56>>3]=m?l:t,t}function Kr(A,t,r,s,o){var l=0,c=0,f=0,m=0,I=0;if((f=e[34388])&&!((0|(c=e[34436]))>=(e[34393]-2|0))){if(e[34436]=c+1,l=O(c,36)+f|0,e[l>>2]=A,e[l+4>>2]=e[34437],I=e[34438],e[l+12>>2]=t>>>24,e[l+8>>2]=16777215&t,e[l+24>>2]=I,t=e[50754],o=e[34439]+((o-e[34392]|0)/2|0)|0,e[l+20>>2]=o,t=Ae(m=1e3*+(0|o)/+(0|t))<2147483648?~~m:-2147483648,e[l+16>>2]=t,A-3>>>0<=1)return void(e[28+(O(c,36)+f|0)>>2]=e[33282]+r);t=28+(O(c,36)+f|0)|0,e[t>>2]=r,(0|A)==7&&(e[t+4>>2]=s)}}function xr(A,t,r,s,o,l){var c=0,f=0,m=0,I=0;64&l?(t=31&(r=l+-64|0),(63&r)>>>0>=32?(r=0,t=o>>>t|0):(r=o>>>t|0,t=((1<>>t),s=0,o=0):l&&(m=s,c=31&(f=64-l|0),(63&f)>>>0>=32?(f=m<>>32-c|o<>>0>=32?(c=0,t=r>>>t|0):(c=r>>>t|0,t=((1<>>t),t|=I,r=c|f,c=s,s=31&l,(63&l)>>>0>=32?(f=0,s=o>>>s|0):(f=o>>>s|0,s=((1<>>s),o=f),e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=s,e[A+12>>2]=o}function yr(A){var t=0,r=0;if(!A){if(e[33174]&&(t=yr(e[33174])),e[33136]&&(t=yr(e[33136])|t),A=e[56816])for(;e[A+20>>2]!=e[A+28>>2]&&(t=yr(A)|t),A=e[A+56>>2];);return t}return e[A+76>>2]>=0,e[A+20>>2]==e[A+28>>2]||($A[e[A+36>>2]](A,0,0),e[A+20>>2])?((0|(t=e[A+8>>2]))!=(0|(r=e[A+4>>2]))&&(t=r-t|0,$A[e[A+40>>2]](A,t,t>>31,1)),t=0,e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A+4>>2]=0,e[A+8>>2]=0):t=-1,t}function er(A,t){var r=0,s=0,o=0,l=0,c=0;if((192&(r=u[0|t]))==128)for(;(192&(r=u[0|(t=t-1|0)]))==128;);e:if(128&(r=r<<24>>24)){if(s=1,(0|(o=224&r))!=192)if((240&r)!=224){if(s=3,(248&r)!=240){r&=255,s=0;break e}}else s=2,c=1;r=u[s+93846|0]&r,(l=u[t+1|0])?(r=63&l|r<<6,(0|o)!=192&&((o=u[t+2|0])?(r=63&o|r<<6,c||((t=u[t+3|0])?r=63&t|r<<6:s=2)):s=1)):s=0}return e[A>>2]=r,s+1|0}function Cr(A,t,r,s){var o,l=0,c=0;return H=o=H-224|0,A?(e[o>>2]=137584,e[o+4>>2]=47,e[o+8>>2]=t,cA(t=o+16|0,85430,o),(0|(l=Ns(t)))<0?t=Vs(s,0-l|0,o+16|0):(t=es(o+16|0,85659))?((c=e[A>>2])&&FA(c),l?(c=it(l),e[A>>2]=c,c?(0|Qn(c,l,t))==(0|l)?(Dr(t),t=0,r&&(e[r>>2]=l)):(r=e[56798],Dr(t),FA(e[A>>2]),e[A>>2]=0,t=Vs(s,r,o+16|0)):(Dr(t),t=48)):(t=0,e[A>>2]=0)):t=Vs(s,e[56798],o+16|0)):t=28,H=o+224|0,t}function zA(A,t){var r=0,s=0,o=0,l=0,c=0;if((192&(r=u[0|t]))==128)for(;(192&(r=u[0|(t=t+1|0)]))==128;);e:if(128&(r=r<<24>>24)){if(s=1,(0|(o=224&r))!=192)if((240&r)!=224){if(s=3,(248&r)!=240){r&=255,s=0;break e}}else s=2,c=1;r=u[s+93846|0]&r,(l=u[t+1|0])?(r=63&l|r<<6,(0|o)!=192&&((o=u[t+2|0])?(r=63&o|r<<6,c||((t=u[t+3|0])?r=63&t|r<<6:s=2)):s=1)):s=0}return e[A>>2]=r,s+1|0}function Pt(A,t,r,s,o,l){var c=0,f=0,m=0;64&l?(s=t,t=31&(o=l+-64|0),(63&o)>>>0>=32?(o=s<>>32-t|r<>>0>=32?(f=c<>>32-s|o<>>0>=32?(o=0,t=r>>>s|0):(o=r>>>s|0,t=((1<>>s),s=m|t,o|=f,t=31&l,(63&l)>>>0>=32?(f=c<>>32-t|r<>2]=t,e[A+4>>2]=r,e[A+8>>2]=s,e[A+12>>2]=o}function Xr(A){var t=0;return A>>>0<=55295?t=u[e[125552+(A>>>6&67108860)>>2]+(255&A)|0]:(t=4,A>>>0<57344||(A>>>0<63488?t=3:A>>>0<=195327?t=u[e[126416+(A-63488>>>6&67108860)>>2]+(255&A)|0]:(t=2,A>>>0<917504||(A>>>0<=918015?t=u[e[128476+(A-917504>>>6&67108860)>>2]+(255&A)|0]:A>>>0<983040||(A>>>0<1048574?t=3:A>>>0<1048576||(t=3,A>>>0<1114110||(t=A>>>0<1114112?2:5))))))),255&t}function Ya(A,t){var r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0;if(!((0|(r=e[33709]))<=0)){if(o=(0|A)>31?A-32|0:A,A=0,r>>>0>=4)for(b=-4&r;f=2|A,m=1|A,s=e[134912+((c=3|A)<<6)>>2]==(0|o)?c:e[134912+(f<<6)>>2]==(0|o)?f:e[134912+(m<<6)>>2]==(0|o)?m:e[134912+(A<<6)>>2]==(0|o)?A:s,A=A+4|0,(0|b)!=(0|(l=l+4|0)););if(l=3&r)for(;s=e[134912+(A<<6)>>2]==(0|o)?A:s,A=A+1|0,(0|l)!=(0|(I=I+1|0)););(0|s)<=0||(e[33709]=s,r=s)}Lr(t,r)}function si(A){var t,r=0,s=0,o=0;for(H=t=H-96|0,Rt(t,A,60),tn(t,1);o=vs(d[0|(s=t+r|0)]),d[0|s]=o,r=r+1|0,255&o;);e[t+92>>2]=0,e[t+84>>2]=0,e[t+88>>2]=0,e[t+76>>2]=0,e[t+80>>2]=0,e[t+72>>2]=A;e:{A:{r:{if(dt(t,1)){if(u[202976])break r;break A}if(e[50303]||nt(),r=268437247,!(A=$t(201216,t))||!dt(e[A+8>>2],0))break e;if(!u[202976])break A}dt(202976,2)}ct(e[32972]),e[t+76>>2]=e[32972]+40,an(t+72|0,202976),r=0}return H=t+96|0,r}function ai(A,t){if(!A)return 0;e:{A:{if(A){if(t>>>0<=127)break A;if(e[e[56841]>>2]){if(t>>>0<=2047){d[A+1|0]=63&t|128,d[0|A]=t>>>6|192,A=2;break e}if(!((-8192&t)!=57344&t>>>0>=55296)){d[A+2|0]=63&t|128,d[0|A]=t>>>12|224,d[A+1|0]=t>>>6&63|128,A=3;break e}if(t-65536>>>0<=1048575){d[A+3|0]=63&t|128,d[0|A]=t>>>18|240,d[A+2|0]=t>>>6&63|128,d[A+1|0]=t>>>12&63|128,A=4;break e}}else if((-128&t)==57216)break A;e[56798]=25,A=-1}else A=1;break e}d[0|A]=t,A=1}return A}function ni(A){var t=0,r=0,s=0,o=0;if(e[A+20>>2]=0,(s=(r=e[A+8>>2])-(t=e[A+4>>2])|0)>>>0>=9)for(;FA(e[t>>2]),t=e[A+4>>2]+4|0,e[A+4>>2]=t,(s=(r=e[A+8>>2])-t|0)>>>0>8;);o=512;e:switch((s>>>2|0)-1|0){case 1:o=1024;case 0:e[A+16>>2]=o;break;default:break e}if((0|t)!=(0|r)){for(;FA(e[t>>2]),(0|r)!=(0|(t=t+4|0)););(0|(t=e[A+8>>2]))!=(0|(r=e[A+4>>2]))&&(e[A+8>>2]=t+(3+(r-t|0)&-4))}(A=e[A>>2])&&FA(A)}function ca(A,t,r){var s=0,o=0;s=!!(0|r);e:{A:{r:if(!(!(3&A)|!r))for(o=255&t;;){if((0|o)==u[0|A])break A;if(s=!!(0|(r=r-1|0)),!(3&(A=A+1|0)))break r;if(!r)break}if(!s)break e;if(!(u[0|A]==(255&t)|r>>>0<4))for(s=O(255&t,16843009);;){if(~(o=s^e[A>>2])&o-16843009&-2139062144)break A;if(A=A+4|0,!((r=r-4|0)>>>0>3))break}if(!r)break e}for(t&=255;;){if((0|t)==u[0|A])return A;if(A=A+1|0,!(r=r-1|0))break}}return 0}function ua(A,t){var r=0,s=0;e:{if(s=255&t){if(3&A)for(;;){if(!(r=u[0|A])|(0|r)==(255&t))break e;if(!(3&(A=A+1|0)))break}A:if(!(~(r=e[A>>2])&r-16843009&-2139062144))for(s=O(s,16843009);;){if(~(r^=s)&r-16843009&-2139062144)break A;if(r=e[A+4>>2],A=A+4|0,r-16843009&~r&-2139062144)break}for(;(s=u[0|(r=A)])&&(A=r+1|0,(0|s)!=(255&t)););return r}return BA(A)+A|0}return A}function ii(A,t,r,s,o){var l,c=0,f=0;f=-1;e:if(!(((c=(0|(l=2147483647&s))==2147418112)&!r?A|t:c&!!(0|r)|l>>>0>2147418112)||(c=2147483647&o)>>>0>2147418112&(0|c)!=2147418112)){if(!(A|r|c|l|t))return 0;if((0|(c=s&o))>0|(0|c)>=0){if((!!(0|r)|(0|s)!=(0|o))&(0|s)<(0|o))break e;return!!(A|r|s^o|t)}(!r&(0|s)==(0|o)?A|t:!!(0|r)&(0|s)>=(0|o)|(0|s)>(0|o))||(f=!!(A|r|s^o|t))}return f}function tn(A,t){var r,s=0;H=r=H+-64|0,d[202976]=0,e[r+48>>2]=47,cA(r+59|0,91351,r+48|0),t||(d[r+59|0]=0);e:{A:{if(A&&(A=Ls(A,43))){if(d[0|A]=0,d[0|(A=A+1|0)]-48>>>0>=10)break A;s=da(A)}if((0|s)<=0)break e;if(s>>>0<=9){e[r+4>>2]=s,e[r>>2]=r+59,cA(202976,91378,r);break e}e[r+20>>2]=s-10,e[r+16>>2]=r+59,cA(202976,91503,r+16|0);break e}e[r+36>>2]=A,e[r+32>>2]=r+59,cA(202976,85425,r+32|0)}H=r- -64|0}function Ha(A){var t,r=0,s=0,o=0;H=t=H-80|0,r=Tt(A,t+12|0),e[t+12>>2]?(Rt(s=t+16|0,r,60),r=0,tn(s,1),!dt(s,0)|!u[202976]||dt(202976,2),ct(e[32972]),an(A,86012)):r=268437247,H=t+80|0;e:{A:{r:{a:{if((0|r)<=268437502){if(!r)break e;if((0|r)==268436479)break A;if((0|r)!=268437247)break a;return 2}if((0|r)==268437503|(0|r)==268437759)break r;if((0|r)==268439295)break e}return-1}return 2}o=1}return o}function Fr(A,t,r,s,o,l,c,f,m){var I,b,M;m=st(t,r,f,m),f=me,o=st(s,o,l,c),s=me+f|0,f=o>>>0>(m=o+m|0)>>>0?s+1|0:s,I=c,b=r,c=(r=st(c,o=0,r,s=0))+m|0,m=me+f|0,M=c,r=r>>>0>c>>>0?m+1|0:m,c=st(l,0,t,0),f=me,s=st(l,m=0,b,s),l=me+m|0,l=s>>>0>(f=f+s|0)>>>0?l+1|0:l,s=r,l=l>>>0>(m=l+M|0)>>>0?s+1|0:s,r=st(t,0,I,o)+f|0,o=me,f=(o=r>>>0>>0?o+1|0:o)+m|0,m=l,e[A+8>>2]=f,e[A+12>>2]=o>>>0>f>>>0?m+1|0:m,e[A>>2]=c,e[A+4>>2]=r}function DA(A,t){var r=0,s=0;e:{if(3&((s=A)^t))r=u[0|t];else{if(3&t)for(;;){if(r=u[0|t],d[0|s]=r,!r)break e;if(s=s+1|0,!(3&(t=t+1|0)))break}if(!(~(r=e[t>>2])&r-16843009&-2139062144))for(;e[s>>2]=r,r=e[t+4>>2],s=s+4|0,t=t+4|0,!(r-16843009&~r&-2139062144););}if(d[0|s]=r,255&r)for(;r=u[t+1|0],d[s+1|0]=r,s=s+1|0,t=t+1|0,r;);}return A}function As(A){var t,r=0,s=0;H=t=H-16|0,F(+A),s=0|B(1),B(0);e:if((s&=2147483647)>>>0<=1072243195){if(r=1,s>>>0<1044816030)break e;r=Ma(A,0)}else if(r=A-A,!(s>>>0>=2146435072)){A:switch(3&ve(A,t)){case 0:r=Ma(T[t>>3],T[t+8>>3]);break e;case 1:r=-Ka(T[t>>3],T[t+8>>3],1);break e;case 2:r=-Ma(T[t>>3],T[t+8>>3]);break e;default:break A}r=Ka(T[t>>3],T[t+8>>3],1)}return H=t+16|0,A=r}function yn(A,t,r,s){var o=0,l=0,c=0;if(!((BA(s)+BA(t)|0)>=(0|r))){for(c=e[36115],r=s;o=u[0|r];)if(r=r+1|0,!((0|o)>=(0|c))){e:{A:switch(o=e[144464+(o<<2)>>2],u[o+11|0]-1|0){case 1:break e;case 0:break A;default:continue}l=u[o+14|0]<4|l;continue}1&(u[o+4|0]>>>1|l)||(e[A+8212>>2]=e[A+8212>>2]+1),e[A+8208>>2]=e[A+8208>>2]+1,l=0}t&&Jr(t,s)}}function rn(A){var t,r=0;H=t=H-16|0,F(+A),r=0|B(1),B(0);e:if((r&=2147483647)>>>0<=1072243195){if(r>>>0<1045430272)break e;A=Ka(A,0,0)}else if(r>>>0>=2146435072)A-=A;else{A:switch(3&ve(A,t)){case 0:A=Ka(T[t>>3],T[t+8>>3],1);break e;case 1:A=Ma(T[t>>3],T[t+8>>3]);break e;case 2:A=-Ka(T[t>>3],T[t+8>>3],1);break e;default:break A}A=-Ma(T[t>>3],T[t+8>>3])}return H=t+16|0,A}function Dn(A){var t=0;e[A+296>>2]=303173648,e[A+300>>2]=370677780,t=e[26341],e[A+304>>2]=e[26340],e[A+308>>2]=t,t=e[26343],e[A+312>>2]=e[26342],e[A+316>>2]=t,iA(A),e[A+56>>2]=2,e[A+36>>2]=3,e[A+40>>2]=1074,d[A+168|0]=5,e[A+132>>2]=32,e[A+104>>2]=1032,e[A+108>>2]=66,e[A+8>>2]=5,e[A+12>>2]=32,d[A+365|0]=64|u[A+365|0],d[A+368|0]=64|u[A+368|0],d[A+396|0]=64|u[A+396|0],d[A+399|0]=64|u[A+399|0]}function oi(A,t,r){var s=0,o=0,l=0;e:{if(!(s=e[r+16>>2])){if(va(r))break e;s=e[r+16>>2]}if(s-(l=e[r+20>>2])>>>0>>0)return 0|$A[e[r+36>>2]](r,A,t);A:if(e[r+80>>2]<0)s=0;else{for(o=t;;){if(!(s=o)){s=0;break A}if(u[(o=s-1|0)+A|0]==10)break}if((o=0|$A[e[r+36>>2]](r,A,s))>>>0>>0)break e;A=A+s|0,t=t-s|0,l=e[r+20>>2]}SA(l,A,t),e[r+20>>2]=e[r+20>>2]+t,o=t+s|0}return o}function Tn(A){var t,r=0,s=0;e:{if((0|(t=e[34064]))>0)for(;;){if((s=e[136284+(r<<4)>>2])&&!tr(A,s)){if(e[136276+(r<<4)>>2])return r;if(s=-1,Ws(0,r))break e;return r}if((0|t)==(0|(r=r+1|0)))break}s=-1,Ws(A,t)||(r=Ut(e[12+(136272+(e[34064]<<4)|0)>>2],BA(A)+1|0),s=e[34064],e[12+(136272+(s<<4)|0)>>2]=r,DA(r,A),e[34064]=s+1)}return s}function Gn(A,t){var r,s=0,o=0,l=0,c=0;for(H=r=H-16|0,d[0|t]=0,(s=15&e[A>>2])&&(t=(o=BA(t=DA(t,xa(128496,64|s))))+t|0),s=8;;){e:{A:{if(s>>>0<=29){if(e[A>>2]>>>s&1)break A;break e}if(!(e[A+4>>2]>>>s-32&1)|s>>>0<32)break e}(0|(o=(c=BA(l=xa(128496,s))+1|0)+o|0))>=80||(e[r>>2]=l,cA(t,84439,r),t=t+c|0)}if((0|(s=s+1|0))==64)break}H=r+16|0}function sn(A,t,r){var s,o=0,l=0,c=0;if(H=s=H-16|0,u[0|A]){for(c=e[30450];;)if(l=A,A=A+1|0,!((0|(o=d[0|l]))==32|o-9>>>0<5)){for((0|(o=da(l)))>0&&((0|o)<32?e[t>>2]=e[t>>2]|1<>2]=o,e[s>>2]=l,rr(c,84902,s)),l=A);l=(A=l)+1|0,(o=d[0|A])-48>>>0<10|(32|o)-97>>>0<26;);if(!o)break}}H=s+16|0}function Va(A,t,r){var s=0,o=0,l=0,c=0;e:if(t&&!((0|(o=r-4|0))<=0))for(l=(0|(r=e[t-4>>2]))!=34?(0|r)==39?r:0:r,r=0;;){if(c=r,!(r=e[t>>2]))break e;A:{if(!l){if((0|r)==32|r-9>>>0<5)break e;if((0|r)!=47)break A;break e}if((0|c)!=92&&(0|r)==(0|l))break e}if(t=t+4|0,!((0|o)>(0|(s=Ar(r,A+s|0)+s|0))))break}return d[A+s|0]=0,s}function zt(A){var t=0;e:if(!Xe(A)){t=0;A:if(!(A>>>0<768)){if(A-2305>>>0<=1270){if((124&A)>>>0<100)break e;if(t=1,Us(93850,A))break A;return A-3450>>>0<6}if((0|A)==1541|A-1456>>>0<19|(0|A)==1648||(0|(t=-256&A))==10240|(0|t)==4352|A-3904>>>0<125|A>>>0<880)break e;t=1,A-1611>>>0<20||(t=A-12353>>>0<30400)}return t}return 1}function an(A,t){var r=0;A?((r=e[A+4>>2])&&DA(133208,r),(r=e[A>>2])&&Rt(133168,r,40),e[33289]=u[A+14|0],e[33291]=u[A+13|0],e[33290]=u[A+12|0],Rt(134672,u[0|t]!=33|u[t+1|0]!=118?t:(u[t+2|0]==47?3:0)+t|0,40),A=e[50298],e[33678]=e[50297],e[33679]=A,A=e[50302],e[33682]=e[50301],e[33683]=A,A=e[50300],e[33680]=e[50299],e[33681]=A):eA(133152,0,76)}function Pn(A,t,r,s){d[A+53|0]=1;e:if(e[A+4>>2]==(0|r)){d[A+52|0]=1;A:{if(!(r=e[A+16>>2])){if(e[A+36>>2]=1,e[A+24>>2]=s,e[A+16>>2]=t,(0|s)!=1)break e;if(e[A+48>>2]==1)break A;break e}if((0|t)==(0|r)){if((0|(r=e[A+24>>2]))==2&&(e[A+24>>2]=s,r=s),e[A+48>>2]!=1)break e;if((0|r)==1)break A;break e}e[A+36>>2]=e[A+36>>2]+1}d[A+54|0]=1}}function Os(A,t){var r=0,s=0,o=0,l=0,c=0;e:if(r=e[t>>2])for(;;){s=0;A:if(A){for(;c=d[s+r|0],(o=e[(s<<2)+A>>2])&&(s=s+1|0,(0|c)==(0|o)););r:switch(o-34|0){case 0:case 5:break r;default:break A}if(!c)break e}if(!(r=e[((l=l+1|0)<<3)+t>>2]))break}return e[4+((l<<3)+t|0)>>2]}function Bs(A,t){e:if((0|t)>=1024){if(A*=898846567431158e293,t>>>0<2047){t=t-1023|0;break e}A*=898846567431158e293,t=((0|t)>=3069?3069:t)-2046|0}else(0|t)>-1023||(A*=2004168360008973e-307,t>>>0>4294965304?t=t+969|0:(A*=2004168360008973e-307,t=((0|t)<=-2960?-2960:t)+1938|0));return x(0,0),x(1,t+1023<<20),A*+S()}function zs(A,t,r,s){var o,l,c,f=0;return H=l=H-16|0,e[l+12>>2]=s,H=o=H-160|0,c=t?A:o+158|0,e[o+144>>2]=c,f=-1,A=t-1|0,e[o+148>>2]=A>>>0<=t>>>0?A:0,A=eA(o,0,144),e[A+76>>2]=-1,e[A+36>>2]=17,e[A+80>>2]=-1,e[A+44>>2]=A+159,e[A+84>>2]=A+144,(0|t)<0?e[56798]=61:(d[0|c]=0,f=Lt(A,r,s,15,16)),H=A+160|0,H=l+16|0,f}function nn(A,t){var r=0,s=0,o=0;e:if(r=u[0|A])for(;;){if(!(s=u[0|t])){o=r;break e}if((0|r)!=(0|s)&&(0|(s=r-65>>>0<26?32|r:r))!=(0|((r=u[0|t])-65>>>0<26?32|r:r))){o=u[0|A];break e}if(t=t+1|0,r=u[A+1|0],A=A+1|0,!r)break}return(o=(A=255&o)-65>>>0<26?32|A:A)-((A=u[0|t])-65>>>0<26?32|A:A)|0}function Qn(A,t,r){var s=0,o=0;if(s=e[r+72>>2],e[r+72>>2]=s-1|s,(0|(s=e[r+4>>2]))==(0|(o=e[r+8>>2]))?s=t:(SA(A,s,s=t>>>0>(s=o-s|0)>>>0?s:t),e[r+4>>2]=s+e[r+4>>2],A=A+s|0,s=t-s|0),s)for(;;){if(un(r)||!(o=0|$A[e[r+32>>2]](r,A,s)))return t-s|0;if(A=A+o|0,!(s=s-o|0))break}return t}function da(A){for(var t=0,r=0,s=0,o=0;A=(t=A)+1|0,(0|(r=d[0|t]))==32|r-9>>>0<5;);e:{A:{r:switch((r=d[0|t])-43|0){case 0:break A;case 2:break r;default:break e}o=1}r=d[0|A],t=A}if(r-48>>>0<10)for(;s=48+(O(s,10)-d[0|t]|0)|0,A=d[t+1|0],t=t+1|0,A-48>>>0<10;);return o?s:0-s|0}function Fn(A,t){var r,s,o,l=0;return H=r=H-32|0,e[t>>2]=0,e[t+4>>2]=0,e[(l=s=t+24|0)>>2]=0,e[l+4>>2]=0,e[(l=o=t+16|0)>>2]=0,e[l+4>>2]=0,e[(l=t+8|0)>>2]=0,e[l+4>>2]=0,e[r+28>>2]=t+28,e[r+24>>2]=s,e[r+20>>2]=t+20,e[r+16>>2]=o,e[r+12>>2]=t+12,e[r+8>>2]=l,e[r+4>>2]=t+4,e[r>>2]=t,A=UA(A,84553,r),H=r+32|0,A}function on(A){var t=0,r=0,s=0;if((t=u[0|A])&&((r=u[A+1|0])?(r=t|r<<8,(t=u[A+2|0])&&(r|=t<<16,(A=u[A+3|0])&&(r|=A<<24))):r=t),(0|(t=e[36115]))>0)for(A=0;;){if(!(!(s=e[144464+(A<<2)>>2])|e[s>>2]!=(0|r)))return u[s+10|0];if((0|t)==(0|(A=A+1|0)))break}return 0}function wa(A,t,r,s){var o,l=0,c=0,f=0,m=0,I=0;H=o=H-240|0,e[o>>2]=A,f=1;e:if(!((0|r)<2))for(l=A;;){if((0|$a(A,c=(l=l-4|0)-e[((m=r-2|0)<<2)+s>>2]|0,t))>=0&&(0|$a(A,l,t))>=0)break e;if(I=c,l=(c=(0|$a(c,l,t))>=0)?I:l,e[(f<<2)+o>>2]=l,f=f+1|0,!((0|(r=c?r-1|0:m))>1))break}li(o,f),H=o+240|0}function cA(A,t,r){var s,o,l,c=0;return H=o=H-16|0,e[o+12>>2]=r,H=s=H-160|0,SA(l=s+8|0,124528,144),e[s+52>>2]=A,e[s+28>>2]=A,c=(c=-2-A|0)>>>0>2147483647?2147483647:c,e[s+56>>2]=c,A=A+c|0,e[s+36>>2]=A,e[s+24>>2]=A,A=Yi(l,t,r),c&&(t=e[s+28>>2],d[t-((0|t)==e[s+24>>2])|0]=0),H=s+160|0,H=o+16|0,A}function li(A,t){var r,s=0,o=0,l=0,c=0,f=0;if(s=4,H=r=H-256|0,(0|t)>=2)for(e[(f=(t<<2)+A|0)>>2]=r;;){for(l=s>>>0>=256?256:s,SA(e[f>>2],e[A>>2],l),o=0;c=(o<<2)+A|0,o=o+1|0,SA(e[c>>2],e[(o<<2)+A>>2],l),e[c>>2]=e[c>>2]+l,(0|t)!=(0|o););if(!(s=s-l|0))break}H=r+256|0}function TA(A,t,r){var s,o=0;return H=s=H-96|0,e[s+88>>2]=0,e[s+92>>2]=1073741824,e[s+84>>2]=t,t=IA(A,s+84|0,r,s+88|0,2,0),536870912&(o=e[s+88>>2])?(t=e[47202],e[47202]=0,d[s+2|0]=32,k[s>>1]=8192,Rt(o=3|s,e[s+84>>2],77),A=Z(A,o,0,0),DA(r,189088),e[47202]=t):A=t?o:0,H=s+96|0,A}function Hs(A,t,r){var s=0,o=0,l=0;o=Ua(A),s=e[t>>2];e:{A:if((0|o)>=0){if(s){if(!tr(A,r))break A;(l=e[s+688>>2])&&FA(l),FA(s),e[t>>2]=0}e[t>>2]=kA(A),A=DA(r,A),ds(r=e[t>>2],r+228|0,0)&&(rs(e[e[32972]+60>>2]),d[0|A]=0,o=-1),s=e[t>>2],e[s+292>>2]=o}else if(!s)break e;d[s+268|0]=0}return o}function ln(A){var t=0,r=0;return(0|(t=e[A+76>>2]))>=0&(!t|e[56823]!=(-1073741825&t))?(r=e[(t=A+76|0)>>2],e[t>>2]=r||1073741823,(0|(r=e[A+4>>2]))==e[A+8>>2]?A=Qt(A):(e[A+4>>2]=r+1,A=u[0|r]),e[t>>2]=0,A):(0|(t=e[A+4>>2]))!=e[A+8>>2]?(e[A+4>>2]=t+1,u[0|t]):Qt(A)}function Zr(A,t,r){var s=0,o=0;e:{A:{if(r>>>0>=4){if(3&(A|t))break A;for(;;){if(e[A>>2]!=e[t>>2])break A;if(t=t+4|0,A=A+4|0,!((r=r-4|0)>>>0>3))break}}if(!r)break e}for(;;){if((0|(s=u[0|A]))==(0|(o=u[0|t]))){if(t=t+1|0,A=A+1|0,r=r-1|0)continue;break e}break}return s-o|0}return 0}function os(A,t){var r,s=0,o=0,l=0;H=r=H-16|0,t?(Pt(r,o=((s=t>>31)^t)-s|0,0,0,0,(s=be(o))+81|0),o=0+e[r+8>>2]|0,s=(65536^e[r+12>>2])+(16414-s<<16)|0,l=-2147483648&t|(s=o>>>0>>0?s+1|0:s),s=e[r+4>>2],t=e[r>>2]):t=0,e[A>>2]=t,e[A+4>>2]=s,e[A+8>>2]=o,e[A+12>>2]=l,H=r+16|0}function cn(A){var t,r=0,s=0,o=0;if((0|(r=ua(A,61)))==(0|A))return 0;e:if(!u[(t=r-A|0)+A|0]&&(r=e[56800])&&(s=e[r>>2])){for(;;){if(qA(A,s,t)||(s=e[r>>2]+t|0,u[0|s]!=61)){if(s=e[r+4>>2],r=r+4|0,s)continue;break e}break}o=s+1|0}return o}function Ua(A){var t=0,r=0;e:if(!((0|(r=e[34461]))<=0)){for(;;){if(!tr(A,O(t,44)+137856|0)){e[34457]=t;break e}if((0|r)==(0|(t=t+1|0)))break}return-1}return(A=(0|t)==(0|r))?-1:((0|(A=A?-1:t))!=e[36114]&&(e[36115]=0,vt(A),e[36114]=A,e[36115]=e[36115]+1),t)}function fa(A,t,r,s){var o=0,l=0;e:if((32|u[0|t])!=32){if(o=((0|s)>2)<<1,l=WA(A,t,r,o=(0|s)>1?4|o:o),u[0|r]!=21)for(o|=1,t=t+l|0,l=1;;){if((32|u[0|t])==32)break e;if(t=WA(A,t,r,o)+t|0,l=l+1|0,u[0|r]==21)break}return DA(189088,r),0}return Pr(A,r,s,l),t}function Ar(A,t){var r,s=0,o=0,l=0;if(A>>>0<=127)return d[0|t]=A,1;if(A>>>0>=1114112)return d[0|t]=32,1;for(s=O(r=A>>>0<2048?1:A>>>0<65536?2:3,6),d[0|t]=u[r+93842|0]|A>>>s;s=s-6|0,d[(o=o+1|0)+t|0]=A>>>s&63|128,(0|(l=l+1|0))!=(0|r););return r+1|0}function Sn(A){var t=0,r=0;e:{if((0|(t=e[A+12>>2]))>=e[A+16>>2]){if(t=0,(0|(r=0|ge(e[A+8>>2],A+24|0,2048)))<=0){if(!r|(0|r)==-44)break e;return e[56798]=0-r,0}e[A+16>>2]=r}r=t,t=A+t|0,e[A+12>>2]=r+y[t+40>>1],r=e[t+36>>2],e[A>>2]=e[t+32>>2],e[A+4>>2]=r,t=t+24|0}return t}function ci(A,t){var r,s=0;if(s=e[A+632>>2])return!!(0|Mt(s,t));e:{A:{if((0|(r=e[A+600>>2]))>0){if(s=0,(t=t-r|0)-1>>>0<255)break A;break e}if((s=t-192|0)>>>0<=413)return 128&u[344+(u[s+94240|0]+A|0)|0];if(s=0,t>>>0>255)break e}s=128&u[344+(A+t|0)|0]}return s}function Ka(A,t,r){var s,o,l;return l=(s=A*A)*(s*s)*(158969099521155e-24*s-25050760253406863e-24)+(s*(27557313707070068e-22*s-.0001984126982985795)+.00833333333332249),o=s*A,r?A-(s*(.5*t-l*o)-t+.16666666666666632*o):o*(s*l-.16666666666666632)+A}function ra(A,t){var r,s=0,o=0,l=0;H=r=H-16|0,t?(Pt(r,s=t,0,0,0,(t=be(t))+81|0),s=0+e[r+8>>2]|0,t=(65536^e[r+12>>2])+(16414-t<<16)|0,l=o>>>0>s>>>0?t+1|0:t,o=e[r+4>>2],t=e[r>>2]):t=0,e[A>>2]=t,e[A+4>>2]=o,e[A+8>>2]=s,e[A+12>>2]=l,H=r+16|0}function ka(A){var t,r=0;H=t=H-16|0,d[t+15|0]=10;e:{if(!(r=e[A+16>>2])){if(va(A))break e;r=e[A+16>>2]}(0|r)==(0|(r=e[A+20>>2]))|e[A+80>>2]==10?$A[e[A+36>>2]](A,t+15|0,1):(e[A+20>>2]=r+1,d[0|r]=10)}H=t+16|0}function un(A){var t,r=0;return r=e[A+72>>2],e[A+72>>2]=r-1|r,e[A+20>>2]!=e[A+28>>2]&&$A[e[A+36>>2]](A,0,0),e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,4&(r=e[A>>2])?(e[A>>2]=32|r,-1):(t=e[A+44>>2]+e[A+48>>2]|0,e[A+8>>2]=t,e[A+4>>2]=t,r<<27>>31)}function Ea(A){var t=0;e:{A:{r:{a:{if((0|(A=si(A)))<=268437502){if(!A)break e;if((0|A)==268436479)break A;if((0|A)!=268437247)break a;return 2}if((0|A)==268437503|(0|A)==268437759)break r;if((0|A)==268439295)break e}return-1}return 2}t=1}return t}function BA(A){var t=0,r=0,s=0;e:{if(3&(t=A))for(;;){if(!u[0|t])break e;if(!(3&(t=t+1|0)))break}for(;r=t,t=t+4|0,!(~(s=e[r>>2])&s-16843009&-2139062144););for(;r=(t=r)+1|0,u[0|t];);}return t-A|0}function fs(A,t,r){var s,o=0,l=0,c=0;e[A+112>>2]=t,e[A+116>>2]=r,s=e[A+4>>2],o=e[A+44>>2]-s|0,e[A+120>>2]=o,e[A+124>>2]=o>>31,o=e[A+8>>2],t|r&&((0|r)>=(0|(c=(l=o-s|0)>>31))&t>>>0>=l>>>0|(0|r)>(0|c)||(o=t+s|0)),e[A+104>>2]=o}function On(A,t){var r,s,o=0;if(F(+A),r=0|B(1),s=0|B(0),(0|(o=r>>>20&2047))!=2047){if(!o)return A==0?o=0:(A=On(18446744073709552e3*A,t),o=e[t>>2]+-64|0),e[t>>2]=o,A;e[t>>2]=o-1022,x(0,0|s),x(1,-2146435073&r|1071644672),A=+S()}return A}function ui(A,t,r){return e[A+20>>2]!=e[A+28>>2]&&($A[e[A+36>>2]](A,0,0),!e[A+20>>2])||(e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,$A[e[A+40>>2]](A,t,r,0),(0|me)<0)?-1:(e[A+4>>2]=0,e[A+8>>2]=0,e[A>>2]=-17&e[A>>2],0)}function Ma(A,t){var r,s,o=0;return(s=1-(o=.5*(r=A*A)))+(1-s-o+(r*(r*(r*(2480158728947673e-20*r-.001388888888887411)+.0416666666666666)+(o=r*r)*o*(r*(-11359647557788195e-27*r+2087572321298175e-24)-27557314351390663e-23))-A*t))}function ga(A,t,r){var s=0,o=0;if(t)for(;r=r-1|0,o=A,A=Ki(A,t,10),s=me,d[0|r]=o-st(A,s,10,0)|48,o=t>>>0>9,t=s,o;);if(A)for(;t=(A>>>0)/10|0,d[0|(r=r-1|0)]=A-O(t,10)|48,s=A>>>0>9,A=t,s;);return r}function zn(A,t){var r=0,s=0,o=0;e:if(A){for(;o=d[t+r|0],(s=e[(r<<2)+A>>2])&&(r=r+1|0,(0|o)==(0|s)););A:switch(s-34|0){case 0:case 5:break A;default:break e}if(!o)return 0}return 1}function Ba(A,t,r){var s,o=0;return H=s=H-16|0,!(64&t)&&(o=0,4259840&~t)||(e[s+12>>2]=r+4,o=e[r>>2]),e[s>>2]=o,e[s+4>>2]=0,(A=0|ue(-100,0|A,32768|t,0|s))>>>0>=4294963201&&(e[56798]=0-A,A=-1),H=s+16|0,A}function qA(A,t,r){var s=0,o=0,l=0;if(!r)return 0;e:if(s=u[0|A]){for(;;){if((o=u[0|t])&&!(!(r=r-1|0)|(0|s)!=(0|o))){if(t=t+1|0,s=u[A+1|0],A=A+1|0,s)continue;break e}break}l=s}return(255&l)-u[0|t]|0}function Nn(A,t){var r,s=0;H=s=H-128|0,s=eA(s,0,128),d[s+98|0]=9,d[s+66|0]=9,d[s+34|0]=A,k[s+68>>1]=1,r=e[36125],e[s+104>>2]=r,e[s+72>>2]=r,e[s+40>>2]=e[144464+(A<<2)>>2],d[s+2|0]=9,e[s+8>>2]=r,KA(0,0,s+32|0,t,0),H=s+128|0}function dn(A){var t=0,r=0,s=0;if(d[e[A>>2]]-48>>>0>=10)return 0;for(;s=e[A>>2],r=-1,t>>>0<=214748364&&(r=(0|(r=d[0|s]-48|0))>(2147483647^(t=O(t,10)))?-1:r+t|0),e[A>>2]=s+1,t=r,d[s+1|0]-48>>>0<10;);return t}function Ln(A,t){var r=0;if(!(!A|e[A>>2]-48>>>0>=10)){if(e[A>>2]-48>>>0<10)for(;r=(e[A>>2]+O(r,10)|0)-48|0,e[(A=A+4|0)>>2]-48>>>0<10;);(0|t)==1&&(r=(0|vs(e[A>>2]))==115?O(r,1e3):r)}return r}function gr(A){var t=0;t=1;e:{A:switch(0|Xr(A)){case 30:if(t=0,(0|A)==160|(0|A)==8199|(0|A)==8239)break e;return 1;case 0:if(A-9>>>0<5)return 1;if((0|A)==133)break e;break;case 28:case 29:break e;default:break A}t=0}return t}function ks(A,t,r){var s,o=0;return H=s=H-16|0,d[s+6|0]=0,d[s+7|0]=95,o=Ar(o=t,t=s+8|0)+s|0,d[o+8|0]=32,d[o+9|0]=0,TA(A,s+7|0,r)||(d[s+7|0]=32,TA(A,t,r)||At(A,t,r,20,0,0,0)),H=s+16|0,d[0|r]}function Xa(A){var t=0,r=0;r=170;e:if(!((0|A)<170))for(;;){if((0|A)==(0|r))return y[101616+(t<<1|2)>>1];if((2147483646&(t=t+2|0))==124)break e;if(!((0|(r=y[101616+(t<<1)>>1]))<=(0|A)))break}return 0}function st(A,t,r,s){var o,l,c,f,m=0,I=0;return f=O(m=r>>>16|0,I=A>>>16|0),m=(65535&(I=((c=O(o=65535&r,l=65535&A))>>>16|0)+O(I,o)|0))+O(m,l)|0,me=(O(t,r)+f|0)+O(A,s)+(I>>>16)+(m>>>16)|0,65535&c|m<<16}function vs(A){var t=0,r=0,s=0,o=0;for(t=2778;;){if((0|(r=e[1040+((s=(t+o|0)/2|0)<<4)>>2]))==(0|A))return(t=e[1048+(s<<4)>>2])||A;if(!((0|(o=(r=A>>>0>r>>>0)?s+1|0:o))<=(0|(t=r?t:s-1|0))))break}return A}function fn(A){var t=0,r=0,s=0,o=0;for(t=2778;;){if((0|(r=e[1040+((s=(t+o|0)/2|0)<<4)>>2]))==(0|A))return(t=e[1044+(s<<4)>>2])||A;if(!((0|(o=(r=A>>>0>r>>>0)?s+1|0:o))<=(0|(t=r?t:s-1|0))))break}return A}function Ns(A){var t,r=0;return H=t=H-112|0,(A=0|Le(0|A,0|t))>>>0>=4294963201&&(e[56798]=0-A,A=-1),r=0-e[56798]|0,A||(r=-31,(61440&e[t+12>>2])!=16384&&(r=e[t+40>>2])),H=t+112|0,A=r}function Za(A,t,r){var s;if(!(s=e[A+16>>2]))return e[A+36>>2]=1,e[A+24>>2]=r,void(e[A+16>>2]=t);e:{if((0|t)==(0|s)){if(e[A+24>>2]!=2)break e;return void(e[A+24>>2]=r)}d[A+54|0]=1,e[A+24>>2]=2,e[A+36>>2]=e[A+36>>2]+1}}function Sr(A,t,r,s,o){var l;if(H=l=H-256|0,!(73728&o|(0|r)<=(0|s))){if(eA(l,255&t,(r=(s=r-s|0)>>>0<256)?s:256),!r)for(;_r(A,l,256),(s=s-256|0)>>>0>255;);_r(A,l,s)}H=l+256|0}function Vs(A,t,r){var s=0;e:{if(A){if(s=e[A>>2]){FA(e[s+4>>2]),s=e[A>>2];break e}if(s=it(16),e[A>>2]=s,s)break e;t=48}return t}return e[s>>2]=0,e[s+4>>2]=jn(r),A=e[A>>2],e[A+8>>2]=0,e[A+12>>2]=0,t}function Dr(A){var t=0,r=0;yr(A),$A[e[A+12>>2]](A),1&d[0|A]||((t=e[A+52>>2])&&(e[t+56>>2]=e[A+56>>2]),(r=e[A+56>>2])&&(e[r+52>>2]=t),e[56816]==(0|A)&&(e[56816]=r),FA(e[A+96>>2]),FA(A))}function Es(A){var t=0,r=0;t=1;e:{A:{r:{a:switch((r=Xr(A))-9|0){case 1:break e;case 6:case 18:break r;case 0:break a;default:break A}return(0|vs(A))!=(0|A)}return aA(A,r)>>>15&1}t=0}return t}function Ja(A){var t,r,s,o=0,l=0;if(s=BA(A)+1|0,o=e[33282],(0|(r=(t=e[33287])+s|0))>=e[33286]){if(!(o=Ut(o,l=r+1e3|0)))return-1;e[33286]=l,e[33282]=o}return SA(o+t|0,A,s),e[33287]=r,t}function va(A){var t=0;return t=e[A+72>>2],e[A+72>>2]=t-1|t,8&(t=e[A>>2])?(e[A>>2]=32|t,-1):(e[A+4>>2]=0,e[A+8>>2]=0,t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,e[A+16>>2]=t+e[A+48>>2],0)}function _n(A,t,r,s){e:if(A){A:switch(t+2|0){case 0:return void(d[0|A]=r);case 1:return void(k[A>>1]=r);case 2:case 3:return void(e[A>>2]=r);case 5:break A;default:break e}e[A>>2]=r,e[A+4>>2]=s}}function gn(A,t,r,s,o,l,c,f,m){var I;H=I=H-16|0,Ot(I,t,r,s,o,l,c,f,-2147483648^m),s=e[I>>2],r=e[I+4>>2],t=e[I+12>>2],e[A+8>>2]=e[I+8>>2],e[A+12>>2]=t,e[A>>2]=s,e[A+4>>2]=r,H=I+16|0}function tr(A,t){var r=0,s=0;e:if(!(!(r=u[0|A])|(0|r)!=(0|(s=u[0|t]))))for(;;){if(s=u[t+1|0],!(r=u[A+1|0]))break e;if(t=t+1|0,A=A+1|0,(0|r)!=(0|s))break}return r-s|0}function xa(A,t){var r=0,s=0,o=0;if(!(r=e[A>>2]))return 84399;if(e[A+4>>2]!=(0|t))for(;;){if(!(r=e[(s=A+8|0)>>2]))return 84399;if(o=A,A=s,e[o+12>>2]==(0|t))break}return r}function Rn(A,t,r){var s=0,o=0,l=0;e:if(r){for(;;){if(!(!(s=e[t>>2])|!(o=e[A>>2])|(0|s)!=(0|o))){if(t=t+4|0,A=A+4|0,r=r-1|0)continue;break e}break}l=o-s|0}return l}function Vr(A){var t,r=0,s=0;if((0|(t=e[36115]))>0)for(;;){if(!(!(s=e[144464+(r<<2)>>2])|e[s>>2]!=(0|A)))return u[s+10|0];if((0|t)==(0|(r=r+1|0)))break}return 0}function P(A){var t,r;return(A=(t=e[33175])+(r=A+7&-8)|0)>>>0<=t>>>0&&r||A>>>0>V.byteLength/65536<<16>>>0&&!(0|MA(0|A))?(e[56798]=48,-1):(e[33175]=A,t)}function j(A){var t=0;e:if(!((t=Xr(A))>>>0>27)){if(!(1<>>14&1}return 0}function J(A,t){var r=0;return d[0|A]=t>>>24,d[0|(r=(t>>>0>16777215)+A|0)]=t>>>16,d[0|(r=r+!!(16711680&t)|0)]=t>>>8,d[0|(r=r+!!(65280&t)|0)]=t,d[r+!!(255&t)|0]=0,A}function ae(A,t){e:if((0|(A=Qr(A,t)))<=268437502){if(!A|(0|A)==268436479|(0|A)!=268437247)break e;return}}function ce(A){var t=0;return t=e[A>>2]-1|0,(t=d[121600+(O(0-t&t,124511785)>>>27|0)|0])||(A=e[A+4>>2],t=(A=d[121600+(O(0-A&A,124511785)>>>27|0)|0])?A+32|0:0),t}function Se(A){var t=0,r=0,s=0;e:{if(!((t=Xr(A))>>>0>27)){if(r=1,116672&(s=1<>>10&1}r=0}return r}function Xe(A){var t=0,r=0,s=0;e:{if(!((t=Xr(A))>>>0>27)){if(r=1,34752&(s=1<>>10&1}r=0}return r}function uA(){var A,t=0;(A=e[56797])&&((t=e[A+8>>2])&&$A[e[e[t>>2]+12>>2]](t),(t=e[A+4>>2])&&$A[e[e[t>>2]+16>>2]](t),FA(A)),e[56797]=0,e[56797]=ea()}function xA(A,t){var r=0;return A&&(r=st(A,0,t,0),(A|t)>>>0<65536||(r=me?-1:r)),!(A=it(r))|!(3&u[A-4|0])||eA(A,0,r),A}function NA(A,t){var r,s;s=e[130128+(t-O(r=(0|t)/100|0,100)<<2)>>2],e[A+100>>2]=s,e[A+96>>2]=s,t+99>>>0>=199&&(e[A+100>>2]=e[130128+(r<<2)>>2])}function ct(A){var t=0;(t=it(1344))&&(A=SA(t,A,1344),t=216192+(e[50758]<<4)|0,e[t>>2]=11,e[t+8>>2]=A,A=e[50758]+1|0,e[50758]=(0|A)<=169?A:0)}function ft(A,t){var r=0;e:if(r=e[A>>2])for(;;){if(t&&!tr(t,r))break e;if(!(r=e[(A=A+8|0)>>2]))break}return e[A+4>>2]}function Qt(A){var t,r=0;return H=t=H-16|0,r=-1,un(A)||(0|$A[e[A+32>>2]](A,t+15|0,1))==1&&(r=u[t+15|0]),H=t+16|0,r}function Mt(A,t){var r=0,s=0;if(t){for(;s=A,(r=e[A>>2])&&(A=s+4|0,(0|t)!=(0|r)););return r?s:0}return(_i(A)<<2)+A|0}function Us(A,t){var r=0,s=0;if(r=y[A>>1])for(;;){if(s=s+1|0,(0|t)==(0|r))return s;if(!(r=y[(s<<1)+A>>1]))break}return 0}function pn(A,t){var r=0,s=0;t>>>0<=31?(s=e[A>>2],r=A+4|0):(t=t-32|0,r=A),r=e[r>>2],e[A>>2]=s<>2]=r<>>32-t}function di(A,t){var r=0,s=0;r=e[A+4>>2],t>>>0<=31?s=e[A>>2]:(t=t-32|0,s=r,r=0),e[A+4>>2]=r>>>t,e[A>>2]=r<<32-t|s>>>t}function gs(A){var t=0;A=A||1;e:{for(;;){if(t=it(A))break e;if(!(t=e[57276]))break;$A[0|t]()}pA(),R()}return t}function fi(A){return A>>>0<=131071?u[117424+(A>>>3&31|u[117424+(A>>>8|0)|0]<<5)|0]>>>(7&A)&1:A>>>0<196606}function ho(A,t,r,s,o,l,c,f,m){e[A>>2]=t,e[A+4>>2]=r,e[A+8>>2]=s,e[A+12>>2]=65535&o|(m>>>16&32768|o>>>16&32767)<<16}function Ks(A,t,r){return r?(0|A)==(0|t)?1:!tr(e[A+4>>2],e[t+4>>2]):e[A+4>>2]==e[t+4>>2]}function Co(A){var t=0;(0|(t=0|ye(-100,0|A,0)))==-31&&(t=0|fe(0|A)),t>>>0>=4294963201&&(e[56798]=0-t)}function Li(){var A;A=it(84)+80|0,e[A>>2]=125420,e[A>>2]=125380,e[A>>2]=125400,AA(0|A,125512,9),R()}function gi(A){var t,r;return t=ln(A),r=ln(A),ln(A)<<16&16711680|r<<8&65280|255&t|ln(A)<<24}function mn(A){var t=0;return A?(t=1,A-9472>>>0<160|A-65529>>>0<7||(t=gr(A)),t):0}function bo(A,t){var r;return r=t>>31,A=(e[A+76>>2],ui(A,t,r))}function _i(A){var t=0,r=0;for(r=A;r=(t=r)+4|0,e[t>>2];);return t-A>>2}function Io(A,t){return d[0|A]=t,d[A+4|0]=0,d[A+3|0]=t>>>24,d[A+2|0]=t>>>16,d[A+1|0]=t>>>8,A}function ts(A,t){var r=0;return(-1>>>(r=31&t)&A)<>>A}function hn(A,t){var r=0;return(0|A)==73&&(r=305,u[t+173|0])||(r=vs(A)),r}function rs(A){e[36114]!=(0|A)&&(e[36115]=0,vt(A),e[36114]=A,e[36115]=e[36115]+1)}function Ri(A){return A?e[34460]+A|0:(pi(85328,20,e[30450]),e[32320])}function jn(A){var t,r;return(r=it(t=BA(A)+1|0))?SA(r,A,t):0}function wo(){var A;e[33287]=0,(A=e[33282])&&(FA(A),e[33286]=0,e[33282]=0)}function rr(A,t,r){var s;H=s=H-16|0,e[s+12>>2]=r,Yi(A,t,r),H=s+16|0}function pi(A,t,r){A=(e[r+76>>2],oi(A,t,r))}function qa(A,t){return t?A<<24|(65280&A)<<8|A>>>8&65280|A>>>24:A}function Cn(A){return A=A-8212>>>0>=12?Us(93856,A):1}function ko(A){var t=0;A&&((t=e[A+688>>2])&&FA(t),FA(A))}function Eo(A){return A=(0|A)<=127?Ls(87712,A):0}function mi(A){return!(A=u[0|A]?1:Zr(A,A+1|0,3))}function Mo(A){(A=(0|(A=0|De(0|A)))!=27?A:0)&&(e[56798]=A)}function $a(A,t,r){return A|=0,t|=0,0|$A[0|(r|=0)](A,t)}function Ls(A,t){return A=ua(A,t),u[0|A]==(255&t)?A:0}function ji(A,t){return ja(A,t,2147483647),me=fA,oA}function hi(A){return A?31-be(A-1^A)|0:32}function _r(A,t,r){32&u[0|A]||oi(t,r,A)}function Rt(A,t,r){d[(jt(A,t,r)+r|0)-1|0]=0}function Wn(A){return Hs(A,188776,189328)}function Wi(A,t){t|=0,e[(A|=0)+8>>2]=t}function Yi(A,t,r){return Lt(A,t,r,0,0)}function Bo(A){return e[(A|=0)+12>>2]}function Hi(A){return e[(A|=0)+16>>2]}function vo(A){return e[(A|=0)+20>>2]}function Vi(A){return e[(A|=0)+8>>2]}function Ui(A){return e[(A|=0)+4>>2]}function xo(A){return e[(A|=0)>>2]}function Ki(A,t,r){return ja(A,t,r)}function Yn(A){(A|=0)&&FA(A)}function Jr(A,t){DA(BA(A)+A|0,t)}function Xi(A){return 0|(A|=0)}function yo(A){return 0}function bn(A){FA(A|=0)}function Zi(A){}C(g=u,1024,"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"),C(g,45536,"HhYWFhgWFhYXExYaFhIWFg4ODg4ODg4ODg4WFhoaGhYWCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoXFhMZERkGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhcaExo="),C(g,45664,"HhYYGBgYGxYZGwgVGgEbGRsaEBAZBhYWGRAIFBAQEBYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgYGCgoGCgYKCgYKCgoGBgoKCgoGCgoGCgoKBgYGCgoGCgoGCgYKBgoKBgoGBgoGCgoGCgoKBgoGCgoGBggKBgYGCAgICAoJBgoJBgoJBgoGCgYKBgoGCgYKBgoGCgYGCgYKBgoGCgYKBgoGCgYKBgoGBgoJBgoGCgoKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYKCgYKCgYGCgYKCgoKBgoGCgYKBgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYIBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBwcHBwcHBwcHBwcHBwcHBwcHGRkZGQcHBwcHBwcHBwcHBxkZGRkZGRkZGRkZGRkZBwcHBwcZGRkZGRkZBxkHGRkZGRkZGRkZGRkZGRkZGRkNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NCgYKBgcZCgYCAgcGBgYWCgICAgIZGQoWCgoKAgoCCgoGCgoKCgoKCgoKCgoKCgoKCgoCCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKBgYKCgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGCgYaCgYKCgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBhsNDQ0NDQwMCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgoGCgYKBgoGCgYKBgoGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgICBxYWFhYWFgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGFhICAhsbGAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0SDRYNDRYNDRYNAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICBYWAgICAgICAgICAgIBAQEBAQEaGhoWFhgWFhsbDQ0NDQ0NDQ0NDQ0WAQIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwgICAgICAgICAgNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ODg4ODg4ODg4OFhYWFggIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYIDQ0NDQ0NDQEbDQ0NDQ0NBwcNDRsNDQ0NCAgODg4ODg4ODg4OCAgIGxsIFhYWFhYWFhYWFhYWFhYCAQgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NCAICAgICAgICAgICAgICDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQcHGxYWFgcCAg0YGAgICAgICAgICAgICAgICAgICAgICAgNDQ0NBw0NDQ0NDQ0NDQcNDQ0HDQ0NDQ0CAhYWFhYWFhYWFhYWFhYWFgIICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NAgIWAggICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgCAgICAgICAgICAgICAgICAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0BDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNCAsLCw0NDQ0NDQ0NCwsLCw0LCwgNDQ0NDQ0NCAgICAgICAgICA0NFhYODg4ODg4ODg4OFgcICAgICAgICAgICAgICAgNCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAICAggICAgCAg0ICwsLDQ0NDQICCwsCAgsLDQgCAgICAgICAgsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4ICBgYEBAQEBAQGxgIFg0CAg0NCwIICAgICAgCAgICCAgCAggICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAIICAIICAIICAICDQILCwsNDQICAgINDQICDQ0NAgICDQICAgICAgIICAgIAggCAgICAgICDg4ODg4ODg4ODg0NCAgIDRYCAgICAgICAgICDQ0LAggICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAgINCAsLCw0NDQ0NAg0NCwILCw0CAggCAgICAgICAgICAgICAgIICA0NAgIODg4ODg4ODg4OFhgCAgICAgICCA0NDQ0NDQINCwsCCAgICAgICAgCAggIAgIICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgCCAgCCAgICAgCAg0ICw0LDQ0NDQICCwsCAgsLDQICAgICAgICDQsCAgICCAgCCAgIDQ0CAg4ODg4ODg4ODg4bCBAQEBAQEAICAgICAgICAgINCAIICAgICAgCAgIICAgCCAgICAICAggIAggCCAgCAgIICAICAggICAICAggICAgICAgICAgICAICAgILCw0LCwICAgsLCwILCwsNAgIIAgICAgICCwICAgICAgICAgICAgICDg4ODg4ODg4ODhAQEBsbGxsbGxgbAgICAgINCwsLDQgICAgICAgIAggICAIICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgIAgICCA0NDQsLCwsCDQ0NAg0NDQ0CAgICAgICDQ0CCAgIAgICAgIICA0NAgIODg4ODg4ODg4OAgICAgICAgIQEBAQEBAQGwgNCwsWCAgICAgICAgCCAgIAggICAgICAgICAgICAgICAgICAgICAgIAggICAgICAgICAgCCAgICAgCAg0ICw0LCwsLCwINCwsCCwsNDQICAgICAgILCwICAgICAgIIAggIDQ0CAg4ODg4ODg4ODg4CCAgCAgICAgICAgICAgICDQ0LCwIICAgICAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQgLCwsNDQ0NAgsLCwILCwsNCBsCAgICCAgICxAQEBAQEBAICAgNDQICDg4ODg4ODg4ODhAQEBAQEBAQEBsICAgICAgCAgsLAggICAgICAgICAgICAgICAgICAICAggICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgCCAICCAgICAgICAICAg0CAgICCwsLDQ0NAg0CCwsLCwsLCwsCAgICAgIODg4ODg4ODg4OAgILCxYCAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAgNDQ0NDQ0NAgICAhgICAgICAgHDQ0NDQ0NDQ0WDg4ODg4ODg4ODhYWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggIAggCAggIAggCAggCAgICAgIICAgIAggICAgICAgCCAgIAggCCAICCAgCCAgICA0ICA0NDQ0NDQINDQgCAggICAgIAgcCDQ0NDQ0NAgIODg4ODg4ODg4OAgIICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIIGxsbFhYWFhYWFhYWFhYWFhYWGxYbGxsNDRsbGxsbGw4ODg4ODg4ODg4QEBAQEBAQEBAQGw0bDRsNFxMXEwsLCAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAg0NDQ0NDQ0NDQ0NDQ0NCw0NDQ0NFg0NCAgICAgNDQ0NDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0CGxsbGxsbGxsNGxsbGxsbAhsbFhYWFhYbGxsbFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLDQ0NDQsNDQ0NDQ0LDQ0LCw0NCA4ODg4ODg4ODg4WFhYWFhYICAgICAgLCw0NCAgICA0NDQgLCwsICAsLCwsLCwsICAgNDQ0NCAgICAgICAgICAgICA0LCw0NCwsLCwsLDQgLDg4ODg4ODg4ODgsLCw0bGwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgoCAgICAgoCAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYWBwYGBggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggICAgCAggICAgICAgCCAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgIAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAIIAggICAgCAggICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NFhYWFhYWFhYWEBAQEBAQEBAQEBAQEBAQEBAQEBACAgIICAgICAgICAgICAgICAgIGxsbGxsbGxsbGwICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIGBgYGBgYCAhIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYICAgICAgICAgICAgICAgICB4ICAgICAgICAgICAgICAgICAgICAgICAgICBcTAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhYWDw8PCAgICAgICAgCAgICAgICCAgICAgICAgICAgICAIICAgIDQ0NAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgNDQ0WFgICAgICAgICAggICAgICAgICAgICAgICAgICA0NAgICAgICAgICAgICCAgICAgICAgICAgICAIICAgCDQ0CAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0LDQ0NDQ0NDQsLCwsLCwsLDQsLDQ0NDQ0NDQ0NDQ0WFhYHFhYWGAgNAgIODg4ODg4ODg4OAgICAgICEBAQEBAQEBAQEAICAgICAhYWFhYWFhIWFhYWDQ0NAQIODg4ODg4ODg4OAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICCAgICAgNDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAg0NDQsLCwsNDQsLCwICAgILCw0LCwsLCwsNDQ0CAgICGwICAhYWDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICDg4ODg4ODg4ODhACAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCAgICAgICAgICAgICAgICAgICAgICAgNDQsLDQICFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsNCw0NDQ0NDQ0CDQsNCwsNDQ0NDQ0NDQsLCwsLCw0NDQ0NDQ0NDQ0CAg0ODg4ODg4ODg4OAgICAgICDg4ODg4ODg4ODgICAgICAhYWFhYWFhYHFhYWFhYWAgINDQ0NDQ0NDQ0NDQ0NDQwCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0NDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0NDQ0NCw0LCwsLCw0LCwgICAgICAgCAgICDg4ODg4ODg4ODhYWFhYWFhYbGxsbGxsbGxsbDQ0NDQ0NDQ0NGxsbGxsbGxsbAgICDQ0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0LCw0NCw0NDQgIDg4ODg4ODg4ODggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsNDQsLCw0LDQ0NCwsCAgICAgICAhYWFhYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwsLCw0NDQ0NDQ0NCwsNDQICAhYWFhYWDg4ODg4ODg4ODgICAggICA4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFgYGBgYGBgYGBgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgIKCgoWFhYWFhYWFgICAgICAgICDQ0NFg0NDQ0NDQ0NDQ0NDQ0LDQ0NDQ0NDQgICAgNCAgICAsLDQgICw0NAgICAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcGBgYGBgYGBgYGBgYGBwYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQINDQ0NDQoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgYGBgYGBgYGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGCgoKCgoKCgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGAgIKCgoKCgoCAgYGBgYGBgYGAgoCCgIKAgoGBgYGBgYGBgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYCAgYGBgYGBgYGCQkJCQkJCQkGBgYGBgYGBgkJCQkJCQkJBgYGBgYGBgYJCQkJCQkJCQYGBgYGAgYGCgoKCgkZBhkZGQYGBgIGBgoKCgoJGRkZBgYGBgICBgYKCgoKAhkZGQYGBgYGBgYGCgoKCgoZGRkCAgYGBgIGBgoKCgoJGRkCHh4eHh4eHh4eHh4BAQEBARISEhISEhYWFRQXFRUUFxUWFhYWFhYWFhwdAQEBAQEeFhYWFhYWFhYWFRQWFhYWEREWFhYaFxMWFhYWFhYWFhYWFhoWERYWFhYWFhYWFhYeAQEBAQECAQEBAQEBAQEBARAHAgIQEBAQEBAaGhoXEwcQEBAQEBAQEBAQGhoaFxMCBwcHBwcHBwcHBwcHBwICAhgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYAgICAgICAgICAgICAgICAg0NDQ0NDQ0NDQ0NDQ0MDAwMDQwMDA0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAhsbChsbGxsKGxsGCgoKBgYKCgoGGwobGxoKCgoKChsbGxsbGwobChsKGwoKCgobBgoKCgoGCAgICAYbGwYGCgoaGhoaGgoGBgYGGxobGwYbEBAQEBAQEBAQEBAQEBAQEA8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PCgYPDw8PEBsbAgICAhoaGhoaGxsbGxsaGhsbGxsaGxsaGxsaGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhobGxobGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsXExcTGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhsbGxsbGxsXExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsaGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbFxMXExcTFxMXExcTFxMQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaFxMaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExcTFxMXExoaGhoaGhoaGhoaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoXExcTFxMXExcTFxMXExcTFxMXExcTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMXExoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFxMaGhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaGhoaGhoaGhoaGhsbGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgIKBgoKCgYGCgYKBgoGCgoKCgYKBgYKBgYGBgYGBwcKCgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYGGxsbGxsbCgYKBg0NDQoGAgICAgIWFhYWEBYWBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYCBgICAgICBgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICBxYCAgICAgICAgICAgICAg0ICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAIICAgICAgIAggICAgICAgCCAgICAgICAINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFRQVFBYWFhUUFhUUFhYWFhYWFhYWEhYWEhYVFBYWFRQXExcTFxMXExYWFhYWBxYWFhYWFhYWFhYSEhYWFhYSFhcWFhYWFhYWFhYWFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICHhYWFhsHCA8XExcTFxMXExcTGxsXExcTFxMXExIXExMbDw8PDw8PDw8PDQ0NDQsLEgcHBwcHGxsPDw8HCBYbGwIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0ZGQcHCBIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWBwcHCAICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAhsbEBAQEBsbGxsbGxsbGxsICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAggICAgICAgICAgICAgICAgbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsQEBAQEBAQEBAQEBAQEBAbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgHBwcHBwcWFggICAgICAgICAgICAcWFhYICAgICAgICAgICAgICAgIDg4ODg4ODg4ODggIAgICAgICAgICAgICAgICAgICAgIKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCA0MDAwWDQ0NDQ0NDQ0NDRYHCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgcHDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8PDw8PDw8PDw0NFhYWFhYWAgICAgICAgIZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQcHBwcHBwcHBxkZCgYKBgoGCgYKBgoGCgYGBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoGBwYGBgYGBgYGCgYKBgoKBgoGCgYKBgoGBxkZCgYKBggKBgoGBgYKBgoGCgYKBgoGCgYKBgoGCgYKBgoKCgoKBgoKCgoKBgoGCgYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAcHBggICAgICAgNCAgIDQgICAgNCAgICAgICAgICAgICAgICAgICAgICAgLCw0NCxsbGxsCAgICEBAQEBAQGxsYGwICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFhYWAgICAgICAgILCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLCwsLCwsLCwsLCwsLCw0NAgICAgICAgIWFg4ODg4ODg4ODg4CAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ICAgICAgWFhYIFggIDQ4ODg4ODg4ODg4ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0WFggICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NDQ0NDQ0LCwICAgICAgICAgICFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsLDQ0NDQsLDQsLCwsWFhYWFhYWFhYWFhYWAgcODg4ODg4ODg4OAgICAhYWCAgICAgNBwgICAgICAgICA4ODg4ODg4ODg4ICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQsLDQ0LCw0NAgICAgICAgICCAgIDQgICAgICAgIDQsCAg4ODg4ODg4ODg4CAhYWFhYICAgICAgICAgICAgICAgIBwgICAgICBsbGwgLDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0IDQ0NCAgNDQgICAgIDQ0IDQgCAgICAgICAgICAgICAgICAgICAgICAgIICAcWFggICAgICAgICAgICw0NCwsWFggHBwsNAgICAgICAgICAggICAgICAICCAgICAgIAgIICAgICAgCAgICAgICAgIICAgICAgIAggICAgICAgCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhkHBwcHBgYGBgYGAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCw0LCw0LCxYLDQICDg4ODg4ODg4ODgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgCAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBgYGBgYCAgICAgICAgICAgIGBgYGBgICAgICCA0ICAgICAgICAgIGggICAgICAgICAgICAgCCAgICAgCCAIICAIICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGRkZGRkZGRkZGRkZGRkZAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMXAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgYGwICDQ0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYXExYCAgICAgINDQ0NDQ0NDQ0NDQ0NDQ0NFhISEREXExcTFxMXExcTFxMXExcTFhYXExYWFhYREREWFhYCFhYWFhIXExcTFxMWFhYaEhoaGgIWGBYWAgICAggICAgIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAQIWFhYYFhYWFxMWGhYSFhYODg4ODg4ODg4OFhYaGhoWFgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKFxYTGREZBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYXGhMaFxMWFxMWFggICAgICAgICAgHCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIBwcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICCAgICAgIAgIICAgICAgCAggICAgICAICCAgIAgICGBgaGRsYGAIbGhoaGhsbAgICAgICAgICAgEBARsbAgIICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgCCAgICAgICAgICAgICAgICAgICAIICAIICAgICAgICAgICAgICAgCAggICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICFhYWAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PEBAQEBsbGxsbGxsbGxsbGxsbGxsbEBAbGxsCGxsbGxsbGxsbGxsbAgICAhsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGw0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICDRAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQEBACAgICAgICAgIICAgICAgICAgICAgICAgICAgICA8ICAgICAgICA8CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0CAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAIWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAggICAgICAgIFg8PDw8PAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg4ODg4ODg4ODg4CAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAgICBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgIICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgIAgIIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAgICCAICCAgICAgICAgICAgICAgICAgICAgICAgCFhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAgICAgbGxAQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgIQEBAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIAggIAgICAgIQEBAQEAgICAgICAgICAgICAgICAgICAgICAgQEBAQEBACAgIWCAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICEBAICBAQEBAQEBAQEBAQEBAQEBACAhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIDQ0NAg0NAgICAgINDQ0NCAgICAIICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAg0NDQICAgINEBAQEBAQEBAQAgICAgICAhYWFhYWFhYWFgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICBsICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0CAgICEBAQEBAWFhYWFhYWAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICFhYWFhYWFggICAgICAgICAgICAgICAgICAgICAgCAhAQEBAQEBAQCAgICAgICAgICAgICAgICAgICAICAgICEBAQEBAQEBAICAgICAgICAgICAgICAgICAgCAgICAgICFhYWFgICAgICAgICAgICAhAQEBAQEBACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgICAgICAgICAgICAgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICAgICAgIQEBAQEBAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQ0NAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQEBAQEBAQEAgCAgICAgICAggICAgICAgICAgICAgICAgICAgICAgNDQ0NDQ0NDQ0NDRAQEBAWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0NDQ0NDQ0NDRYWFhYWFhYCAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAODg4ODg4ODg4OAgICAgICAgICAgICAgICDQ0NCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLCw0NDQ0LCw0NFhYBFhYWFgICAgICAgICAgICAQICCAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgIODg4ODg4ODg4OAgICAgICDQ0NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0LDQ0NDQ0NDQ0CDg4ODg4ODg4ODhYWFhYICwsCAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0WFggCAgICAgICAgINDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQ0LCwgICAgWFhYWDQ0NDRYCAg4ODg4ODg4ODg4IFggWFhYCEBAQEBAQEBAQEBAQEBAQEBAQEBACAgICAgICAgICAggICAgICAgICAgICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NCwsNCw0NFhYWFhYWDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAIIAggICAgCCAgICAgICAgICAgICAgIAggICAgICAgICAgWAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwsLDQ0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICAgINDQsLAggICAgICAgIAgIICAICCAgICAgICAgICAgICAgICAgICAgICAIICAgICAgIAggIAggICAgIAg0NCAsLDQsLCwsCAgsLAgILCwsCAggCAgICAgILAgICAgIICAgICAsLAgINDQ0NDQ0NAgICDQ0NDQ0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQ0NCw0ICAgIFhYWFhYODg4ODg4ODg4OAhYCFg0CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0LDQsLCwsNDQsNDQgIFggCAgICAgICAg4ODg4ODg4ODg4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NAgILCwsLDQ0LDQ0WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFggICAgNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsNDQ0NDQ0NDQsLDQsNDRYWFggCAgICAgICAgICAg4ODg4ODg4ODg4CAgICAgIWFhYWFhYWFhYWFhYWAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCw0LCw0NDQ0NDQsNAgICAgICAgIODg4ODg4ODg4OAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgIAgINDQ0LCw0NDQ0LDQ0NDQ0CAgICDg4ODg4ODg4ODhAQFhYWGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsLDQ0NDQ0NDQ0NCw0NFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGDg4ODg4ODg4ODhAQEBAQEBAQEAICAgICAgICAgICAggCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCA0NDQ0NDQ0NDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NCwgNDQ0NFhYWFhYWFhYNAgICAgICAgIIDQ0NDQ0NCwsNDQ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIICAgIDQ0NDQ0NDQ0NDQ0NDQsNDRYWFggWFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICw0NDQ0NDQ0CDQ0NDQ0NCw0IFhYWFhYCAgICAgICAgICDg4ODg4ODg4ODhAQEBAQEBAQEBAQEBAQEBAQEBACAgIWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQILDQ0NDQ0NDQsNDQsNDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgIAggIAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0NDQ0NAgICDQINDQINDQ0NDQ0NCA0CAgICAgICAg4ODg4ODg4ODg4CAgICAgIICAgICAgCCAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCwsLCwINDQILCw0LDQgCAgICAgICDg4ODg4ODg4ODgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgIDQ0LCxYWAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIPDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8CFhYWFhYCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCDg4ODg4ODg4ODgICAgIWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICDQ0NDQ0WAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NDQ0NDQ0WFhYWFhsbGxsHBwcHFhsCAgICAgICAgICDg4ODg4ODg4ODgIQEBAQEBAQAggICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFhYWFgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgIICwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwICAgICAgICAgICAgICAgINDQ0NBwcHBwcHBwcHBwcHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICCAgICAgICAgICAgICAICAggICAgICAgICAICAgICAgIICAgICAgICAgIAgIbDQ0WAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbCwsNDQ0bGxsLCwsLCwsBAQEBAQEBAQ0NDQ0NDQ0NGxsNDQ0NDQ0NGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbDQ0NDRsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsNDQ0bAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhAQEBAQEBAQEBAQEBAQEBAQEBAQAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYCBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoCCgoCAgoCAgoKAgIKCgoKAgoKCgoKCgoKBgYGBgIGAgYGBgYGBgYCBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoCCgoKCgICCgoKCgoKCgoCCgoKCgoKCgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKAgoKCgoCCgoKCgoCCgICAgoKCgoKCgoCBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKGgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYaBgYGBgYGCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChoGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGGgYGBgYGBgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoaBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBhoGBgYGBgYKBgICDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGw0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGxsbGxsbGxsNGxsbGxsbGxsbGxsbGxsNGxsWFhYWFgICAgICAgICAgICAgICAg0NDQ0NAg0NDQ0NDQ0NDQ0NDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQINDQ0NDQ0NDQ0NDQ0NDQ0NDQICDQ0NDQ0NDQINDQINDQ0NDQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgIQEBAQEBAQEBANDQ0NDQ0NAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg0NDQ0NDQ0CAgICAg4ODg4ODg4ODg4CAgICFhYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBsQEBAYEBAQEAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgCCAgICAgICAgICAgICAgICAgICAgICAgICAgIAggIAggCAggCCAgICAgICAgICAIICAgIAggCCAICAgICAggCAgICCAIIAggCCAgIAggIAggCAggCCAIIAggCCAIICAIIAgIICAgIAggICAgICAgCCAgICAIICAgIAggCCAgICAgICAgICAIICAgICAgICAgICAgICAgICAICAgICCAgIAggICAgIAggICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhoaAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbAgIbGxsbGxsbGxsbGxsbGxsCGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICEBAQEBAQEBAQEBAQEAICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgIbGxsbGxsbGxsCAgICAgICGxsCAgICAgICAgICAgICAhsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxkZGRkZGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgIbGxsbGxsbGxsbGxsbAgICGxsbGxsbGxsbGwICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIbGxsbGxsbGxsbGxsCAgICGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAhsbGxsbGxsbGxsCAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAgICAgICAgIbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICGxsbGxsbGxsbGxsbAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsCAhsbGxsCAgIbAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgIbGxsbGxsbGxsbAgICAgICGxsbAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhsbGxsbGxsbGxsbGxsbAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NAgICAgICAgICAgICAgICAoAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIA="),C(g,81428,"ggAAAAAAAAIAAAAAAAAAAgAAAAAAAAAC"),C(g,81475,"AgAAAAAAACAAAAAAAAAAIA=="),C(g,81506,"IA=="),C(g,81522,"IAAAAAAAAAAg"),C(g,81618,"IA=="),C(g,81634,"IA=="),C(g,81650,"IAAAAAAAAAAg"),C(g,81682,"IAAAAAAAAAAgAAAAAAAAACAAAAAAAIAAAAAAAAAAgA=="),C(g,81728,"gAAAAAAAAACAAAAAAAAAAIA="),C(g,81760,"gAAAAAAAAACA"),C(g,81904,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAU"),C(g,81961,"FAAAAAAAAAAU"),C(g,81985,"FAAAAAAAAAAE"),C(g,82009,"BAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),C(g,82097,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA="),C(g,82169,"EAAAAAAAAAAQAAAAAAAAABAAAAAAAACA"),C(g,82224,"gAAAAAAAAACA"),C(g,82272,"gAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(g,82353,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(g,82393,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAABAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(g,82625,"BAAAAAAAAAAE"),C(g,82649,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(g,83033,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABA=="),C(g,83097,"BAAAAAAAAAAE"),C(g,83121,"BAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAQAAAEAAAAAFAAAAQAAAAgEAAABAAAAAQQAAAAAAAACBAAAAAAAAAgEAAAAAAAAAAQAAAAAAAAABAAAAQAAAAgEAAAAAAAAAQQAAAAAAAAARAAAAAAAAAAEAAAAAAAAAAQA=="),C(g,83288,"QA=="),C(g,83303,"AkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAACEA="),C(g,83352,"QAAAAAAAABBAAAAQAAAAgAAg"),C(g,83379,"gAAAAABAAACQggAAIEAAAJAAAAAAAAAAgAAAAABAAACQggAAIEAAAJCCAAAgAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkAAAAEBAAACQAAAAYEAAAJCCAABgQAAAkIIAACBAAACQggAAIEAAAJCCAAAgQAAAkIIAACBAAACQggAAIAAAAIAAAAAEAAAAAAAAAIAAAAAAAAAACAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAkAAAAAAAAAQQAAAEAAAAIBAAAAAAAAABEAAAAAAAAAIAAAAgIIAAAAAAACAgAAAAAAAAIAAAAAAAAAAgIYAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAgAAAAAAAAICAAAAAAAAAgJIAAACAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAIAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICAAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgIIAAAAAAACAhgAAAAAAAICCAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICAAAAAAAAAgIIAAAAAAACAggAAAAAAAICCAAAAAAAAgIAAAAAAAACAggAAAAAAAICGAAAAAAAAgJIAAAAAAACAhgAAAAAAAICAAAAAAAAAgIAAAAAAAACAhg=="),C(g,83999,"IAAAAACCAAAgAAAAAIIAAAAAAAAAggAAAAAAAACGAAAAAAAAAIIAAAAAAAAAggAAAAAAAACCAAAAaW5maW5pdHkALSsgICAwWDB4AHN0ZDo6YmFkX2Nhc3QAJXMlYyVzX2RpY3QAJXMlYyVzJWMlcyVzACVzJWNzb3VuZGljb25zJWMlcwBDb21waWxlIGVycm9yAHN0ZDo6ZXhjZXB0aW9uAHRlcm1pbmF0aW5nAF8wbGFuZwB1bmV4cGVjdGVkX2hhbmRsZXIgdW5leHBlY3RlZGx5IHJldHVybmVkACVkICVkICVkICVkICVkICVkICVkICVkICVkICVkACVzJWMlYwByYgBwaG9udGFiAHJ3YQBYWFhYWFgAR01UAExDX0FMTABFU1BFQUtfREFUQV9QQVRIAEMAQU5TSV9YMy40LTE5NjgAMy4xLjMwACEtLQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQAlcwoAZXNwZWFrOiBCYWQgaW50b25hdGlvbiBkYXRhCgAAAQIEBwMGBQAAAABAAAAAAAAAAHBob25pbmRleAAlcyVjJWMlcwAgJXMAc3RkOjpiYWRfZXhjZXB0aW9uAEVtc2NyaXB0ZW4AbmFuAD94bWwAJXMvLi4vcGhzb3VyY2UAc3RkOjpiYWRfdHlwZWlkAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZAAlZCAlZCAlZCAlZCAlZCAlZCAlZCAlZAByYgBXcm9uZyB2ZXJzaW9uIG9mIGVzcGVhay1uZy1kYXRhAEkATEFORwBIT01FAEFOU0lfWDMuNC0xOTg2AChudWxsKQBGYWlsZWQgdG8gb3BlbjogJyVzJwBEZWxldGVkIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBudW1iZXJzOiBCYWQgb3B0aW9uIG51bWJlciAlZAoAX2NhcABlbXNjcmlwdGVuAFRoZSBGSUZPIGJ1ZmZlciBpcyBmdWxsAGVzcGVhawAlZCAlZCAlZABzdGQ6OmJhZF9hbGxvYwAlYyVzJWMlcyVjAHBob25kYXRhAC91c3Ivc2hhcmUvZXNwZWFrLW5nLWRhdGEAL3RtcC9lc3BlYWtYWFhYWFgATABQU0FSSFRJVllNVUJGAEFTTU8tNzA4AEMuVVRGLTgAICgAJXM6IEJhZCBvcHRpb24gbnVtYmVyICVkCgBVbnN1cHBvcnRlZCBzcGVjdHJhbCBmaWxlIGZvcm1hdC4KAENhbid0IHJlYWQgZGljdGlvbmFyeSBmaWxlOiAnJXMnCgAtMFgrMFggMFgtMHgrMHggMHgAaW50b25hdGlvbnMAcGhvbmVtZXMAJXMgJXMgJXMgJXMgJXMgJXMAZW4AYmFkX2FycmF5X25ld19sZW5ndGgAbm9uZQBUaGUgZXNwZWFrLW5nIGxpYnJhcnkgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkACVjJWQAUE9TSVgATQBDLlVURi04AEVDTUEtMTE0ACMxAEVtcHR5IF9kaWN0IGZpbGU6ICclcwoAUmVwbGFjZTogJXMgPiAlcwoAICBzdWZmaXggWyVzXQoKACVzL3Bob25lbWVzACVzJXMlcwBicABhbGwAaW5mAENhbm5vdCBpbml0aWFsaXplIHRoZSBhdWRpbyBkZXZpY2UAJXMlY3ZvaWNlcyVjAE4ATlVMTABFQ01BLTExOABVVEYtOAB3YXNtMzIAZXNwZWFrOiBObyBlbnZlbG9wZQoAQmFkIGRhdGE6ICclcycgKCV4IGxlbmd0aD0leCkKAFRoZSBzcGVjaWZpZWQgZXNwZWFrLW5nIHZvaWNlIGRvZXMgbm90IGV4aXN0ACVzJXMAJXMlYyVzAF9jYXAAYmhmAHNvbWUAWwIlc11dAFAASU5GAEVMT1RfOTI4AGVuX1VTLlVURi04AF8jJWQgAENvbXBpbGluZyBwaG9uZW1lIGRhdGE6ICVzCgBGdWxsIGRpY3Rpb25hcnkgaXMgbm90IGluc3RhbGxlZCBmb3IgJyVzJwoAVW5rbm93biB0dW5lICclcycKACU1ZDoJAGR0AG5vAGVuAG5hbgBfcm9tYW4AQ291bGQgbm90IGxvYWQgdGhlIG1icm9sYS5kbGwgZmlsZQAlZCAlZAAlcyVjbGFuZyVjAHJiAFsCX15fJXMgJXMgX15fJXNdXQBTAF8/QQBJQk0zNjcAPyVkIAAlcyVjJXMAJXMvJXMAcgBpY29uAGVuAENvdWxkIG5vdCBsb2FkIHRoZSBzcGVjaWZpZWQgbWJyb2xhIHZvaWNlIGZpbGUAZ2MAWgBOQU4AXz8/ADxzYXktYXMgaW50ZXJwcmV0LWFzPSJ0dHM6Y2hhciI+JiMlZDs8L3NheS1hcz4ASUJNODE5ACogACAgJWQgJXMgICAgAEludmFsaWQgaW5zdHJ1Y3Rpb24gJS40eCBmb3IgcGhvbmVtZSAnJXMnCgAAcGhvbmRhdGEtbWFuaWZlc3QAVGhlIGV2ZW50IGJ1ZmZlciBpcyBmdWxsAHNwZWxsaW5nAF9saWcAY29uZmlnACVzL2VzcGVhay1uZy1kYXRhACVzJXNfAElTQ0lJAGhBAGwnZXRAAC4ALQAoJXMpAAElZEkgACV4AHcAJXNydWxlcy50eHQAKyVzAHIAXy5wAHBpdGNoAFRoZSByZXF1ZXN0ZWQgZnVuY3Rpb25hbGl0eSBoYXMgbm90IGJlZW4gYnVpbHQgaW50byBlc3BlYWstbmcAX3NtYwBDYwBtYgBJU09fNjQ2LmlydjoxOTkxAHYgPD0gdm93ZWxfY291bnQAVGhlIHBob25lbWUgZmlsZSBpcyBub3QgaW4gYSBzdXBwb3J0ZWQgZm9ybWF0AGNoYXJhY3RlcnMAJWMlcyVzJXMAICVzAF90dXIAZW4AQ2YAbmQAJXMgJWQASVNPXzg4NTktMQAjIFRoaXMgZmlsZSBsaXN0cyB0aGUgdHlwZSBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gY29tcGlsZWQgaW50byB0aGUKIyBwaG9uZGF0YSBmaWxlCiMKIyBUaGUgZmlyc3QgY2hhcmFjdGVyIG9mIGEgbGluZSBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgZGF0YToKIyAgIFMgLSBBIFNQRUNUX1NFUSBzdHJ1Y3R1cmUKIyAgIFcgLSBBIHdhdmVmaWxlIHNlZ21lbnQKIyAgIEUgLSBBbiBlbnZlbG9wZQojCiMgQWRkcmVzcyBpcyB0aGUgZGlzcGxhY2VtZW50IHdpdGhpbiBwaG9uZGF0YSBvZiB0aGlzIGl0ZW0KIwojICBBZGRyZXNzICBEYXRhIGZpbGUKIyAgLS0tLS0tLSAgLS0tLS0tLS0tCgBfcmV2AHZhcmlhbnQAJXNydWxlcwB0dHM6Y2hhcgBzb3VuZGljb24AQ24AX2VsAG5nAHNyYy9saWJlc3BlYWstbmcvZGljdGlvbmFyeS5jAF9zdWIAcGhvbmRhdGEAVGhlIHNwZWN0cmFsIGZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZnJhbWUgZGF0YQABKzEwUwBJU09fODg1OS0xOjE5ODcAdHRzOmtleQAlcyVjJXNfZGljdAB0cwBUaGUgcGhvbmVtZSBtYW5pZmVzdCBmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IHBob25lbWVzAF8lYyAlcwBfY3lyAF9zdXAAQ28AX2NybAB3YgAgAS0xMFMASVNPXzg4NTktMgAtAFVucHJvbm91bmNhYmxlPyAnJXMnCgBfaHkAcGhvbmluZGV4AF9hY3UAdHRzOmRpZ2l0cwBDcwAgJXMgJWQgJXMAJ2U6agBhcG9zdHJvcGhlAFRoZSBwaG9uZW1lIGZlYXR1cmUgaXMgbm90IHJlY29nbmlzZWQAdEEASVNPXzg4NTktMjoxOTg3AHdiKwBUcmFuc2xhdGUgJyVzJwoAX2JydgBicmFja2V0cwAlY2VuAElpAHRlbGVwaG9uZQBfaGUAVGhlIHRleHQgZW5jb2RpbmcgaXMgbm90IHN1cHBvcnRlZAAlZCAlZABwaG9udGFiAFsCKFgxKShYMSkoWDEpXV0AbkEAYidpOgBJU09fODg1OS0zAFVzaW5nIHBob25lbWV0YWJsZTogJyVzJwoAVW5zcGVjaWZpZWQgZXJyb3IgMHgleAByb290cwBnbHlwaHMAJWMlcwBfYXIATGwAJXMvY29tcGlsZV9wcm9nX2xvZwBicmFja2V0c0Fubm91bmNlZAAlZABfaGFjAF9eXwBzJ2k6AElTT184ODU5LTM6MTk4OABsaXN0AGRpY3RfbWluAGVuAExtAHgtd2VhawBiYXNlAF9jZWQAX3N5YwBkJ2k6AElTT184ODU5LTQAQmFkIHZvaWNlIGF0dHJpYnV0ZTogJXMKAEVycm9yIHByb2Nlc3NpbmcgZmlsZSAnJXMnOiAlcy4KAGxpc3R4AGRpY3RydWxlcwBfY2lyAExvAHdlYWsAX2hpACdpOgBJU09fODg1OS00OjE5ODgAJXMgAEludmFsaWQgcGhvbmVtZSBjb2RlICVkCgAKUmVmcyAlZCwgIFJldXNlZCAlZAoARXJyb3I6ICVzIGF0ICclcycgKGV4cGVjdGVkIDB4JXgsIGdvdCAweCV4KS4KAFVua25vd24gcGhvbmVtZSB0YWJsZTogJyVzJwoATHQAJWMlcwBpbnRvbmF0aW9uAF9ibgBtZWRpdW0AZW1vamkAJ2VmAF9kaWEASVNPXzg4NTktNQBSZXBsYWNlOiAlcyAgJXMKAENvbXBpbGVkIHBob25lbWVzOiAlZCBlcnJvcnMuCgBFcnJvcjogJXMuCgBoc3gATHUAJXMvLi4vcGhzb3VyY2UvaW50b25hdGlvbi50eHQAbF9kaWVyZXNpcwAlcyslcwBfZ3VyAGlvbgBzdHJvbmcAZXh0cmEASVNPXzg4NTktNToxOTg4AF9hYzIAbF9wcmVmaXgAX2d1AF9kb3QAJXMlY3ZvaWNlcwByAHgtc3Ryb25nAE1jAElTT184ODU5LTYAQ29tcGlsaW5nOiAnJXMnCgBfZ3J2AGxfcmVncmVzc2l2ZV92AHJzAF9vcgAlcy8uLi9waHNvdXJjZS9pbnRvbmF0aW9uACVzJWNsYW5nAE1lAHJlZHVjZWQASVNPXzg4NTktNjoxOTg3ACQxAGlyAF9tY24ATW4AbW9kZXJhdGUAdHVuZQBsX3VucHJvbm91bmNhYmxlAF90YQBJU09fODg1OS03ACQyAG1iLwAlcy9pbnRvbmF0aW9ucwB1cgBfb2dvAGxfc29ub3JhbnRfbWluAHJhdGUAX3RlAE5kAElTT184ODU5LTc6MTk4NwAkMwAvLwBfa24ATmwAYXRoAF9ybmcAdm9sdW1lAGFwb3N0cm9waGUAbG93ZXJjYXNlU2VudGVuY2UASVNPXzg4NTktOAAkNABEdXBsaWNhdGUgdHVuZSBuYW1lOiAnJXMnAGJyYWNrZXRzAG51bWJlcnMAbnMATm8AX21sAF9zdGsAcmFuZ2UAQmFkIHR1bmUgbmFtZTogJyVzOwBJU09fODg1OS04OjE5ODgAJDUAc3BlbGxpbmdTdHJlc3MAX3NpAF90bGQAZmllbGQAYnJhY2tldHNBbm5vdW5jZWQAUGMASVNPXzg4NTktOQAkNgBCYWQgZW52ZWxvcGUgbmFtZTogJyVzJwBfYmFyAGRpY3RfbWluAF90aABzcG9uZwBtb2RlAFR1bmUgJyVzJyBub3QgZm91bmQAc3RyZXNzQWRkAFBkAElTT184ODU5LTk6MTk4OQAkNwBfcmZ4ACR1AGRpY3RydWxlcwBzdHJlc3NBbXAAX2xvAHB1bmN0dWF0aW9uAHJhbmcAUGUASVNPXzg4NTktMTAAVW5leHBlY3RlZDogJyVzJwBjYXBpdGFsX2xldHRlcnMAaW50b25hdGlvbgBfaG9rAF90aQBzdHJlc3NMZW5ndGgAbGFyZwBQZgBUdW5lICclcycgbm90IGRlZmluZWQASVNPXzg4NTktMTA6MTk5MgAkdTEAX215AHN0cmVzc09wdABsX2RpZXJlc2lzAF8jJXMAbGV2ZWwAUGkASVNPXzg4NTktMTQAJHUyAGFkZCBlCgBDb21waWxlZCAlZCBpbnRvbmF0aW9uIHR1bmVzOiAlZCBlcnJvcnMuCgBsX3ByZWZpeABhbHBoYWJldABUb28gbWFueSBwaG9uZW1ldGFibGVzAF94IyVzAFBvAHN0cmVzc1J1bGUAX2thAElTT184ODU5LTE0OjE5OTgAJHUzAE91dCBvZiBtZW1vcnkAbF9yZWdyZXNzaXZlX3YAdHVuZXMAUHMAX2tvAHBoAElTT184ODU5LTE1AF8wACR1KwBfZHB0AHdvcmRzAGludGVycHJldC1hcwBfZXRoAGxfdW5wcm9ub3VuY2FibGUAU2MAXwBJU09fODg1OS0xNgAkdTErAEJhZCBydWxlcyBkYXRhIGluICclc19kaWN0JyBhdCAweCV4ICglYykKAGZvcm1hdABsX3Nvbm9yYW50X21pbgBTawBfYnJhaWxsZQBfME0lZABJU09fODg1OS0xNjoyMDAxACR1MisAQ2FuJ3QgZmluZCBiYXNlIHBob25lbWV0YWJsZSAnJXMnACUzZAklcyBbJXNdCgBDYW5ub3Qgc2V0ICVzOiBsYW5ndWFnZSBub3Qgc2V0LCBvciBpcyBpbnZhbGlkLgoAU20AZGV0YWlsAGxvd2VyY2FzZVNlbnRlbmNlAF9qYQBJU082NDYtVVMAXy4AJHUzKwBfAQBudW1iZXJzAFNvAF8lZG4AX3poACRwYXVzZQAlYyVkWQBwaG9uZW1lX2xlbiA8IE5fUEhPTkVNRV9CWVRFUwBJU08tMTA2NDYtVUNTLTIAJQBzcGVsbGluZ1N0cmVzcwBhbGlhcwBabAAkc3RyZW5kAElTTy04ODU5LTEAJSUARmxhZ3M6ICAlcyAgJXMKACVzJXMlYyVzJXMAWnAAbmFtZQBzdHJlc3NBZGQAJHN0cmVuZDIASVNPLTg4NTktMgAsAEZvdW5kOiAnJXMgJXMKAFpzACVzJXMlcyVjJXMARm91bmQ6ICclcwBzdHJlc3NBbXAAJHVuc3RyZXNzZW5kACVjJWRNAElTTy04ODU5LTMALCwAc3RyZXNzTGVuZ3RoACRhY2NlbnRfYmVmb3JlAF8wWiVkAHNyYwBJU08tODg1OS00AC0tACcAJyBbJXNdICAlcwoAJGFiYnJldgBzdHJlc3NPcHQAJXMvJXMAQWRsbQBfJWNkAElTTy04ODU5LTUAJycAJWMlcwBBZmFrAHN0cmVzc1J1bGUAJGRvdWJsZQAlYyVkSQA9AElTTy04ODU5LTYAJGFsdAB0dW5lcwBBZ2hiACVjJWRVAF86AElTTy04ODU5LTcAX2RwdDIA2Y4gINmPICDZkAB3b3JkcwBfJWRNJWRvAEFob20Ac3RyZW5ndGgASVNPLTg4NTktOAAkYWx0MQBfIQDYpyDZiCDZigBuYW1lAF8lZE0lZGUAQXJhYgAlYyVkQgA6AElTTy04ODU5LTkAJGFsdDIA2Kgg2b4g2Kog2Kkg2Ksg2Kwg2K0g2K4g2K8g2LAg2LEg2LIg2LMg2LQg2LUg2LYg2Lcg2Lgg2Lkg2Log2YEg2YIg2YMg2YQg2YUg2YYg2KYg2KQg2KEg2KMg2KIg2KUg2YcAXyVkTSVkeABBcm1pAHRpbWUAbGFuZ3VhZ2UAQAAkYWx0MwBJU08tODg1OS0xMADYtSDYtiDYtyDYuABnZW5kZXIAQXJtbgB4bWw6YmFzZQBfJWRNJWQAJGFsdDQASVNPLTg4NTktMTEAQC0AfHwAJXgAQXZzdAB2YXJpYW50cwBfMG9mACRhbHQ1AElTTy04ODU5LTEzACDZkSAAZm9ybWFudABfJXMlZG8AQmFsaQAlZAAkYWx0NgBJU08tODg1OS0xNAAxAEJhbXUAc3BlYWsAcGl0Y2gAXyVzJWRlACRhbHQ3AElTTy04ODU5LTE1ACNYMQBfJXMlZHgAQmFzcwBwaG9uZW1lcwAkY29tYmluZQB2b2ljZQA/AElTTy04ODU5LTE2AGRpY3Rpb25hcnkAcHJvc29keQAkZG90AEJhdGsAXyVzJWQAS09JOC1SAC0AJGhhc2RvdABzYXktYXMAQmVuZwByZXBsYWNlAF9eXwBMYXRpbi05AF8wTTIAQmhrcwBlY2hvAG1hcmsAJG1heDMAX1gxAF8lZE0xAFRJUy02MjAAX3wAQmxpcwBmbHV0dGVyACRicmsAVVMtQVNDSUkAXzBNMQAkdGV4dAByb3VnaG5lc3MAJXMlcwBwAEJvcG8AXzo6AFVURi04AGNsYXJpdHkAQnJhaAAkdmVyYmYAcGhvbmVtZQAxTUEAY3AzNjcAdCMAQnJhaQAkdmVyYnNmAHRvbmUAc3ViADBNQQBjcDgxOQAnIQBCdWdpAHZvaWNpbmcAJG5vdW5mAHR0czpzdHlsZQBfO18AY3NBU0NJSQAwTUIAYXVkaW8AYnJlYXRoACRwYXN0ZgBCdWhkADFNACNAAGNzSVNPODg1OTEzAGJyZWF0aHcAZW1waGFzaXMAQ2FrbQAkdmVyYgAjYQAwTQBjc0lTTzg4NTkxNABDYW5zAF8wQ28AJG5vdW4AYnJlYWsAI2UAbWJyb2xhAGNzSVNPODg1OTE1ACRwYXN0AGNvbnNvbmFudHMAQ2FyaQAjaQBtZXRhZGF0YQBjc0lTTzg4NTkxNgBfMEMwAGtsYXR0AGJyACNvAENoYW0AJHZlcmJleHRlbmQAXzBDAGNzSVNPTGF0aW4xACN1AENoZXIAJGNhcGl0YWwAbGkAJXMlYyVzJWMAZmFzdF90ZXN0MgBjc0lTT0xhdGluMgBDaXJ0ACRhbGxjYXBzAE1pc3NpbmcgZmlsZTogJXMAXzBhbmQAc3BlZWQAZGQAY3NJU09MYXRpbjMAQ29wdAAkYWNjZW50AG1haW50YWluZXIAXyVkQ28AcGhvbmVtZXRhYmxlIGlzIG1pc3NpbmcAaW1nAGNzSVNPTGF0aW40AENwcnQAc3RhdHVzACRzZW50ZW5jZQB0ZABLZXl3b3JkICdwaG9uZW1lJyBleHBlY3RlZABjc0lTT0xhdGluNQBfJWRDMAAkb25seQBUb28gbWFueSBwcm9jZWR1cmVzAEN5cmwAbWFsZQBfJWRDAGNzSVNPTGF0aW42AGgxACRvbmx5cwBDeXJzACVzJXMlcyVzAGZlbWFsZQBjc0lTT0xhdGluQXJhYmljACUuM2RQAGgyACVzJXMlYyVzACRzdGVtAE1pc3NpbmcgJ2VuZHBob25lbWUnIGJlZm9yZSBlbmQtb2YtZmlsZQAlZCAlZCAlZCAlZCAlZABjc0lTT0xhdGluQ3lyaWxsaWMARGV2YQBoMwBfJWRmeABNb3JlIHRoYW4gb25lIHBob25lbWUgdHlwZTogJXMARG9ncgBjc0lTT0xhdGluR3JlZWsAJGF0ZW5kAE5VTEwAaDQAY3NJU09MYXRpbkhlYnJldwBEc3J0ACRhdHN0YXJ0ACVkICVzICVzAGhyAF8lZGYATlVMTABfJWQlY3gAc2NyaXB0AER1cGwAJG5hdGl2ZQAhdiVjAGNzS09JOFIAJXgAc3R5bGUARWd5ZAAlc20lZABfJWQlYwAkPwBjc1RJUzYyMABmb250AEVneWgAYSBwaG9uZW1lIHR5cGUgb3IgbWFubmVyIG9mIGFydGljdWxhdGlvbiBtdXN0IGJlIHNwZWNpZmllZCBiZWZvcmUgc3RhcnR0eXBlACR0ZXh0bW9kZQBfJWRlACVzZiVkAGNzVVRGOAAlcy92b2ljZXMvJXMARWd5cABfJWRvAGEgcGhvbmVtZSB0eXBlIG9yIG1hbm5lciBvZiBhcnRpY3VsYXRpb24gbXVzdCBiZSBzcGVjaWZpZWQgYmVmb3JlIGVuZHR5cGUAJHBob25lbWVtb2RlAGNzVW5pY29kZQBiAGVuZHR5cGUgbXVzdCBlcXVhbCBzdGFydHR5cGUgZm9yIGNvbnNvbmFudHMAdW5wcgBhbGwAaQBhcmFiaWMAXyVkYQBFbGJhAG5vcHJlZml4AHZvaWNpbmdzd2l0Y2ggY2Fubm90IGJlIHVzZWQgb24gdm93ZWxzAGVtAEV0aGkAXyVkAGN5cmlsbGljAHN0cmVzcyBwaG9uZW1lcyBjYW4ndCBjb250YWluIHByb2dyYW0gaW5zdHJ1Y3Rpb25zAEdlb2sAZ3JlZWsAY29kZQBfJWRYJWMAd19hbHQxAFdhcm5pbmc6IG1heGltdW0gbnVtYmVyICVkIG9mIChOX1ZPSUNFU19MSVNUID0gJWQgLSAxKSByZWFjaGVkCgAlcyVjJXMAR2VvcgBfJWRYZgAlYyVkJWMAZ3JlZWs4AHdfYWx0MgBNaXNzaW5nICdlbmRwaG9uZW1lJyBiZWZvcmUgJyVzJwBoZWJyZXcAZGVmYXVsdABHbGFnAF8lZFgATWlzc2luZyBFTkRJRgB3X2FsdDMARXJyb3IgKCVzKTogZ2VuZGVyIGF0dHJpYnV0ZSBzcGVjaWZpZWQgb24gYSBsYW5ndWFnZSBmaWxlCgBzaWxlbnQAR29uZwAnZW5kcGhvbmVtZScgbm90IGV4cGVjdGVkIGhlcmUAaXNvLWNlbHRpYwB3X2FsdDQAX29yZDIwAHgtc29mdABHb25tAFBob25lbWUgdHlwZSBpcyBtaXNzaW5nAF9vcmQAaXNvLWlyLTYAd19hbHQ1AHNvZnQAR290aAB3X2FsdDYAaXNvLWlyLTEwMABCYWQgcGhvbmVtZSBuYW1lICclcycAd19hbHQAJXMlcyVzAEdyYW4AbG91ZABpc28taXItMTAxACVzOiAnJXMnLgBHcmVrAHgtbG91ZABpc28taXItMTA5AHBfYWx0MQB4LXNsb3cAR3VqcgBwX2FsdDIAaXNvLWlyLTExMABFeHBlY3RlZCAnKCcAc2xvdwBHdXJ1AGlzby1pci0xMjYAcF9hbHQzAEV4cGVjdGVkICcpJwBmYXN0AEhhbmcAVmFsdWUgJWQgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gJWQAaXNvLWlyLTEyNwBwX2FsdDQAeC1mYXN0AEhhbmkAaXNvLWlyLTEzOABwX2FsdDUAQ2Fubm90IGZpbmQgcGhvbmVtZSAnJXMnIHRvIGltcG9ydC4AeC1sb3cASGFubwBwX2FsdDYAaXNvLWlyLTE0NABQaG9uZW1lIGltcG9ydCB3aWxsIG92ZXJyaWRlIHNldCBwcm9wZXJ0aWVzLgBsb3cAcF9hbHQASGFucwBpc28taXItMTQ4AFBob25lbWUgcmVmZXJlbmNlIG5vdCBmb3VuZDogJyVzJwAlcyVzLnR4dABIYW50AGhpZ2gAaXNvLWlyLTE1NwBjb21waWxlOiB1bmtub3duIHBob25lbWUgdGFibGU6ICclcycAJXMlcwBIYXRyAHgtaGlnaABQaG9uZW1lIHByb2dyYW0gdG9vIGxhcmdlAGlzby1pci0xOTkASGVicgBpc28taXItMjI2AEV4cGVjdGVkIGEgY29uZGl0aW9uLCBub3QgJyVzJwBzcGFjZSAAQ2FuJ3QgYWxsb2NhdGUgbWVtb3J5CgBFeHBlY3RlZCBsaXN0IG9mIHN0cmVzcyBsZXZlbHMASGlyYQBsYXRpbjEAdGFiIAAJJWQgZW50cmllcwoASGx1dwBsYXRpbjIAVW5leHBlY3RlZCBrZXl3b3JkICclcycAdW5kZXJzY29yZSAAJTVkOiBVbmtub3duIGtleXdvcmQ6ICVzCgBIbW5nAHBob25lbWUAbGF0aW4zAGRvdWJsZS1xdW90ZSAAJTVkOiBNaXNzaW5nICcoJwoASHJrdABlbmRwaG9uZW1lAG1hbGUAbGF0aW40AEh1bmcAZmVtYWxlAEV4cGVjdGVkIEFORCwgT1IsIFRIRU4AbGF0aW41ACU1ZDogTmVlZCB0byBjb21waWxlIGRpY3Rpb25hcnkgYWdhaW4KAEluZHMAbmV1dHJhbABFTFNFIG5vdCBleHBlY3RlZABsYXRpbjYAJTVkOiBCYWQgcGhvbmVtZSBbJXNdIChVKyV4KSBpbjogJXMgICVzCgBVKyV4AEl0YWwASUYgYmxvY2sgaXMgdG9vIGxvbmcAeG1sOmxhbmcAbGF0aW44AHZhcmlhbnQARUxJRiBub3QgZXhwZWN0ZWQASmF2YQBsYXRpbjEwACU1ZDogRGljdGlvbmFyeSBsaW5lIGxlbmd0aCB3b3VsZCBvdmVyZmxvdyB0aGUgZGF0YSBidWZmZXI6ICVkCgBKcGFuAGFnZQBFTkRJRiBub3QgZXhwZWN0ZWQAbDEAJTVkOiBUd28gbWFueSBwYXJ0cyBpbiBhIG11bHRpLXdvcmQgZW50cnk6ICVkCgBnZW5kZXIASnVyYwBQYXJhbWV0ZXIgPiAxMjcAbDIALy8AJXMrJXMAS2FsaQAuTABQYXJhbWV0ZXIgPCAtMTI4AGwzAGd0AC5yZXBsYWNlAEthbmEAUGFyYW1ldGVyID4gMjU1AGw0AGx0AEtoYXIALmdyb3VwAERGVABsNQAweCV4ACVzLyVzLndhdgBLaG1yAGFtcABsNgBxdW90AENhbid0IHJlYWQgZmlsZTogJXMAS2hvagBsOAAlNWQ6IEdyb3VwIG5hbWUgbG9uZ2VyIHRoYW4gMiBieXRlcyAoVVRGOCkARmlsZSBub3QgU1BFQyBvciBSSUZGOiAlcwBuYnNwAEtuZGEAbDEwAApFeGNlZWRlZCBsaW1pdCBvZiBydWxlcyAoJWQpIGluIGdyb3VwICclcycKAHVzAGFwb3MAS29yZQAlYyAgMHglLjV4ICAlcwoAAMDg8P8fDwdwCnEKAAAoACkAWwBdAHsAfQA8AD4AIgAnAGAAqwC7AAowCzA84A=="),C(g,93904,"ICAgICAgICAgICYlKyNTRFpBTCEgQD9KTktWP1RYP1dBQkNIRkdZPT0sLCcqICAAIAAhACIAsAIkACUA5gDIAigAKQB+AisAzAItAC4ALwBSAjEAMgBcAjQANQA2ADcAdQI5ANACsgI8AD0APgCUAlkCUQKyA+cA8ABbAkYAYgInAWoCXwJLAGsCcQJLAVQCpgNjAoACgwK4A4oCjAJTAccD+ACSAioDXABdAF4AXwBgAGEAYgBjAGQAZQBmAGECaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQADA38APT0sLCcnAAMCBAUGBxoAAAAAAQECAwMEBQYHBwgJCgsAAAEBAgIDAwQFBgcHCAkKAAABAgMDAwQFBgcHBwgJClNldFdvcmRTdHJlc3MA5ADrAO8A9gD8AP8AAAAAAAAAYWFhYWFhYWNlZWVlaWlpaWRub29vb28Ab3V1dXV5dHNhYWFhYWFhY2VlZWVpaWlpZG5vb29vbwBvdXV1dXl0eWFhYWFhYWNjY2NjY2NjZGRkZGVlZWVlZWVlZWVnZ2dnZ2dnZ2hoaGhpaWlpaWlpaWlpaWlqamtra2xsbGxsbGxsbGxubm5ubm5ubm5vb29vb29vb3JycnJycnNzc3Nzc3NzdHR0dHR0dXV1dXV1dXV1dXV1d3d5eXl6enp6enpzYmJiYgAAb2NjZGRkZGRlZWVmZmdnaGlpa2tsbG1ubm9vb29vcHB5AABzc3R0dHR1dXV2eXl6enp6enp6AAAAd3R0dGtkZGRsbGxubm5hYWlpb291dXV1dXV1dXV1ZWFhYWFhYWdnZ2dra29vb296empkZGRnZ3d3bm5hYWFhb29hYWFhZWVlZWlpaWlvb29vcnJycnV1dXVzc3R0eXloaG5kb296emFhZWVvb29vb29vb3l5bG50amRxYWNjbHRzegAAYnV2ZWVqanFxcnJ5eWFhYWJvY2RkZWVlZWVl"),C(g,94846,"TG9va3VwRGljdDIAAAAAAAAAgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAoQCiAKMApAClAKYApwCoAKkAqgCrAKwArQCuAK8AsACxALIAswC0ALUAtgC3ALgAuQC6ALsAvAC9AL4AvwDAAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPANAA0QDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUA5gDnAOgA6QDqAOsA7ADtAO4A7wDwAPEA8gDzAPQA9QD2APcA+AD5APoA+wD8AP0A/gD/AIAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAQB2AJBAaQAPQFaAacAqABgAV4BZAF5Aa0AfQF7AbAABQHbAkIBtAA+AVsBxwK4AGEBXwFlAXoB3QJ+AXwBVAHBAMIAAgHEADkBBgHHAAwByQAYAcsAGgHNAM4ADgEQAUMBRwHTANQAUAHWANcAWAFuAdoAcAHcAN0AYgHfAFUB4QDiAAMB5AA6AQcB5wANAekAGQHrABsB7QDuAA8BEQFEAUgB8wD0AFEB9gD3AFkBbwH6AHEB/AD9AGMB2QKAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAmAdgCowCkAP3/JAGnAKgAMAFeAR4BNAGtAP3/ewGwACcBsgCzALQAtQAlAbcAuAAxAV8BHwE1Ab0A/f98AcAAwQDCAP3/xAAKAQgBxwDIAMkAygDLAMwAzQDOAM8A/f/RANIA0wDUACAB1gDXABwB2QDaANsA3ABsAVwB3wDgAOEA4gD9/+QACwEJAecA6ADpAOoA6wDsAO0A7gDvAP3/8QDyAPMA9AAhAfYA9wAdAfkA+gD7APwAbQFdAdkCgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAE4AVYBpAAoATsBpwCoAGABEgEiAWYBrQB9Aa8AsAAFAdsCVwG0ACkBPAHHArgAYQETASMBZwFKAX4BSwEAAcEAwgDDAMQAxQDGAC4BDAHJABgBywAWAc0AzgAqARABRQFMATYB1ADVANYA1wDYAHIB2gDbANwAaAFqAd8AAQHhAOIA4wDkAOUA5gAvAQ0B6QAZAesAFwHtAO4AKwERAUYBTQE3AfQA9QD2APcA+ABzAfoA+wD8AGkBawHZAoAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAEEAgQDBAQEBQQGBAcECAQJBAoECwQMBK0ADgQPBBAEEQQSBBMEFAQVBBYEFwQYBBkEGgQbBBwEHQQeBB8EIAQhBCIEIwQkBCUEJgQnBCgEKQQqBCsELAQtBC4ELwQwBDEEMgQzBDQENQQ2BDcEOAQ5BDoEOwQ8BD0EPgQ/BEAEQQRCBEMERARFBEYERwRIBEkESgRLBEwETQROBE8EFiFRBFIEUwRUBFUEVgRXBFgEWQRaBFsEXASnAF4EXwSAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAD9//3//f+kAP3//f/9//3//f/9//3/DAatAP3//f/9//3//f/9//3//f/9//3//f/9//3/Gwb9//3//f8fBv3/IQYiBiMGJAYlBiYGJwYoBikGKgYrBiwGLQYuBi8GMAYxBjIGMwY0BjUGNgY3BjgGOQY6Bv3//f/9//3//f9ABkEGQgZDBkQGRQZGBkcGSAZJBkoGSwZMBk0GTgZPBlAGUQZSBv3//f/9//3//f/9//3//f/9//3//f/9//3/gACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAGCAZIKMArCCvIKYApwCoAKkAegOrAKwArQD9/xUgsACxALIAswCEA4UDhgO3AIgDiQOKA7sAjAO9AI4DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQP9/6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgP9/4AAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAP3/ogCjAKQApQCmAKcAqACpANcAqwCsAK0ArgCvALAAsQCyALMAtAC1ALYAtwC4ALkA9wC7ALwAvQC+AP3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f8XINAF0QXSBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUF5gXnBegF6QXqBf3//f8OIA8g/f+AAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAChAKIAowCkAKUApgCnAKgAqQCqAKsArACtAK4ArwCwALEAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAM8AHgHRANIA0wDUANUA1gDXANgA2QDaANsA3AAwAV4B3wDgAOEA4gDjAOQA5QDmAOcA6ADpAOoA6wDsAO0A7gDvAB8B8QDyAPMA9AD1APYA9wD4APkA+gD7APwAMQFfAf8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAESASIBKgEoATYBpwA7ARABYAFmAX0BrQBqAUoBsAAFARMBIwErASkBNwG3ADwBEQFhAWcBfgEVIGsBSwEAAcEAwgDDAMQAxQDGAC4BDAHJABgBywAWAc0AzgDPANAARQFMAdMA1ADVANYAaAHYAHIB2gDbANwA3QDeAN8AAQHhAOIA4wDkAOUA5gAvAQ0B6QAZAesAFwHtAO4A7wDwAEYBTQHzAPQA9QD2AGkB+ABzAfoA+wD8AP0A/gA4AYAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAAEOAg4DDgQOBQ4GDgcOCA4JDgoOCw4MDg0ODg4PDhAOEQ4SDhMOFA4VDhYOFw4YDhkOGg4bDhwOHQ4eDh8OIA4hDiIOIw4kDiUOJg4nDigOKQ4qDisOLA4tDi4OLw4wDjEOMg4zDjQONQ42DjcOOA45DjoO/f/9//3//f8/DkAOQQ5CDkMORA5FDkYORw5IDkkOSg5LDkwOTQ5ODk8OUA5RDlIOUw5UDlUOVg5XDlgOWQ5aDlsO/f/9//3//f+AAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAdIKIAowCkAB4gpgCnANgAqQBWAasArACtAK4AxgCwALEAsgCzABwgtQC2ALcA+AC5AFcBuwC8AL0AvgDmAAQBLgEAAQYBxADFABgBEgEMAckAeQEWASIBNgEqATsBYAFDAUUB0wBMAdUA1gDXAHIBQQFaAWoB3AB7AX0B3wAFAS8BAQEHAeQA5QAZARMBDQHpAHoBFwEjATcBKwE8AWEBRAFGAfMATQH1APYA9wBzAUIBWwFrAfwAfAF+ARkggACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAAAh4DHqMACgELAQoepwCAHqkAgh4LHvIerQCuAHgBHh4fHiABIQFAHkEetgBWHoEeVx6DHmAe8x6EHoUeYR7AAMEAwgDDAMQAxQDGAMcAyADJAMoAywDMAM0AzgDPAHQB0QDSANMA1ADVANYAah7YANkA2gDbANwA3QB2Ad8A4ADhAOIA4wDkAOUA5gDnAOgA6QDqAOsA7ADtAO4A7wB1AfEA8gDzAPQA9QD2AGse+AD5APoA+wD8AP0AdwH/AIAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQCaAJsAnACdAJ4AnwCgAKEAogCjAKwgpQBgAacAYQGpAKoAqwCsAK0ArgCvALAAsQCyALMAfQG1ALYAtwB+AbkAugC7AFIBUwF4Ab8AwADBAMIAwwDEAMUAxgDHAMgAyQDKAMsAzADNAM4AzwDQANEA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADxAPIA8wD0APUA9gD3APgA+QD6APsA/AD9AP4A/wCAAIEAggCDAIQAhQCGAIcAiACJAIoAiwCMAI0AjgCPAJAAkQCSAJMAlACVAJYAlwCYAJkAmgCbAJwAnQCeAJ8AoAAEAQUBQQGsIB4gYAGnAGEBqQAYAqsAeQGtAHoBewGwALEADAFCAX0BHSC2ALcAfgENARkCuwBSAVMBeAF8AcAAwQDCAAIBxAAGAcYAxwDIAMkAygDLAMwAzQDOAM8AEAFDAdIA0wDUAFAB1gBaAXAB2QDaANsA3AAYARoC3wDgAOEA4gADAeQABwHmAOcA6ADpAOoA6wDsAO0A7gDvABEBRAHyAPMA9ABRAfYAWwFxAfkA+gD7APwAGQEbAv8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCWAJcAmACZAJoAmwCcAJ0AngCfAKAABAEFAUEBrCAeIGABpwBhAakAGAKrAHkBrQB6AXsBsACxAAwBQgF9AR0gtgC3AH4BDQEZArsAUgFTAXgBfAHAAMEAwgACAcQABgHGAMcAyADJAMoAywDMAM0AzgDPABABQwHSANMA1ABQAdYAWgFwAdkA2gDbANwAGAEaAt8A4ADhAOIAAwHkAAcB5gDnAOgA6QDqAOsA7ADtAO4A7wARAUQB8gDzAPQAUQH2AFsBcQH5APoA+wD8ABkBGwL/AP3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9//3//f/9/wEJAgkDCQUJBgkHCQgJCQkKCQsJDgkPCRAJDQkSCRMJFAkRCRUJFgkXCRgJGQkaCRsJHAkdCR4JHwkgCSEJIgkjCSQJJQkmCScJKAkpCSoJKwksCS0JLgkvCV8JMAkxCTIJMwk0CTUJNgk3CTgJOQkgAD4JPwlACUEJQglDCUYJRwlICUUJSglLCUwJSQlNCTwJZAn9//3//f/9//3/IAAwADEAMgAzADQANQA2ADcAOAA5AP3//f/9//3//f8CAAAAAAAAAAEAAAADAAAA//36+Pb08vDu7Oro5uTi4N7c2tjW1NLQzszKyMbEwsC+vLq4trSysK6sqqimpKKgnpyamJaUkpCOjIqIhoSCgH58enh2dHJwbmxqaGZkYmBeXFpYVlRSUE5MSkhGREJAPjw6ODY0MjAuLCooJiQiIB4cGhgWFBIQDgwKCAYEAgAAAgQGCAoMDhASFBYYGhweICIkJigqLC4wMjQ2ODo8PkBCREZISkxOUFJUVlhaXF5gYmRmaGpsbnBydHZ4enx+gIKEhoiKjI6QkpSWmJqcnqCipKaoqqyusLK0tri6vL7AwsTGyMrMztDS1NbY2tze4OLk5ujq7O7w8vT2+Pr9///06uDWzMO6saifl4+Hf3hxamNcVlBKRD85NC8rJiIeGhcTEA0LCAYEAgEAAAAAAAAAAQIDBAUHCAoMDhATFRcaHR8iJSgsLjAyNDY5Oz1AQkVHSkxPUVRXWl1fYmVoa25xdHh7foGFiIuPkpaZnaCkqKyvs7e7v8PHy8/T19vgz8zJxsPAvbm0sKunopyXkoyGgXt1b2ljXVdQSkQ+ODMtJyIcFxINCAQCAgEAAAAAAAEBAgMEBQcICgwNDxIUFhkbHiEkJyotMDQ2ODo8P0FDRkhLTVBSVVhaXWBjZmlsb3J1eHt+gYWIi4+SlpmdoKSorK+zt7u/w8fLz9PX2+D/+fTu6eTf2tXQy8bBvbizr6qmoZ2ZlZCMiISAfXl1cW5qZ2NgXVlWU1BNSkdEQT48OTc0Mi8tKygmJCIgHhwaGRcVFBIRDw4NDAoJCAcGBQUEAwICAQE="),C(g,99845,"AQECAgMEBAUGBwgJCgsMDg8QEhMVFxgaHB4g0M7NzMrIx8XDwcC9u7i1s7CtqqejoJ2ZlpKPi4eEgHx4dHBtaWVhXVlVUU1KRkI+Ozc0MS8tKigmJCIgHhwaGRcVFBIRDw4NDAoJCAcGBQUEAwICAQE="),C(g,99973,"AQECAgMEBAUGBwgJCgsMDg8QEhMVFxgaHB4gmJmZmpydn6Gkp6mssLO2ur7BxcnN0dTY3N/j5urt8PL19/n7/P3+/v////////79+/r49vPx7uzp5uTg3drX09DMyMTAvLi0sKyno5+alpGNiIR/e3ZybWllYFxYVFBMSERAPDk1Mi8rKCYjIB0aFxUSDw0KCAcFAwIBAAAAAAD+///////+/fz6+Pb08e7r6OXh3trW0s3JxL+6trCrpqGclpGLhoB7dW9qZF9ZVE9JRD86NTArJiIdGRURDQoHBAMBAAAAAAAAAAABAQIEBQcJCw0QEhUYGx4iJSktMTU6PkNITFFXW15iZWhrbnF0dnh7fH6AgYKDg4SEg4OCgXJycXFwb21samhmZGFfXFpXVFFOS0hFQj87ODUyLywpJiMgHRsYFhQSEA4MCwoJCAcHBwcHBgUFBQUFBQUFBQYHBwgJCgwNDxASFBYYGx0gIyYpLC8zNzs/Q0dMUVZbYGVqb3R5f4SJj5Wboaets7rAx87V3OPq8fX3+vz9/v///v79/fz7+/r6+fj49/f29vX09PPz8vLx8PDv7u7t7Ovq6uno5+bl5OPi4eDe3dzb2djW1dPS0M7My8nHxcPAvry5t7Wyr62qp6ShnpqXlJCNiYWBfXl1cW1oZGFeW1dUUU1KRkNAPDk1Mi4qJyMfHBgUEQ0LCQcFBAMCAQAAAAAAAAAAAQEBAgIDAwQEBQYGBwgICQoLDAwNDg8QERITFBYXGBkbHB0fICIjJSYoKSstLzAyNDY4Ojw+QEJER0lLTlBSVVdaXV9iZWdqbXBzdnl8f4KGiYyQk5aanaCjpqmsr7K1uLu+wcTHys3Q09bZ3N/i5Ofp7O7w8vT2+Pr7/X9/f4CBg4SHiYyPkpaZnaGlqq6yt7vAxcnN0tba3uLm6u3w8/X4+vv8/f7+/fz7+ff08Ozn4tzVzsa9tKmekoiCfXdybGZgWlROSUI8NzItKCQfGxgUEQ4MCQcGBQQEBAQFBggKDRAUGB0jKS83PkdQWmRwfIOFiIqMjo+RkpOTAEAIAEYSAAAAAAAAGAwAAARQEgZOFgAAAAAAACI0AAAEWBYGUhYAAAAAAAAiQAAAAFwIAFxQAAAAAAAATAgBAABWBABeQgAAAAAAACIKAAAAPgoAPhQAAAAAAAAcEAAABEQSBkQWAAAAAAAAHiwAAAZAEABCIAAAAAAAACASAAACRC4AKiAAAAAAAAAuOgAABE4YBkgWAAAAAAAAKjQAAARYIgBAIAAAAAAAAC5SAAAAOAwAOBQAAAAAAAAYDAAAAEYSAEYYAAAAAAAAIBQAAAkAAAAJAAAAEAAAABAAAAAQAAAAFwAAADcAAAAgAAAAACgYCAAKNCAUCgYmGA4EAAYAAAAHAAAACQAAAAkAAAAUAAAAFAAAABQAAAAZAAAA5iAUCA=="),C(g,101072,"ZgNmAWYCpgSmAiYEpoooAmoDagFqAqoCbgNuAW4CrgIpALMEdAN0AXQCtAS0AgAAdAR6A3oBegK6An4BOQC+AgAApgMAAKYBAADmAwAAaAEAAGgCAAAoAwAA6AEAAOkBAABpBAAAqgMAAKoBAAAqAwAA6gMAAOoBAABsAgAArAEAACwDAAAsAgAAbQIAAG0EAACuBAAArgMAAK4BAADuAwAALgAAAO6LAABvAgAAMAIwAAAAcQEAADECAADxAQAAMQMAAHEEAABzAQAAMwIAAPMBMwAAADMAAAC0AwAAtAEAAPQCAAC0igAAdwEAADcCAAD3AQAAeAEAAHgCAAA4AgAA+AEAADkCAAD5AQAAeQQAALoEAAC6AwAAugEAADoEAAD6AgAA+gMAAHwCAAB+AgAAAAB/AQAAPwMAAP8BOACmAAEAgQBnBQAAKAEpBWkF6gAAAEIFAADDAEMdAADvBGwFLABsAAQAAACtAG0FAADuBAUAbgCxBPEEMQXxj7IAAAByBQAAMwVzAPQEtJoAAAgAtwCOADcVAAA3BQAAzQB3ALcIOAUAAG8FyQAJAbkAOQX6BAoAewW7ALwAvgB+AD8FPwEAAAsBAADMAIwAAAAAAGcAAABsDW0ALwGwAHEAdgVMBEwc6Y8AAOnPOY4AADnO"),C(g,101586,"sQNZAlsCswO5A1MByQPGA4MCxQOSApQCfgJ8AgAAqgBhgLIAMoCzADOAuQAxgLoAb4CwAmiAsQJmgrICaoCzAnKAtAJ5grUCe4K2AoGCtwJ3gLgCeYDAApSCwQKVguACY4LhAmyA4gJzgOMCeIBwIDCAcSBpgHQgNIB1IDWAdiA2gHcgN4B4IDiAeSA5gHogK4B7IC2AfCA9gH0gKIB+ICmAfyBugIAgMECBIDFAgiAyQIMgM0CEIDRAhSA1QIYgNkCHIDdAiCA4QIkgOUCKICtAiyAtQIwgPUCNIChAjiApQJAgYUCRIGVAkiBvQJMgeECUIFlClSBoQJYga0CXIGxAmCBtQJkgbkCaIHBAmyBzQJwgdEAAAAAAaXhjbXZsZA=="),C(g,101888,"AQAAAAoAAABkAAAA6AMAAAUAAAAyAAAA9AEAAAAXCgkYExgY"),C(g,101936,"///////9+fXy7uvo5OHe2tjV0s/MycbEwb+8ure1s7CurKmopaOhn56bmZiWlJKRj42LiYiHhYOCgX9+fHt6eHd2dXNycXBvbm1ramloZ2ZlZGNiYWBfXl1cW1pZWVhXVlVUU1JSUVBQT05NTExLS0pJSEdHRkVFRENDQkJBQEA/Pj49PTw7Ozo6OTk4ODc2NjU1NDQ0MzIyMTEwMC8vLi4uLS0sLCwrKyopKCgoJycnJiYmJSUlJCQjIyMjIiIiISEhICAfHx8eHh4dHR0dHBwbGxsbGhoaGhkZGRgYGBgXFxcXFhYWFRUVFRQUFBQTExMSEhERERAQEBAQEA8PDw8ODg4NDQ0MDAwMCwsLCwoKCgkJCQgICAAAAAAAAAAAeHl4d3d2dnV0dHNycXBwb29ubWxrampoZ2dmZmZlZWNiYmFgYF9eXVtaW1pZWFZVVlVVVFJRUE9NTk5MTUtLSklHSEZFRUVDQUA/Pz89PTs7Ozo4OTo4NjU0NDU0NDIwLy8tLi0="),C(g,102336,"FhYWFhYWFhUVFRUUFBMTEhEQDw8PDw8PDwAAAAAAAABkeGRpZG5uZF9kaXhpbn2Ch3N9ZGl4S2RLaXhVS2RpeFVpX3N4ZF9kbnhfaWRzeGRkZGl4ZGlfc3huX2RpeGRpaXp9bmlkaXhkaWl6fW5pZGl4X2lkc3huZGRkeGRkZGRkZGRk"),C(g,102480,"ZJZkaW5zbm5uZGmWaW59h4xzh2RpllppWnqHZFpkaZZkaWR6h2RkZGmWZGlpc4duaWRplmRpaXqCeH1kaZZkaW56fXNuZGmWZGlpeod4aWRplmRpaXOHbmlkZGRkZGRkZGRkZA=="),C(g,102592,"bnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRuZG5ubmRubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubm54ZG5ubm5ubm5ueGRubm5ubm5ubnhkbm5ubm5ubg=="),C(g,102708,"rwAAAGQAAAAyAAAAMg=="),C(g,102744,"ZA=="),C(g,102764,"MjIoRlpkZGRGboeWZGRLZHiWAAAAAAAABwAAAA4AAAAVAAAAKAAAAFAAAAAAAAAAAFNBUFIAQwAAAAAARgAAAAAAAAABAAAAAgAAAAQAAAAPAAAAAAEAAAEBAAEBAgQAAAAAAPMAEAEAAQABAAEAAQAB8ADwAPA="),C(g,102898,"QABaAG4AgACPAJwAqQC1AMAAygDUAN0A5gDvAPcAAAEHAQ8BFgEeASUBLAEyATkBQAFGAUwBUgFYAV4BZAFqAW8BdQF6AYABhQGKAY8BlAGZAZ4BowGoAa0BsgG2AbsBwAHEAckBzQHRAdYB2gHeAeMB5wHrAe8B8wH3AfsBAAIDAgcCCwIPAhMCFwIbAh8CIgImAioCLQIxAjUCOAI8AkACQwJHAkoCTgJRAlQCWAJbAl8CYgJlAmkCbAJvAnMCdgJ5AnwCgAKDAoYCiQKMAo8CkgKWApkCnAKfAqICpQKoAqsCrgKxArQCtwK6Ar0CwALCAsUCyALLAs4C0QLUAtYC2QLcAt8C4gLkAucC6gLtAu8C8gL1AvcC+gL9AgADAgMFAwcDCgMNAw8DEgMVAxcDGgMcAx8DIQMkAycDKQMsAy4DMQMzAzYDOAM7Az0DQANCA0QDRwNJA0wDTgNRA1MDVQNYA1oDXQNfA2EDZANmA2gDawNtA28DcgN0A3YDeQN7A30DgAOCA4QDhgMAAAGqAqytAwQFsLGys7S0tgYHCLkJCrwMDQ4PEBESYWJjZGVmZ2hpamtsbW5vcHFyc3R1"),C(g,103360,"YAYAAPAGAABmCQAA5gkAAGYKAADmCgAAZgsAAOYLAABmDAAA5gwAAGYNAABQDgAA0A4AACAPAABAEAAAkBA="),C(g,103440,"5gDmAOYA5gAAAAAA5gDmAL4AqgC+AMgAAAAAAL4A8AC+AL4A0gDSAAAAAADSANIAyADIANIA0gAAAAAA5gDmAOYA5gDwAPAAAAAAAAQBBAGqAIwA3ADcAAAAAAD6AA4BoACMAMgAjAAAAAAA8ACgALQAtADSANIAAAAAAOYA8ACqANwAtAC0AAAAAAD6AA4BlgCCAMgAyAAAAAAADgEOAbYAjADcANwAAAAAAPgAEwGbALQA0gDSAAAAAAAOASwBwwMAAAAAAABsAAAAAAAAAKAAkQCbAJYAAAAAAMgA9QAnAAAAtwAAAAAAAADCugAAyADIAMgAyAAAAAAA0gDmAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGgAAAAAAABscHR4fICEiIyQlJicoKSorAAAs"),C(g,103790,"LQAAAAAAAAAu"),C(g,103816,"Lw=="),C(g,103833,"MAAAAAAAMQ=="),C(g,103856,"Mg=="),C(g,103868,"MwAAAK0AAQBABgEADCAtAAAAAAC+AL4A0gDSAAAAAADmAPoAoACWAMgAyAAAAAAA+gAEAbkAwwDDAL4AAAAAANIA3AD6AMgA+gD6AAAAAAD6APoAMjM0Njk6PD0+P0BBQkNERkdJSktMTU5PUFFSU1RWAACWAIwAtAC0AAAAAADIAMgAbA=="),C(g,104016,"oADIALQAtAAAAAAA3ADwALQAoADIAMgAAAAAAPAA+gBjAAAAZgAAAGgAAABrAAAAcAAAAHQAAAB4AAAA/g=="),C(g,104096,"oACMAJYApQAAAAAA2gAxAZEAkQCqAKAAAAAAAEoBXgEuAAAALAAAACcAAADIAg=="),C(g,104160,"MTIzNTY3OTo7PD4/QEFCREVGR0hJSktMTU5PUFFSU1RW"),C(g,104208,"vgC0AOYA5gAAAAAA+gD6ABESExQWFxkaGxwdHyAhIiQlJicoKSosc3uDmwAAAAAAtAC0AL4AtAAAAAAA5gDwALQAtAC0AKAAAAAAAOYAtABABAAAMAQAADUEAAA4BAAAOQQAAD4EAABDBAAASwQAAE0EAABOBAAATwQAAFAEAABRBAAAVgQAAFcEAABdBAAAXgQ="),C(g,104368,"tACgAMgAyAAAAAAA3ADmAKAAhwDSANIAAAAAAAQBGAGgAIwAyADIAAAAAADcAOYAyADIAMgAyAAAAAAAyADIAKAAvgCvAK8AAAAAAMgA0gCqAHMA0gDwAAAAAAAEARgBqgCqALQAtAAAAAAA8AAEAZYAtADIAMgAAAAAANIA+gCWAJYAtAC0AAAAAAAsASwBoACHANwA3AAAAAAA+gAYAaAAqgDIAMgAAAAAAEABVAG0AKAA8ADwAAAAAAAEAQQBvgC0AMgA5gAAAAAA8AD6AJYAlgC0ALQA0gDmAOYA8ABhAAAA4AAAAOEAAACjHgAA4wAAAKEeAAADAQAAsR4AAK8eAACzHgAAtR4AALceAADiAAAApx4AAKUeAACpHgAAqx4AAK0eAABlAAAA6AAAAOkAAAC7HgAAvR4AALkeAADqAAAAwR4AAL8eAADDHgAAxR4AAMceAABpAAAA7AAAAO0AAADJHgAAKQEAAMseAABvAAAA8gAAAPMAAADPHgAA9QAAAM0eAAD0AAAA0x4AANEeAADVHgAA1x4AANkeAAChAQAA3R4AANseAADfHgAA4R4AAOMeAAB1AAAA+QAAAPoAAADnHgAAaQEAAOUeAACwAQAA6x4AAOkeAADtHgAA7x4AAPEeAAB5AAAA8x4AAP0AAAD3HgAA+R4AAPUe"),C(g,104896,"5gCWAOYA5gDmAAAA8AD6AAAAAAAnAAAAAAAAAAABAgM="),C(g,104945,"AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRo="),C(g,105072,"GxwdAAAeHyAhIiMkACUmAAAAACcAACgAKQAqACsAAAAAAAAsAC0ALgAAAAAALwAAADAAAAAAAAAAMQ=="),C(g,105170,"MgAz"),C(g,105195,"NAAAAAAANQA2"),C(g,105226,"NwA4ADkArQABAAwgAQ=="),C(g,105249,"AQIDAAQAAQIDAAQFBgIDAAQFBwEDAAQICQoDAAAICAoDAAALCwsLAAAMDAwMAAAMAQ4BEwEBAw8DDgYRBgMJAQsPCwEMCQwBDgYOCQ4ODg8OHA4DDxEPEg8PEBEQAREGEQkRDxETEiAS/38AAAAAlgCMANwA3AAAAAAABAEYAYKAeHRkZICAgIyAgKCrq4CAgA=="),C(g,105412,"yAAAAMgAAACQAQAAkAEAAJABAABYAgAAWAIAAFgC"),C(g,105456,"8AAAAKoAAACqAAAAqgAAAKoAAACqAAAAqgAAAKoAAACqAAAAAQIMAw0EDgULAAAAAQIDBAUGAAAAAAAACwwNDg=="),C(g,105540,"MgAAAK8AAABkAAAAMg=="),C(g,105568,"rw=="),C(g,105596,"EBAKEBY="),C(g,105620,"/38AANAHAAAsAQAAYwAAAGMAAABjAAAAAAAAANAH"),C(g,105668,"BA=="),C(g,105680,"QEFCQ0RFRkdISUpLTE1OT1BRUlNUVldYWVtcXV5gYWJkZWdoaWtsbm9xc3R2d3l7fH6AgoSFh4mLjY+Rk5WXmZueoKKkp6mrrrCztbi6vb/CxcfKzdDT1tnc3+Ll6Ozv8vb5/P7/"),C(g,105792,"//7+/v7+/v7+/v39/f38/Pz7+/v6+vn5+Pj39/b19fTz8/Lx7+3r6efl4+Hf3drY1dPQzcvIxcK/u7i1sq6rp6OgnJiUkIyIhH97d3JuaWRgXltYVlNRTkxKR0VCQD48OTc1MzEvLCooJiQiIB4dGxkXFRMSEA4MCwkHBgQDAQ=="),C(g,106064,"//7+/v7+/f38+/v6+fj39vX08vHv7uzq6efl4+Hf3NrY1dPRz83LycfFw8G/vbu5t7SysK2rqaakoZ+cmpeUko+MioeEgX57eHZzcGxpZmNgX11bWlhWVVNSUE9NTEpJSEZFRENCQD8+PTw7Ojk4Nzc2NTQ0MzIyMTAwLy8uLi4tLS0sLCwsLCwsKysrKywrKiopKCgnJiYlJCQjIyIhISAgHx4eHR0cHBsaGhkZGBgXFxYWFRUUFBMTEhISEREQEA8PDw4ODQ0NDAwLCwsKCgoJCQkICAgHBwcHBgYGBQUFBQQEBAQEAwMDAwICAgICAgEBAQEBAQ=="),C(g,106341,"RvIpAC8ALwBF8ikALwAuAEXyKAAuAC0ANPIoAC0tLAA08igAKysrADTyKAAqKioANPIoACkpKQA08igAAOf/zv+1/5z/g/9q/1H/N/8e/wX/7P7T/rr+of6I/m/+Vf48/iP+Cv7x/dj9v/2m/Y39dP1b/UL9Kf0Q/ff83vzF/Kz8k/x6/GH8SPwv/Bb8/fvk+8v7svuZ+4D7Z/tP+zb7HfsE++v60vq6+qH6iPpv+lf6Pvol+g369Pnb+cP5qvmR+Xn5YPlH+S/5Fvn++OX4zfi0+Jz4g/hr+FP4Ovgi+Ar48ffZ98H3qPeQ93j3YPdH9y/3F/f/9uf2z/a39p/2h/Zv9lf2P/Yn9g/29/Xf9cf1sPWY9YD1aPVR9Tn1IfUK9fL02/TD9Kz0lPR99GX0TvQ29B/0CPTw89nzwvOr85TzfPNl807zN/Mg8wnz8vLb8sTyrvKX8oDyafJS8jzyJfIO8vjx4fHL8bTxnvGH8XHxW/FE8S7xGPEB8evw1fC/8Knwk/B98GfwUfA78CXwEPD67+Tvzu+576Pvje9472LvTe847yLvDe/47uLuze647qPuju557mTuT+467iXuEO777eft0u297antlO2A7WvtV+1C7S7tGu0F7fHs3ezJ7LXsoeyN7HnsZexR7D3sKuwW7ALs7+vb68jrtOuh643reutn61TrQest6xrrB+v06uLqz+q86qnqluqE6nHqX+pM6jrqJ+oV6gPq8One6czpuumo6ZbphOly6WHpT+k96SzpGukI6ffo5ujU6MPosuig6I/ofuht6FzoS+g76CroGegI6Pjn5+fX58bntuel55Xnhed152XnVedF5zXnJecV5wXn9ubm5tfmx+a45qjmmeaK5nvma+Zc5k3mPuYw5iHmEuYD5vXl5uXY5cnlu+Wt5Z7lkOWC5XTlZuVY5UrlPOUv5SHlE+UG5fjk6+Te5NDkw+S25KnknOSP5ILkdeRo5FzkT+RD5DbkKuQd5BHkBeT54+3j4ePV48njveOx46XjmuOO44Pjd+Ns42HjVuNL4z/jNOMq4x/jFOMJ4//i9OLq4t/i1eLK4sDituKs4qLimOKO4oTie+Jx4mfiXuJU4kviQuI54i/iJuId4hTiDOID4vrh8eHp4eDh2OHQ4cfhv+G34a/hp+Gf4Zfhj+GI4YDheOFx4WrhYuFb4VThTeFG4T/hOOEx4SrhJOEd4RbhEOEK4QPh/eD34PHg6+Dl4N/g2eDU4M7gyeDD4L7guOCz4K7gqeCk4J/gmuCV4JHgjOCH4IPgfuB64HbgcuBu4GrgZuBi4F7gWuBX4FPgT+BM4EngReBC4D/gPOA54DbgM+Ax4C7gK+Ap4CfgJOAi4CDgHuAc4BrgGOAW4BTgEuAR4A/gDuAN4AvgCuAJ4AjgB+AG4AXgBeAE4APgA+AC4ALgAuAC4ALgAeAC4ALgAuAC4ALgA+AD4ATgBeAF4AbgB+AI4AngCuAL4A3gDuAP4BHgEuAU4BbgGOAa4BzgHuAg4CLgJOAn4CngK+Au4DHgM+A24DngPOA/4ELgReBJ4EzgT+BT4FfgWuBe4GLgZuBq4G7gcuB24HrgfuCD4IfgjOCR4JXgmuCf4KTgqeCu4LPguOC+4MPgyeDO4NTg2eDf4OXg6+Dx4Pfg/eAD4QrhEOEW4R3hJOEq4THhOOE/4UbhTeFU4VvhYuFq4XHheOGA4Yjhj+GX4Z/hp+Gv4bfhv+HH4dDh2OHg4enh8eH64QPiDOIU4h3iJuIv4jniQuJL4lTiXuJn4nHie+KE4o7imOKi4qzituLA4sri1eLf4uri9OL/4gnjFOMf4yrjNOM/40vjVuNh42zjd+OD447jmuOl47HjvePJ49Xj4ePt4/njBeQR5B3kKuQ25EPkT+Rc5GjkdeSC5I/knOSp5Lbkw+TQ5N7k6+T45AblE+Uh5S/lPOVK5VjlZuV05YLlkOWe5a3lu+XJ5djl5uX15QPmEuYh5jDmPuZN5lzma+Z75ormmeao5rjmx+bX5ubm9uYF5xXnJec150XnVedl53XnheeV56XntufG59fn5+f45wjoGegq6DvoS+hc6G3ofuiP6KDosujD6NTo5uj36AjpGuks6T3pT+lh6XLphOmW6ajpuunM6d7p8OkD6hXqJ+o66kzqX+px6oTqluqp6rzqz+ri6vTqB+sa6y3rQetU62freuuN66HrtOvI69vr7+sC7BbsKuw97FHsZex57I3soey17Mns3ezx7AXtGu0u7ULtV+1r7YDtlO2p7b3t0u3n7fvtEO4l7jruT+5k7nnuju6j7rjuze7i7vjuDe8i7zjvTe9i73jvje+j77nvzu/k7/rvEPAl8DvwUfBn8H3wk/Cp8L/w1fDr8AHxGPEu8UTxW/Fx8YfxnvG08cvx4fH48Q7yJfI88lLyafKA8pfyrvLE8tvy8vIJ8yDzN/NO82XzfPOU86vzwvPZ8/DzCPQf9Db0TvRl9H30lPSs9MP02/Ty9Ar1IfU59VH1aPWA9Zj1sPXH9d/19/UP9if2P/ZX9m/2h/af9rf2z/bn9v/2F/cv90f3YPd495D3qPfB99n38fcK+CL4OvhT+Gv4g/ic+LT4zfjl+P74Fvkv+Uf5YPl5+ZH5qvnD+dv59PkN+iX6PvpX+m/6iPqh+rr60vrr+gT7Hfs2+0/7Z/uA+5n7svvL++T7/fsW/C/8SPxh/Hr8k/ys/MX83vz3/BD9Kf1C/Vv9dP2N/ab9v/3Y/fH9Cv4j/jz+Vf5v/oj+of66/tP+7P4F/x7/N/9R/2r/g/+c/7X/zv/n/wAAGQAyAEsAZAB9AJYArwDJAOIA+wAUAS0BRgFfAXgBkQGrAcQB3QH2AQ8CKAJBAloCcwKMAqUCvgLXAvACCQMiAzsDVANtA4YDnwO4A9ED6gMDBBwENQROBGcEgASZBLEEygTjBPwEFQUuBUYFXwV4BZEFqQXCBdsF8wUMBiUGPQZWBm8GhwagBrkG0QbqBgIHGwczB0wHZAd9B5UHrQfGB94H9gcPCCcIPwhYCHAIiAigCLkI0QjpCAEJGQkxCUkJYQl5CZEJqQnBCdkJ8QkJCiEKOQpQCmgKgAqYCq8KxwrfCvYKDgslCz0LVAtsC4MLmwuyC8oL4Qv4CxAMJww+DFUMbAyEDJsMsgzJDOAM9wwODSUNPA1SDWkNgA2XDa4NxA3bDfINCA4fDjUOTA5iDnkOjw6lDrwO0g7oDv8OFQ8rD0EPVw9tD4MPmQ+vD8UP2w/wDwYQHBAyEEcQXRBzEIgQnhCzEMgQ3hDzEAgRHhEzEUgRXRFyEYcRnBGxEcYR2xHwEQUSGRIuEkMSVxJsEoASlRKpEr4S0hLmEvsSDxMjEzcTSxNfE3MThxObE68TwxPWE+oT/hMRFCUUOBRMFF8UcxSGFJkUrBS/FNMU5hT5FAwVHhUxFUQVVxVqFXwVjxWhFbQVxhXZFesV/RUQFiIWNBZGFlgWahZ8Fo4WnxaxFsMW1BbmFvgWCRcaFywXPRdOF2AXcReCF5MXpBe1F8UX1hfnF/gXCBgZGCkYOhhKGFsYaxh7GIsYmxirGLsYyxjbGOsY+xgKGRoZKRk5GUgZWBlnGXYZhRmVGaQZsxnCGdAZ3xnuGf0ZCxoaGigaNxpFGlMaYhpwGn4ajBqaGqgathrEGtEa3xrtGvoaCBsVGyIbMBs9G0obVxtkG3EbfhuLG5gbpBuxG70byhvWG+Mb7xv7GwccExwfHCscNxxDHE8cWxxmHHIcfRyJHJQcnxyqHLUcwRzMHNYc4RzsHPccAR0MHRYdIR0rHTYdQB1KHVQdXh1oHXIdfB2FHY8dmR2iHawdtR2+Hccd0R3aHeMd7B30Hf0dBh4PHhceIB4oHjAeOR5BHkkeUR5ZHmEeaR5xHngegB6IHo8elh6eHqUerB6zHroewR7IHs8e1h7cHuMe6h7wHvYe/R4DHwkfDx8VHxsfIR8nHywfMh83Hz0fQh9IH00fUh9XH1wfYR9mH2sfbx90H3kffR+CH4Yfih+OH5Iflh+aH54foh+mH6kfrR+xH7Qftx+7H74fwR/EH8cfyh/NH88f0h/VH9cf2R/cH94f4B/iH+Qf5h/oH+of7B/uH+8f8R/yH/Mf9R/2H/cf+B/5H/of+x/7H/wf/R/9H/4f/h/+H/4f/h//H/4f/h/+H/4f/h/9H/0f/B/7H/sf+h/5H/gf9x/2H/Uf8x/yH/Ef7x/uH+wf6h/oH+Yf5B/iH+Af3h/cH9kf1x/VH9Ifzx/NH8ofxx/EH8Efvh+7H7cftB+xH60fqR+mH6Ifnh+aH5Yfkh+OH4ofhh+CH30feR90H28fax9mH2EfXB9XH1IfTR9IH0IfPR83HzIfLB8nHyEfGx8VHw8fCR8DH/0e9h7wHuoe4x7cHtYezx7IHsEeuh6zHqwepR6eHpYejx6IHoAeeB5xHmkeYR5ZHlEeSR5BHjkeMB4oHiAeFx4PHgYe/R30Hewd4x3aHdEdxx2+HbUdrB2iHZkdjx2FHXwdch1oHV4dVB1KHUAdNh0rHSEdFh0MHQEd9xzsHOEc1hzMHMEctRyqHJ8clByJHH0cchxmHFscTxxDHDccKxwfHBMcBxz7G+8b4xvWG8obvRuxG6QbmBuLG34bcRtkG1cbShs9GzAbIhsVGwgb+hrtGt8a0RrEGrYaqBqaGowafhpwGmIaUxpFGjcaKBoaGgsa/RnuGd8Z0BnCGbMZpBmVGYUZdhlnGVgZSBk5GSkZGhkKGfsY6xjbGMsYuxirGJsYixh7GGsYWxhKGDoYKRgZGAgY+BfnF9YXxRe1F6QXkxeCF3EXYBdOFz0XLBcaFwkX+BbmFtQWwxaxFp8WjhZ8FmoWWBZGFjQWIhYQFv0V6xXZFcYVtBWhFY8VfBVqFVcVRBUxFR4VDBX5FOYU0xS/FKwUmRSGFHMUXxRMFDgUJRQRFP4T6hPWE8MTrxObE4cTcxNfE0sTNxMjEw8T+xLmEtISvhKpEpUSgBJsElcSQxIuEhkSBRLwEdsRxhGxEZwRhxFyEV0RSBEzER4RCBHzEN4QyBCzEJ4QiBBzEF0QRxAyEBwQBhDwD9sPxQ+vD5kPgw9tD1cPQQ8rDxUP/w7oDtIOvA6lDo8OeQ5iDkwONQ4fDggO8g3bDcQNrg2XDYANaQ1SDTwNJQ0ODfcM4AzJDLIMmwyEDGwMVQw+DCcMEAz4C+ELyguyC5sLgwtsC1QLPQslCw4L9grfCscKrwqYCoAKaApQCjkKIQoJCvEJ2QnBCakJkQl5CWEJSQkxCRkJAQnpCNEIuQigCIgIcAhYCD8IJwgPCPYH3gfGB60HlQd9B2QHTAczBxsHAgfqBtEGuQagBocGbwZWBj0GJQYMBvMF2wXCBakFkQV4BV8FRgUuBRUF/ATjBMoEsQSZBIAEZwROBDUEHAQDBOoD0QO4A58DhgNtA1QDOwMiAwkD8ALXAr4CpQKMAnMCWgJBAigCDwL2Ad0BxAGrAZEBeAFfAUYBLQEUAfsA4gDJAK8AlgB9AGQASwAyABkAMAAAADAAAABAAAAAUAAAAJAAAACgAAAAsAAAAMAAAACAm7XL3Ojt7Obczr+wo5iQjIuMj5KUlZKMg3hpWUk8MSopLTZEVml9j5+qsbKtpJaHeGlcU09PVV5reoiWoquwsa6ooJiRi4iJjZSdqLK7wMG9tKWSfGNKMh4OBQIFDx4wRFltf4yWnJ+fnZuZmZyhqbO/ytXc4N7YzLumj3dgSzouKCkvOkhZanqGkJSVkYmAdWtiXFpcYWl0gIqUmp6dmJCGfHFoYmBja3iIm6/C0t/m5+LXxrKchG9bS0A5Nzg9Q0pQVFZVUk1IQj8+QUlWZ3yTq8PZ6vb8+/Tn1cCqlIBxZF1aXGFocHd9f397dGthV05IRkhOWWZ1hJOfp6uqpJmLe2pbTkZDRU1aa3+SprjFz9PSzcS5raGWjomHh4qNkZKRjIR4aFVBLhwOBQEFDx80TWiBmrDBzdPT0Mi/taukn5ydoKWqrrGwq6OWh3ZjUUI2Ly0xOkhZa36OnKaqqaOYintsXVJKSEpQWmd1gi0AAAAmAAAALQAAAC0AAAA3AAAALQ=="),C(g,110928,"yv5w/hICZAHgAFkAFwD2/8b/8P/NAVcCGAK9AgIDXQLxAc0BMAKUAW4A4ACDAGgAn/+bABYBZv9z+6r94QJ9ALD9KQALAAn/9v9BAFwAUADQ/kcApwD//3oA6QChANX/FgHfAeUBlwEKAYoChgBQAOwARAAEAQ0BswA1AIwAEwElASgBaAABAZgANwG2AAcB9QB9ADoBjAAsAMsA5gAV/+L+FwBrAFwApf8mANABuwGwAGIA8Pxv9p346/vA+Ur6mPoT+0v8Jv0="),C(g,111162,"BgAHAAgACQAKAAsADQAOABAAEgAUABYAGQAcACAAIwAoAC0AMwA5AEAARwBQAFoAZQByAIAAjgCfALMAygDjAAABHAE+AWcBlQHHAQACOAJ+As8CcQOPAwAEcQT8BJ4FVgYfBwAI4Qj4CTsLrAw9DgAQwxHwE3cWWBl7HAAghSPfJ+4ssDL2OABArkekUIVbZmYzc/9/"),C(g,111324,"qMtoQQAAAACoy2jBAAAAAAAAAAAXCtQJkglQCQ8JzgiPCE8IEwjVB5oHYgcoB/MGvgaLBloGKwb9BdMFqQWBBVwFOAUWBfcE1wS7BKAEhgRuBFcEQQQtBBkEBwT1A+QD1APFA7YDqAOZA40DfwNxA2UDVwNLAz4DMgMkAxgDCwP+AvIC5ALYAssCvgKxAqQClwKLAn0CcgJkAlkCTAJAAjQCKAIcAhICBQL7AfAB5QHbAdABxgG7AbIBqAGeAZQBigGBAXcBbgFjAVsBUAFIAT0BNAErASABGAENAQQB+gDwAOcA3ADUAMgAwAC1AKwAoQCYAI4AhQB7AHEAaQBeAFYATABDADkAMQAnAB4AFgALAAQA+//y/+n/4P/X/87/xP+7/7L/qf+g/5X/jf+C/3r/cP9m/1z/Uv9J/z//Nf8r/yL/F/8O/wT/+v7x/uf+3f7T/sr+wP62/q3+o/6b/pD+h/59/nP+av5f/lb+TP5C/jj+Lf4j/hn+Df4D/vf97P3h/dX9yf29/bH9pf2Y/Yz9f/1z/Wb9Wf1M/T/9M/0k/Rn9Cv3//PH85fzY/Mz8vvyz/KT8mPyL/H78cfxi/FX8Rfw4/Cb8GfwG/Pb74vvQ+7r7pfuO+3b7XPtB+yT7Bvvl+sT6n/p5+lP6KPr++dD5oflw+Tz5CfnR+Jr4YPgm+Oj3q/ds9yz36/aq9mj2Jvbj9bAEdgRABA4E3wO0A4sDZQNBAx8DAAPiAsYCqwKSAnoCZAJOAjoCJwIVAgMC8wHjAdQBxgG4AasBnwGTAYcBfAFyAWgBXgFVAUwBQwE7ATMBLAEkAR0BFgEQAQkBAwH9APcA8gDtAOcA4gDdANkA1ADQAMwAxwDDAMAAvAC4ALQAsQCuAKoApwCkAKEAngCbAJkAlgCTAJEAjgCMAIkAhwCFAIMAgAB+AHwAegB4AHcAdQBzAHEAbwBuAGwAagBpAGcAZgBkAGMAYQBgAF8AXQBcAFsAWgBYAFcAVgBVAFQAUwBSAFAATwBOAE0ATABLAEsASgBJAEgARwBGAEUARABEAEMAQgBBAEAAQAA/AD4APQA9ADwAOwA7ADoAOQA5ADgAOAA3ADcANgA2ADUANQA0ADQAMwAzADIAMgAxADEAMAAwAC8ALwAuAC4ALQAtACwALAArACsAKgAqACkAKQApACkAKAAoACcAJwAmACYAJgAmACUAJQAkACQAJAAkACMAIwAjACMAIgAiACEAIQAhACEAIAAgACAAIAAfAB8AHwAfAB4AHgAeAB4AHQAdAB0AHQAcABwAHAAcABsAGwAxNkZyYW1lTWFuYWdlckltcGwAMTJGcmFtZU1hbmFnZXIAMjNTcGVlY2hXYXZlR2VuZXJhdG9ySW1wbAAxOVNwZWVjaFdhdmVHZW5lcmF0b3IAMTNXYXZlR2VuZXJhdG9y"),C(g,112416,"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"),C(g,115203,"QPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNf6CK2VHFWdAAAAAAAAAOEMAAPr+Qi52vzo7nrya9wy9vf3/////3z88VFVVVVXFP5ErF89VVaU/F9CkZxERgT8AAAAAAADIQu85+v5CLuY/JMSC/72/zj+19AzXCGusP8xQRtKrsoM/hDpOm+DXVT8="),C(g,115390,"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gryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/EhETFBUWFxgZGhscHR4fICERIiMkESUmJygpKissES0uLxAQMBAQEBAQEBAxMjMQNDUQEBERERERERERERERERERERERERERERERERE2ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERNxERERE4ETk6Ozw9PhERERERERERERERERERERERERERERERERERERERERERERERERERERERERE/EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEUBBEUJDREVGR0hJShFLTE1OT1BREFJTVFVWV1hZWltcXRBeX2AQERERYWJjEBAQEBAQEBAQEBERERFkEBAQEBAQEBAQEBAQEBAQERFlEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQERFmZxAQaGkREREREREREREREREREREREREREREREWoREWsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEWxtEBAQEBAQEBAQbhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQb3BxchAQEBAQEBAQc3R1EBAQEBB2dxAQEBB4EBB5EBAQEBAQEBAQEBAQEBA="),C(g,117968,"//////////////////////////////////////////8AAAAAAAAAAP7//wf+//8HAAAAAAAEIAT//3////9//////////////////////////////////8P/AwAfUA=="),C(g,118072,"IAAAAAAA37xA1///+////////////7///////////////////////wP8///////////////////////////+////fwL//////wEAAAAA/7+2AP///4cHAAAA/wf//////////v/D////////////////7x/+4f+fAAD///////8A4P///////////////wMA//////8HMAT////8/x8AAP///wH/BwAAAAAAAP//3z8AAPD/+AP////////////v/9/h/8///v/vn/n///3F459ZgLDP/wMQ7of5///9bcOHGQJewP8/AO6/+////e3jvxsBAM//AB7un/n///3t458ZwLDP/wIA7Mc91hjH/8PHHYEAwP8AAO/f/f///f/j3x1gB8//AADv3/3///3v498dYEDP/wYA79/9/////+ffXfCAz/8A/Oz/f/z///svf4Bf/8D/DAD+/////3//Bz8g/wMAAAAA1vf//6///ztfIP/zAAAAAAEAAAD/AwAA//7///8f/v8D///+////HwAAAAAAAAAA////////f/n/A////////////z//////vyD///////f///////////89fz3//////z3/////PX89/3//////////Pf//////////BwAAAAD//wAA/////////////z8//v//////////////////////////////////////////////////////////n////v//B////////////8f/Af/fDwD//w8A//8PAP/fDQD////////P//8BgBD/AwAAAAD/A///////////////Af//////B///////////PwD///9//w//AcD/////Px8A//////8P////A/8DAAAAAP///w//////////f/7/HwD/A/8DgA=="),C(g,118768,"////////7//vD/8DAAAAAP//////8////////7//AwD///////9/AP/j//////8//wH//////+cAAAAAAN5vBP///////////////////////////////wAAAACA/x8A//8/P/////8/P/+q////P////////99f3B/PD/8f3B8="),C(g,118910,"AoAAAP8f"),C(g,118928,"hPwvPlC9//PgQwAA//////8B"),C(g,118982,"wP///////wMAAP//////f///////f/////////////////////8feAwA/////78g/////////4AAAP//fwB/f39/f39/f/////8AAAAAAIA="),C(g,119088,"4AAAAP4DPh/+////////////f+D+//////////////fg///////+/////////////38AAP///wcAAAAAAAD///////////////////////////////8/"),C(g,119184,"////////////////////////////////////////AAD//////////////////////x8AAAAAAAAAAP//////P/8f////DwAA//////9/8I///////////////////wAAAACA//z////////////////5////////fAAAAAAAgP+//////wAAAP///////w8A//////////8vAP8DAAD86P//////B/////8HAP///x/////////3/wCA/wP///9/////////fwD/P/8D//9//P////////9/BQAAOP//PAB+fn4Af3////////f/AP///////////////////wf/A///////////////////////////DwD//3/4//////8P/////////////////z//////////////////AwAAAAB/APjg//1/X9v/////////////////AwAAAPj///////////////8/AAD///////////z///////8AAAAAAP8P"),C(g,119582,"3/////////////////////8fAAD/A/7//wf+//8HwP////////////9//Pz8HAAAAAD/7///f///t/8//z8AAAAA////////////////////BwAAAAAAAAAA////////Hw=="),C(g,119712,"////H////////wEAAAAAAP////8A4P///wf//////wf///8//////w//PgAAAAAA/////////////////////////z//A/////8P/////w///////wD///////8P"),C(g,119824,"////////fwD//z8A/w=="),C(g,119856,"P/3/////v5H//z8A//9/AP///38AAAAAAAAAAP//NwD//z8A////AwAAAAAAAAAA/////////8AAAAAAAAAAAG/w7/7//z8AAAAAAP///x////8fAAAAAP/+//8fAAAA////////PwD//z8A//8HAP//Aw=="),C(g,119984,"////////////AQAAAAAAAP///////wcA////////BwD//////wD/Aw=="),C(g,120048,"////H4AA//8/"),C(g,120076,"//9/AP//////////PwAAAMD/AAD8////////AQAA////Af8D////////x/9wAP////9HAP//////////HgD/FwAAAAD///v///+fQAAAAAAAAAAAf73/v/8B/////////wH/A++f+f///e3jnxmB4A8="),C(g,120208,"//////////+7B/+DAAAAAP//////////swD/Aw=="),C(g,120256,"////////P38AAAA/AAAAAP////////9/EQD/AwAAAAD///////8/Af8DAAAAAAAA////5/8H/wM="),C(g,120336,"/////////wE="),C(g,120356,"////////////AwCA"),C(g,120388,"//z///////waAAAA////////538AAP///////////yAAAAAA/////////wH//f////9/fwEA/wMAAPz////8///+fw=="),C(g,120464,"f/v/////f7TLAP8Dv/3///9/ewH/Aw=="),C(g,120524,"//9/AP////////////////////////8D"),C(g,120560,"/////////////////38AAP///////////////////////////////w8="),C(g,120624,"//////9/"),C(g,120656,"//////////9/"),C(g,120688,"/////////wH///9//wM="),C(g,120714,"////PwAA////////AAAPAP8D+P//4P//"),C(g,120760,"//////////8="),C(g,120784,"////////////h/////////+A//8AAAAAAAAAAAsAAAD/////////////////////////////////////////AP///////////////////////////////////////wcA////fwAAAAAAAAcA8AD/////////////////////////////////////////////////////////////////D/////////////////8H/x//Af9D"),C(g,120976,"/////////////9///////////99k3v/r7/////////+/59/f////e1/8/f//////////////////////////////////////////////////////P/////3///f////3///f////3///f////3/////9/////f//98////////9////52wc="),C(g,121136,"//////8fgD//Qw=="),C(g,121192,"//////8P/wP///////////////////////////////8fAAAAAAAAAP//////////jwj/Aw=="),C(g,121264,"7////5b+9wqE6paqlvf3Xv/7/w/u+/8P"),C(g,121302,"////A////wP///8D"),C(g,121328,"/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8="),C(g,121601,"ARcCHRgTAx4bGQsUCAQNHxYcEhoKBwwVEQkGEAUPDt4SBJUAAAAA////////////////INsBABQAAABDLlVURi04"),C(g,121696,"TENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVM="),C(g,121776,"Qy5VVEYtOA=="),C(g,121800,"MAUCAE5vIGVycm9yIGluZm9ybWF0aW9uAElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNlbnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBWYWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQgb2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJlYWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRvd24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJyb3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3VjaCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBTeW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRvcgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxpbmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQARnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmljZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQAUHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBOb3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJnZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24ATmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlvbiBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABTb2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3BlcmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZpbGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5kAFdyb25nIG1lZGl1bSB0eXBlAE11bHRpaG9wIGF0dGVtcHRlZABSZXF1aXJlZCBrZXkgbm90IGF2YWlsYWJsZQBLZXkgaGFzIGV4cGlyZWQAS2V5IGhhcyBiZWVuIHJldm9rZWQAS2V5IHdhcyByZWplY3RlZCBieSBzZXJ2aWNl"),C(g,123730,"pQJbAPABtQWMBSUBgwYdA5QE/wDHAzEDCwa8AY8BfwPKBCsA2gavAEIDTgPcAQ4EFQChBg0BlAILAjgGZAK8Av8CXQPnBAsHzwLLBe8F2wXhAh4GRQKFAIICbANvBPEA8wMYBdkA2gNMBlQCewGdA70EAABRABUCuwCzA20A/wGFBC8F+QQ4AGUBRgGfALcGqAFzAlMB"),C(g,123928,"IQQAAAAAAAAAAC8C"),C(g,123960,"NQRHBFYE"),C(g,123982,"oAQ="),C(g,124002,"RgVgBW4FYQYAAM8BAAAAAAAAAADJBukG+QYeBzkHSQdeBw=="),C(g,124048,"GQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRk="),C(g,124129,"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO"),C(g,124187,"DA=="),C(g,124199,"EwAAAAATAAAAAAkMAAAAAAAMAAAM"),C(g,124245,"EA=="),C(g,124257,"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ"),C(g,124303,"Eg=="),C(g,124315,"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa"),C(g,124370,"GgAAABoaGgAAAAAAAAk="),C(g,124419,"FA=="),C(g,124431,"FwAAAAAXAAAAAAkUAAAAAAAUAAAU"),C(g,124477,"Fg=="),C(g,124489,"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVG"),C(g,124564,"EQ=="),C(g,124604,"//////////8="),C(g,124672,"0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNsAAAAAIAAAAAkAAAAKAAAADQAAAAsAAAAMAAAAhQAAAAAgAAABIAAAAiAAAAMgAAAEIAAABSAAAAYgAAAIIAAACSAAAAogAAAoIAAAKSAAAF8gAAAAMAAAAAAAAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAAGjpAQB46AEAZOoBAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAAGjpAQCo6AEAnOgBAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAAGjpAQDY6AEAnOgBAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAGjpAQAI6QEA/OgBAAAAAADM6AEAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAAAAAAsOkBABQAAAAcAAAAFgAAABcAAAAYAAAAHQAAAB4AAAAfAAAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAAGjpAQCI6QEAzOgBAAAAAAAg6gEACQAAACAAAAAhAAAAAAAAAEjqAQAJAAAAIgAAACMAAAAAAAAACOoBAAkAAAAkAAAAJQAAAFN0OWV4Y2VwdGlvbgAAAABA6QEA+OkBAFN0OWJhZF9hbGxvYwAAAABo6QEAEOoBAAjqAQBTdDIwYmFkX2FycmF5X25ld19sZW5ndGgAAAAAaOkBACzqAQAg6gEAU3Q5dHlwZV9pbmZvAAAAAEDpAQBU6gE="),C(g,125552,"wLEAAMCyAADAswAAwLQAAMC1AADAtgAAwLcAAMC4AADAuQAAwLoAAMC7AADAvAAAwL0AAMC+AADAvwAAwMAAAMDBAADAwgAAwMMAAMDEAADAxQAAwMIAAMDGAADAxwAAwMgAAMDJAADAygAAwMsAAMDMAADAzQAAwM4AAMDPAADA0AAAwNEAAMDSAADA0wAAwNQAAMDVAADA1gAAwNcAAMDYAADA2QAAwNIAAMDaAADA2wAAwNwAAMDdAADA3gAAwN8AAMDgAADA4QAAwNgAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA4gAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwOMAAMDkAADAwgAAwMIAAMDCAADA5QAAwMIAAMDmAADA5wAAwOgAAMDpAADA6gAAwOsAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADA7AAAwO0AAMDCAADA7gAAwO8AAMDCAADA8AAAwPEAAMDyAADA8wAAwPQAAMD1AADA9gAAwPcAAMD4AADAwgAAwPkAAMD6AADA+wAAwPwAAMD9AADA/gAAwP8AAMAAAQDAAQEAwAIBAMADAQDABAEAwAUBAMAGAQDABwEAwAgBAMAJAQDACgEAwAsBAMAMAQDACwEAwA0BAMAOAQDADwEAwAsBAMDCAADAwgAAwMIAAMAQAQDAEQEAwBIBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMDCAADAwgAAwBMBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBQBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAwgAAwBUBAMAWAQDACwEAwAsBAMAXAQDAGAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAGQEAwMIAAMDCAADAGgEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMDCAADAGwEAwBwBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMAdAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwB4BAMAfAQDAIAEAwCEBAMAiAQDAIwEAwCQBAMAlAQDA2AAAwNgAAMAmAQDACwEAwAsBAMALAQDACwEAwAsBAMAnAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwCgBAMApAQDACwEAwAsBAMAqAQDACwEAwCsBAMALAQDALAEAwC0BAMAuAQDALwEAwNgAAMDYAADAMAEAwDEBAMAyAQDAMwEAwDQBAMALAQDACwEAwAsBAMALAQDACwEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA1AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwDYBAMA3AQDAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAOAEAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMDCAADAwgAAwMIAAMA5AQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDACwEAwAsBAMALAQDAwgAAwMIAAMA6AQDAOwEAwDwB"),C(g,128496,"oVcBAEEAAADdVwEAQgAAACZYAQBDAAAAa1gBAEQAAADSWAEARQAAABNZAQBGAAAAfFkBAEcAAACEWQEASAAAADBaAQBJAAAAZ1oBAEoAAADuWgEASwAAAC5bAQBMAAAAcVsBAE0AAADZWwEATgAAAGtcAQBPAAAAh1wBAAgAAADcXAEACQAAAB9dAQAKAAAAZ10BAAsAAACVXQEADAAAAMpdAQANAAAAD14BAA4AAAAqXgEADwAAAIZeAQAPAAAAvV4BABAAAABDXwEAEQAAAH1fAQASAAAAq18BABMAAADZXwEAFAAAAAVgAQAVAAAAMGABABcAAABgYAEAGAAAAHlgAQAZAAAAtWABABsAAADdYAEAHAAAAPBgAQAdAAAAI2EBACAAAABEYQEAIQAAAG9hAQAiAAAAnWEBACMAAADRYQEAJAAAAPNhAQAlAAAAFWIBACYAAABZYgEAKAAAAH1iAQApAAAArmIBACoAAADoYgEAKwAAADVjAQAtAAAAb2MBAC4AAACnYwEALwAAAOZjAQAwAAAAeGQBADEAAACdZAEAMgAAAM9kAQAzAAAA/mQBAGQAAABgZQEAyAAAAN1lAQDJAAAAAAAAAP////8iZgEAAQAAAD5mAQACAAAABVUBAAMAAADNZgEAEQAAADRnAQASAAAAg2cBABMAAAD7ZwEAFAAAADtoAQAVAAAATGgBABYAAAB0aAEAEQAAALdoAQAhAAAAymgBACIAAAD+aAEAIwAAAEtpAQAkAAAAaWkBACUAAACfaQEAJgAAAOJpAQAhAAAAAAAAAP////8AAAAAAAAAACYAAAAAAAAAAQAAAJByAQABAAAAkHMBAAEAAACQdAEAAQAAAJB1AQABAAAAkHYBAAEAAACQdwEAAQAAAJB4AQABAAAAkHkBAAEAAACQegEAAQAAAJB7AQABAAAAkHwBAAEAAACQfQEAAQAAAJB+AQABAAAAkH8BAAEAAACQgAEAAQAAAJCBAQABAAAAkIIBAAUAAAAAAAAABg=="),C(g,129280,"oIMBAKCDAQAghAEAIIQBAKCEAQAghQEAoIUBACCGAQCghgEAoIYBACCHAQAghwEAoIcBAKCHAQAgiAEAIIgBAKCIAQCgiAEAIIkBACCJAQAuOU4ycIoBAAMHBQCQigEALjlOLnCKAQADBwUAkIoBAC45Ti5wigEAAwcFAJCKAQAuOVoycIoBAAMJBQCVigEALjlOMnCKAQADBwUAkIoBAC45SjdwigEABAcFAJqKAQAuOUo3cIoBAAQHBQCaigEALjlKN3CKAQAEBwUAmooBAC45TjJwigEAAwcFAJCKAQAuOU4ucIoBAAMHBQCQigEALjlOMnCKAQADBwUAkIoBACIpKSBwigEAAwcFAJqKAQAuOTcycIoBAAMHBQCaigEAo1MBABABAAAAVAEADAEAANJUAQARAQAAClUBACMAAAB/VQEAGwAAADRWAQAVAAAAxVYBAAABAAABVwEAAgEAAE1XAQADAQAAvVcBAAQBAAD7VwEABQEAAE5YAQATAAAAkVgBAB4AAADVWAEAFwAAAF9ZAQAaAAAAkVkBABkAAAD0WQEAGAAAADhaAQAdAAAAzloBABwAAAAPWwEAFgAAADdbAQAU"),C(g,129744,"Q1gBABABAACIWAEADAEAAPNYAQARAQAAM1kBACMAAACHWQEAGwAAAOBZAQAVAAAAQloBAAABAACcWgEAAgEAAABbAQADAQAAT1sBAAQBAACnWwEABQEAAEhcAQATAAAAc1wBAB4AAADEXAEAFwAAABVdAQAaAAAAXV0BABkAAACIXQEAGAAAANJdAQAdAAAABF4BABwAAAAvXgEAFgAAAF9eAQAU"),C(g,129920,"u08BAAEAAABcUAEAAAAAAM9QAQAAAAAAOFIBAAAAAABBUwEAAAAAAIFTAQAAAAAA+1MBAAAAAADnVAEAAAAAACVVAQAAAAAAiVUBAAAAAABUVgEAAAAAAPxWAQAAAAAADlcBAAAAAABIVwEAAAAAAKdXAQAAAAAA9lcBAAAAAAA3WAEAAAAAAKNYAQAAAAAA6FgBAAAAAAAuWQEAAAAAAH9ZAQAAAAAA61kBAAAAAAD/////g00BAIIAAAB5AAAAdg=="),C(g,130128,"4I8BAOCPAQBQkAEAwJABAMCQAQDAkAEAAQAAANQKAwCMCgMAROcC"),C(g,130176,"I0sBAAEAAAAAAAAA/////1dMAQABAAAA+0wBAAIAAADGTQEAAwAAAAAAAAD/////Vk4BAAAAAADSTgEAAQAAALJPAQACAAAAGFABABQAAAAAAAAA/////wAAAAAAAAAAt1ABABIAAABNUgEAFAAAAN5SAQAkAAAAhlMBAEAAAAARVAEAwQAAAAAAAAD/////q1QBAAEAAAAAAAAA/////1dMAQAAAAAAGVUBAAEAAACRVQEAAgAAAENWAQADAAAA31YBAAQAAAAgVwEABQAAAAAAAAD/////AAAAAAAAAABXTAEAAQAAAIlXAQACAAAAr1cBAAMAAADfVgEABAAAACBXAQAFAAAAAAAAAP////8AAAAAClgBADxYAQAYUAEAqFgB"),C(g,130480,"8l8BAAEAAAA5YAEAAgAAAFhgAQADAAAAgWABAAQAAACwYAEABQAAANNgAQAGAAAABWEBAAcAAAAqYQEACAAAAFFhAQAJAAAAdmEBAAoAAACQYQEACwAAAMNhAQAMAAAA+WEBAA0AAAAuYgEADgAAAE5iAQAPAAAAhmIBAA8AAADUYgEADwAAABljAQAPAAAAP2MBAA8AAACkYwEABwAAANpjAQAHAAAAO2QBAAcAAACEZAEABwAAAK9kAQAHAAAAw2QBAA4AAADnZAEADgAAAAplAQAQAAAA9GUBABAAAAArZgEAEAAAAN9WAQAQAAAAbmYBABAAAADBZgEAEA=="),C(g,130752,"f20BAD4AAACjbQEAPOAAAM1tAQAmAAAA1G0BACIAAAA6bgEAIAAAAHhuAQAnAAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAxWcBAAAAAAAJaAEAHgAAAEJoAQBBAAAAQ1YBAGQAAACGaAEAlgAAAKVoAQDmAAAAAAAAAP////9jZwEAZAAAAL5oAQA8AAAA6WgBAFAAAABDVgEAZAAAABJpAQB9AAAAUmkBAKAAAAAAAAAA/////wAAAAAAAAAAY2cBAGQAAACUaQEARgAAAN5pAQBVAAAAQ1YBAGQAAAAoagEAbgAAAGdqAQB4AAAAAAAAAP////8AAAAAAAAAAGNnAQBkAAAAlGkBABQAAADeaQEAMgAAAENWAQBkAAAAKGoBAIwAAABnagEAtAAAAAAAAAD/////"),C(g,131076,"QP8BAAD/AQCA/wEAwP8B"),C(g,131104,"wmoBACDgAAALawEACeAAAEFrAQBf4AAAe2sBACI="),C(g,131152,"q2sBAAEAAAC8awEAAgAAAA1sAQAD"),C(g,131184,"+EwBAMJNAQBTTgEACU8BAOVPAQBkUAEA2lABAGdSAQDyUgEA1FMBAGFUAQ=="),C(g,131236,"iFIBADlTAQAAAAAAnlMBAGRUAQDwVAEAL1UBAJpVAQBQVgE="),C(g,131280,"Y1IBAIADAACAA/8DbGUAAAcAAAA0UwEAIAQAAAAELwUAAAAAAAAAAHNTAQAwBQAAMAWPBXloAAAEAAAAG1QBAJAFAACQBf8FAAAAAAAAAAC3VAEAAAYAAAAG/wYAAAAAAAAAACpVAQAABwAAAAdPBwAAAAAAAAAAllUBAAAJAAAACX8JaWgAAAQAAAA/VgEAgAkAAIAJ/wluYgAABAAAANZWAQAACgAAAAp/CmFwAAAEAAAAClcBAIAKAACACv8KdWcAAAQAAABfVwEAAAsAAAALfwsAAAAAAAAAAM5XAQCACwAAgAv/C2F0AAAEAAAAD1gBAAAMAAAADH8MZXQAAAAAAAAsWAEAgAwAAIAM/wxuawAABAAAAJ9YAQAADQAAAA1/DWxtAAAEAAAA5FgBAIANAACADf8NaXMAAAQAAAA8WQEAAA4AAAAOfw4AAAAAAAAAAJtZAQCADgAAgA7/DgAAAAAAAAAA8FkBAAAPAAAAD/8PAAAAAAAAAAA0WgEAABAAAAAQnxAAAAAAAAAAANlaAQCgEAAAoBD/EGFrAAAEAAAAGFsBAAARAAAAEf8Rb2sAAAQAAABKWwEAABIAAAASnxMAAAAAAAAAALlbAQAAKAAAACj/KAAAAAAQAAAAWlwBAEAwAABAMP8wAAAAAAgAAACDXAEAADEAAAAx/58AAAAACAAAABhbAQAApwAAAKf/129rAAAM"),C(g,131840,"WAIAAKoAAACwBAAAhwAAANAHAABuAAAAuAsAAG4AAAD/////"),C(g,131888,"qAsD"),C(g,131904,"mF4BAAEAAAA4XwEAAgAAAGFfAQADAAAAnV8BAAYAAADCXwEACQAAAPhfAQAKAAAAJ2ABAAQAAABNYAEABQAAAI1gAQAkAAAAq2ABAAsAAADVYAEADAAAAPZgAQANAAAAFmEBAA4AAABMYQEADwAAAGdhAQAQAAAAlmEBABEAAAC7YQEAEgAAAAJiAQAfAAAAG2IBACUAAABIYgEAIAAAAJJiAQAhAAAAzmIBACIAAADwYgEABwAAAC5jAQAI"),C(g,132112,"jmMBAAEAAAC8YwEAAgAAAAAAAAABAAAAFJwBACCcAQAsnAEAPAAAABo="),C(g,132163,"AgMFCAsOEhYbICUrMTc+RUxTWmJpcXmAiJCYn6autbzCyc/V2uDk6e3w9Pb5+/z9/f39/Pv59vTw7enk4NrVz8nCvLWupp+YkIiAeXFpYlpTTEU+NzErJSAbFhIOCwgFAwI="),C(g,132288,"QAAAAAABAAAAAAAA7AQCACcAAAAoAAAAKQAAACoAAAArAAAAQOkBAMO2AQBo6QEAsLYBAOQEAgAAAAAAJAUCACwAAAAtAAAALgAAAC8AAABA6QEAArcBAGjpAQDstgEAEAUCAGjpAQDStgEAGAUCAAU="),C(g,132412,"DQ=="),C(g,132436,"CwAAAAoAAADoeAM="),C(g,132460,"Ag=="),C(g,132476,"//////////8="),C(g,132544,"MAUCAAAAAAAF"),C(g,132564,"MA=="),C(g,132588,"CwAAADEAAAD4eAMAAAQ="),C(g,132612,"AQ=="),C(g,132628,"/////wo="),C(g,132696,"yAUCAAB/BA==");var Hn,$A=(Hn=[null,function(A){var t,r=0;return r=e[(A|=0)>>2],e[A>>2]=r+1,r=255&(t=d[0|r]),(0|t)<0&&(r=y[(e[A+12>>2]+(r<<1)|0)-256>>1]),0|r},yo,function(A){var t,r;return t=e[(A|=0)>>2],r=e[t>>2],e[A>>2]=t+4,0|r},function(A){var t=0,r=0;return t=e[(A|=0)>>2],(0|(r=Ne(A)))==65533&&(e[A>>2]=t+1,e[A+8>>2]=1,r=255&(t=d[0|t]),(0|t)>=0||(r=y[(e[A+12>>2]+(r<<1)|0)-256>>1])),0|r},Ne,function(A){var t,r,s=0;return(s=e[4+(A|=0)>>2])>>>0<=(r=(t=e[A>>2])+1|0)>>>0?(e[A>>2]=s,65533):(e[A>>2]=r,s=u[0|t],e[A>>2]=t+2,s|u[t+1|0]<<8)},function(A,t){var r,s,o;return t|=0,A=e[(A|=0)>>2],r=e[A+4>>2],s=e[t>>2],(t=tr(r+1|0,(o=e[s+4>>2])+1|0))||(t=d[0|r]-d[0|o]|0)||(t=tr(e[A>>2],e[s>>2])),0|t},function(A,t){var r;return A|=0,t=e[(t|=0)>>2],r=e[A>>2],(A=e[t+16>>2]-e[r+16>>2]|0)||(A=tr(e[r>>2],e[t>>2])),0|A},Xi,function(A,t,r,s){var o;return t|=0,r|=0,s|=0,H=o=H-16|0,(A=0|qe(e[60+(A|=0)>>2],0|t,0|r,255&s,o+8|0))?(e[56798]=A,A=-1):A=0,H=o+16|0,me=A?-1:e[o+12>>2],0|(A?-1:e[o+8>>2])},function(A,t,r){t|=0,r|=0;var s,o=0,l=0,c=0,f=0,m=0,I=0;H=s=H-32|0,o=e[28+(A|=0)>>2],e[s+16>>2]=o,c=e[A+20>>2],e[s+28>>2]=r,e[s+24>>2]=t,t=c-o|0,e[s+20>>2]=t,c=t+r|0,m=2;e:{A:{t=s+16|0,(o=0|Re(e[A+60>>2],0|t,2,s+12|0))?(e[56798]=o,o=-1):o=0;r:{if(o)o=t;else for(;;){if((0|(l=e[s+12>>2]))==(0|c))break r;if((0|l)<0){o=t;break A}if(f=l-((I=(f=e[t+4>>2])>>>0>>0)?f:0)|0,e[(o=(I<<3)+t|0)>>2]=f+e[o>>2],e[(t=(I?12:4)+t|0)>>2]=e[t>>2]-f,c=c-l|0,t=o,m=m-I|0,(l=0|Re(e[A+60>>2],0|t,0|m,s+12|0))?(e[56798]=l,l=-1):l=0,l)break}if((0|c)!=-1)break A}t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,e[A+16>>2]=t+e[A+48>>2],A=r;break e}e[A+28>>2]=0,e[A+16>>2]=0,e[A+20>>2]=0,e[A>>2]=32|e[A>>2],A=0,(0|m)!=2&&(A=r-e[o+4>>2]|0)}return H=s+32|0,0|A},function(A,t,r){A|=0,t|=0,r|=0;var s,o=0,l=0,c=0;H=s=H-32|0,e[s+16>>2]=t,o=e[A+48>>2],e[s+20>>2]=r-!!(0|o),l=e[A+44>>2],e[s+28>>2]=o,e[s+24>>2]=l;e:{A:{if((o=0|sA(e[A+60>>2],s+16|0,2,s+12|0))?(e[56798]=o,o=-1):o=0,o)t=32;else{if((0|(o=e[s+12>>2]))>0)break A;t=o?32:16}e[A>>2]=t|e[A>>2];break e}c=o,(l=e[s+20>>2])>>>0>=o>>>0||(o=e[A+44>>2],e[A+4>>2]=o,e[A+8>>2]=o+(c-l|0),e[A+48>>2]&&(e[A+4>>2]=o+1,d[(t+r|0)-1|0]=u[0|o]),c=r)}return H=s+32|0,0|c},function(A){return 0|De(e[60+(A|=0)>>2])},$a,function(A,t,r,s,o,l){A|=0,t=+t,r|=0,s|=0,o|=0,l|=0;var c,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0,Je=0;H=c=H-560|0,e[c+44>>2]=0,F(+t),f=0|B(1),B(0),(0|f)<0?(oe=1,He=84997,F(+(t=-t)),f=0|B(1),B(0)):2048&o?(oe=1,He=85e3):(He=(oe=1&o)?85003:84998,Je=!oe);e:if(2146435072&~f){Ie=c+16|0;A:{r:{a:{if(t=On(t,c+44|0),(t+=t)!=0){if(f=e[c+44>>2],e[c+44>>2]=f-1,(0|(Ge=32|l))!=97)break a;break A}if((0|(Ge=32|l))==97)break A;M=e[c+44>>2],G=(0|s)<0?6:s;break r}M=f-29|0,e[c+44>>2]=M,t*=268435456,G=(0|s)<0?6:s}for(m=X=(c+48|0)+((0|M)>=0?288:0)|0;s=t<4294967296&t>=0?~~t>>>0:0,e[m>>2]=s,m=m+4|0,(t=1e9*(t-+(s>>>0)))!=0;);if((0|M)<=0)s=M,f=m,I=X;else for(I=X,s=M;;){if(W=(0|s)>=29?29:s,!(I>>>0>(f=m-4|0)>>>0)){for(s=0;b=e[f>>2],Oe=s,s=31&W,(63&W)>>>0>=32?(z=b<>>32-s,s=b<>>0>Oe>>>0?b+1|0:b,1e9),e[f>>2]=Oe-st(s,me,1e9,0),I>>>0<=(f=f-4|0)>>>0;);s&&(e[(I=I-4|0)>>2]=s)}for(;I>>>0<(f=m)>>>0&&!e[(m=f-4|0)>>2];);if(s=e[c+44>>2]-W|0,e[c+44>>2]=s,m=f,!((0|s)>0))break}if((0|s)<0)for(pe=1+((G+25>>>0)/9|0)|0,Y=(0|Ge)==102;;){if(z=(0|(s=0-s|0))>=9?9:s,f>>>0<=I>>>0)m=e[I>>2];else{for(W=1e9>>>z|0,b=~(-1<>2],e[m>>2]=Oe+(s>>>z|0),s=O(W,s&b),(m=m+4|0)>>>0>>0;);m=e[I>>2],s&&(e[f>>2]=s,f=f+4|0)}if(s=z+e[c+44>>2]|0,e[c+44>>2]=s,I=(!m<<2)+I|0,f=f-(m=Y?X:I)>>2>(0|pe)?m+(pe<<2)|0:f,!((0|s)<0))break}if(s=0,!(f>>>0<=I>>>0||(s=O(X-I>>2,9),m=10,(b=e[I>>2])>>>0<10)))for(;s=s+1|0,b>>>0>=(m=O(m,10))>>>0;);if((0|(m=(G-((0|Ge)!=102?s:0)|0)-((0|Ge)==103&!!(0|G))|0))<(O(f-X>>2,9)-9|0)){if(M=((((0|M)<0?4:292)+c|0)+((b=(0|(W=m+9216|0))/9|0)<<2)|0)-4048|0,m=10,(0|(z=W-O(b,9)|0))<=7)for(;m=O(m,10),(0|(z=z+1|0))!=8;);if(!(!(Y=(W=e[M>>2])-O(m,pe=(W>>>0)/(m>>>0)|0)|0)&(0|(b=M+4|0))==(0|f))&&(!(1&pe)&&(t=9007199254740992,!(1&d[M-4|0])|(0|m)!=1e9|I>>>0>=M>>>0)||(t=9007199254740994),te=(0|f)==(0|b)?1:1.5,te=(b=m>>>1|0)>>>0>Y>>>0?.5:(0|b)==(0|Y)?te:1.5,u[0|He]!=45|Je||(te=-te,t=-t),b=W-Y|0,e[M>>2]=b,t+te!=t)){if(s=m+b|0,e[M>>2]=s,s>>>0>=1e9)for(;e[M>>2]=0,(M=M-4|0)>>>0>>0&&(e[(I=I-4|0)>>2]=0),s=e[M>>2]+1|0,e[M>>2]=s,s>>>0>999999999;);if(s=O(X-I>>2,9),m=10,!((b=e[I>>2])>>>0<10))for(;s=s+1|0,b>>>0>=(m=O(m,10))>>>0;);}f=f>>>0>(m=M+4|0)>>>0?m:f}for(;b=f,!(W=f>>>0<=I>>>0)&&!e[(f=b-4|0)>>2];);if((0|Ge)==103){if(G=((f=(0|(m=G||1))>(0|s)&(0|s)>-5)?~s:-1)+m|0,l=(f?-1:-2)+l|0,!(M=8&o)){if(f=-9,!W&&(M=e[b-4>>2])&&(z=10,f=0,!((M>>>0)%10|0))){for(;m=f,f=f+1|0,!((M>>>0)%((z=O(z,10))>>>0)|0););f=~m}m=O(b-X>>2,9),(-33&l)!=70?(M=0,G=(0|(f=(0|(f=((s+m|0)+f|0)-9|0))>0?f:0))>(0|G)?G:f):(M=0,G=(0|(f=(0|(f=(f+m|0)-9|0))>0?f:0))>(0|G)?G:f)}}else M=8&o;if(z=-1,(0|((W=M|G)?2147483645:2147483646))<(0|G))break e;if(Y=1+(!!(0|W)+G|0)|0,(0|(m=-33&l))!=70){if((Ie-(f=ga(((f=s>>31)^s)-f|0,0,Ie))|0)<=1)for(;d[0|(f=f-1|0)]=48,(Ie-f|0)<2;);if(d[0|(pe=f-2|0)]=l,d[f-1|0]=(0|s)<0?45:43,(0|(f=Ie-pe|0))>(2147483647^Y))break e}else{if((2147483647^Y)<(0|s))break e;f=(0|s)>0?s:0}if((0|(s=f+Y|0))>(2147483647^oe))break e;Sr(A,32,r,Y=s+oe|0,o),_r(A,He,oe),Sr(A,48,r,Y,65536^o);r:{a:{n:{if((0|m)==70){for(s=8|(l=c+16|0),M=9|l,I=m=I>>>0>X>>>0?X:I;;){f=ga(e[I>>2],0,M);o:if((0|m)==(0|I))(0|f)==(0|M)&&(d[c+24|0]=48,f=s);else{if(c+16>>>0>=f>>>0)break o;for(;d[0|(f=f-1|0)]=48,c+16>>>0>>0;);}if(_r(A,f,M-f|0),!(X>>>0>=(I=I+4|0)>>>0))break}if(W&&_r(A,85998,1),(0|G)<=0|I>>>0>=b>>>0)break n;for(;;){if((f=ga(e[I>>2],0,M))>>>0>c+16>>>0)for(;d[0|(f=f-1|0)]=48,c+16>>>0>>0;);if(_r(A,f,(0|G)>=9?9:G),f=G-9|0,b>>>0<=(I=I+4|0)>>>0)break a;if(s=(0|G)>9,G=f,!s)break}break a}o:if(!((0|G)<0))for(X=I>>>0>>0?b:I+4|0,s=8|(l=c+16|0),b=9|l,m=I;;){(0|b)==(0|(f=ga(e[m>>2],0,b)))&&(d[c+24|0]=48,f=s);c:if((0|m)==(0|I))_r(A,f,1),f=f+1|0,M|G&&_r(A,85998,1);else{if(c+16>>>0>=f>>>0)break c;for(;d[0|(f=f-1|0)]=48,c+16>>>0>>0;);}if(_r(A,f,(0|(l=b-f|0))>(0|G)?G:l),G=G-l|0,X>>>0<=(m=m+4|0)>>>0)break o;if(!((0|G)>=0))break}Sr(A,48,G+18|0,18,0),_r(A,pe,Ie-pe|0);break r}f=G}Sr(A,48,f+9|0,9,0)}Sr(A,32,r,Y,8192^o),z=(0|r)<(0|Y)?Y:r;break e}if(M=(l<<26>>31&9)+He|0,!(s>>>0>11)){for(f=12-s|0,te=16;te*=16,f=f-1|0;);t=u[0|M]!=45?t+te-te:-(te+(-t-te))}for((0|Ie)==(0|(f=ga(((f=e[c+44>>2])^(m=f>>31))-m|0,0,Ie)))&&(d[c+15|0]=48,f=c+15|0),X=2|oe,I=32&l,m=e[c+44>>2],d[0|(G=f-2|0)]=l+15,d[f-1|0]=(0|m)<0?45:43,f=8&o,m=c+16|0;l=m,b=Ae(t)<2147483648?~~t:-2147483648,d[0|m]=I|u[b+124512|0],!((0|s)>0|f)&(t=16*(t-+(0|b)))==0|((m=l+1|0)-(c+16|0)|0)!=1||(d[l+1|0]=46,m=l+2|0),t!=0;);z=-1,(2147483645-(l=(f=Ie-G|0)+X|0)|0)<(0|s)||(Sr(A,32,r,l=(s=!s||((I=m-(c+16|0)|0)-2|0)>=(0|s)?I=m-(c+16|0)|0:s+2|0)+l|0,o),_r(A,M,X),Sr(A,48,r,l,65536^o),_r(A,c+16|0,I),Sr(A,48,s-I|0,0,0),_r(A,G,f),Sr(A,32,r,l,8192^o),z=(0|r)<(0|l)?l:r)}else Sr(A,32,r,f=oe+3|0,-65537&o),_r(A,He,oe),s=32&l,_r(A,t!=t?s?85596:85774:s?85247:85460,3),Sr(A,32,r,f,8192^o),z=(0|r)<(0|f)?f:r;return H=c+560|0,0|z},function(A,t){var r;A|=0,r=t|=0,t=e[t>>2]+7&-8,e[r>>2]=t+16,T[A>>3]=ba(e[t>>2],e[t+4>>2],e[t+8>>2],e[t+12>>2])},function(A,t,r){t|=0,r|=0;var s,o,l=0,c=0;return s=e[84+(A|=0)>>2],c=e[s+4>>2],o=e[A+28>>2],(l=(l=e[A+20>>2]-o|0)>>>0>c>>>0?c:l)&&(SA(e[s>>2],o,l),e[s>>2]=l+e[s>>2],c=e[s+4>>2]-l|0,e[s+4>>2]=c),l=e[s>>2],(c=r>>>0>c>>>0?c:r)&&(SA(l,t,c),l=c+e[s>>2]|0,e[s>>2]=l,e[s+4>>2]=e[s+4>>2]-c),d[0|l]=0,t=e[A+44>>2],e[A+28>>2]=t,e[A+20>>2]=t,0|r},function(A,t,r){r|=0;var s,o,l=0;return SA(t|=0,s=e[84+(A|=0)>>2],r=r>>>0>(l=(o=ca(s,0,l=r+256|0))?o-s|0:l)>>>0?l:r),t=s+l|0,e[A+84>>2]=t,e[A+8>>2]=t,e[A+4>>2]=r+s,0|r},function(A,t,r){t|=0,r|=0;var s,o=0,l=0,c=0;o=e[84+(A|=0)>>2],s=e[o>>2]?o:84412,o=0;e:if(e[A+48>>2])for(;;){if(!(l=e[(o<<2)+s>>2]))break e;if(d[e[A+44>>2]+o|0]=(0|l)>=128?64:l,!((o=o+1|0)>>>0<$[A+48>>2]))break}return l=e[A+44>>2],e[A+4>>2]=l,e[A+84>>2]=(o<<2)+s,e[A+8>>2]=o+l,!r|!o||(e[A+4>>2]=l+1,d[0|t]=u[0|l],c=1),0|c},Xi,bn,Zi,Zi,function(A,t,r){r|=0;var s,o=0;return H=s=H+-64|0,o=1,Ks(A|=0,t|=0,0)||(o=0,t&&(o=0,(t=yA(t,125132))&&(eA(4|(o=s+8|0),0,52),e[s+56>>2]=1,e[s+20>>2]=-1,e[s+16>>2]=A,e[s+8>>2]=t,$A[e[e[t>>2]+28>>2]](t,o,e[r>>2],1),(0|(A=e[s+32>>2]))==1&&(e[r>>2]=e[s+24>>2]),o=(0|A)==1))),H=s- -64|0,0|o},function(A,t,r,s,o,l){r|=0,s|=0,o|=0,l|=0,Ks(A|=0,e[8+(t|=0)>>2],l)&&Pn(t,r,s,o)},function(A,t,r,s,o){if(r|=0,s|=0,o|=0,Ks(A|=0,e[8+(t|=0)>>2],o))e[t+28>>2]==1|e[t+4>>2]!=(0|r)||(e[t+28>>2]=s);else e:if(Ks(A,e[t>>2],o)){if(!(e[t+16>>2]!=(0|r)&e[t+20>>2]!=(0|r))){if((0|s)!=1)break e;return void(e[t+32>>2]=1)}e[t+20>>2]=r,e[t+32>>2]=s,e[t+40>>2]=e[t+40>>2]+1,e[t+36>>2]!=1|e[t+24>>2]!=2||(d[t+54|0]=1),e[t+44>>2]=4}},function(A,t,r,s){r|=0,s|=0,Ks(A|=0,e[8+(t|=0)>>2],0)&&Za(t,r,s)},bn,function(A,t,r,s,o,l){r|=0,s|=0,o|=0,l|=0,Ks(A|=0,e[8+(t|=0)>>2],l)?Pn(t,r,s,o):(A=e[A+8>>2],$A[e[e[A>>2]+20>>2]](A,t,r,s,o,l))},function(A,t,r,s,o){if(r|=0,s|=0,o|=0,Ks(A|=0,e[8+(t|=0)>>2],o))e[t+28>>2]==1|e[t+4>>2]!=(0|r)||(e[t+28>>2]=s);else e:{if(Ks(A,e[t>>2],o)){if(!(e[t+16>>2]!=(0|r)&e[t+20>>2]!=(0|r))){if((0|s)!=1)break e;return void(e[t+32>>2]=1)}e[t+32>>2]=s;A:if(e[t+44>>2]!=4){if(k[t+52>>1]=0,A=e[A+8>>2],$A[e[e[A>>2]+20>>2]](A,t,r,r,1,o),u[t+53|0]){if(e[t+44>>2]=3,!u[t+52|0])break A;break e}e[t+44>>2]=4}if(e[t+20>>2]=r,e[t+40>>2]=e[t+40>>2]+1,e[t+36>>2]!=1|e[t+24>>2]!=2)break e;return void(d[t+54|0]=1)}A=e[A+8>>2],$A[e[e[A>>2]+24>>2]](A,t,r,s,o)}},function(A,t,r,s){r|=0,s|=0,Ks(A|=0,e[8+(t|=0)>>2],0)?Za(t,r,s):(A=e[A+8>>2],$A[e[e[A>>2]+28>>2]](A,t,r,s))},bn,function(A){return 84787},bn,function(A){return 85058},bn,function(A){return 84147},function(A){var t;return t=A|=0,A=e[A>>2],e[t>>2]=A+1,0|((0|(A=d[0|A]))<0?65533:255&A)},function(A,t,r,s,o,l){A|=0,t|=0,r|=0,s|=0,o|=0,l|=0;var c,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0;if(c=gs(408),e[c+4>>2]=s,e[c>>2]=r,t?(SA(c+16|0,t,376),T[c+392>>3]=(T[t+368>>3]-T[t>>3])/+(r>>>0),t=0):t=1,e[c+400>>2]=o,d[c+8|0]=t,l){if(r=e[A+24>>2])for(t=e[A+20>>2],s=e[A+8>>2];(o=e[e[(t>>>8&16777212)+s>>2]+((1023&t)<<2)>>2])&&(FA(o),r=e[A+24>>2],s=e[A+8>>2],t=e[A+20>>2]),t=t+1|0,e[A+20>>2]=t,r=r-1|0,e[A+24>>2]=r,t>>>0>=2048&&(FA(e[s>>2]),s=e[A+8>>2]+4|0,e[A+8>>2]=s,t=e[A+20>>2]-1024|0,e[A+20>>2]=t,r=e[A+24>>2]),r;);t=e[A+28>>2],e[A+420>>2]=e[t>>2],(r=e[A+32>>2])&&(d[t+8|0]=u[r+8|0],SA(t+16|0,A+40|0,376),(t=e[A+32>>2])&&FA(t),e[A+32>>2]=0)}if(r=(s=e[A+24>>2])+e[A+20>>2]|0,o=e[A+12>>2],(0|r)==(0|((0|(t=e[A+8>>2]))!=(0|o)?(o-t<<8)-1:0))){H=f=H-32|0;e:{A:{r:{a:{if((t=e[16+(l=A+4|0)>>2])>>>0>=1024){if(e[l+16>>2]=t-1024,t=e[l+4>>2],G=e[t>>2],o=t+4|0,e[l+4>>2]=o,(0|(t=e[l+8>>2]))==e[l+12>>2])if((m=e[l>>2])>>>0>>0)r=ze((s=(1+(o-m>>2)|0)/-2<<2)+o|0,o,t=t-o|0)+t|0,e[l+8>>2]=r,e[l+4>>2]=s+e[l+4>>2];else{if((r=(0|t)==(0|m)?1:t-m>>1)>>>0>=1073741824)break a;if(z=(s=r<<2)+(I=gs(s))|0,r=s=I+(-4&r)|0,(0|t)!=(0|o)){if(W=-4&(t=t-o|0),M=1+((b=t-4|0)>>>2|0)&7)for(r=0,t=s;e[t>>2]=e[o>>2],o=o+4|0,t=t+4|0,(0|M)!=(0|(r=r+1|0)););else t=s;if(r=s+W|0,!(b>>>0<28))for(;e[t>>2]=e[o>>2],e[t+4>>2]=e[o+4>>2],e[t+8>>2]=e[o+8>>2],e[t+12>>2]=e[o+12>>2],e[t+16>>2]=e[o+16>>2],e[t+20>>2]=e[o+20>>2],e[t+24>>2]=e[o+24>>2],e[t+28>>2]=e[o+28>>2],o=o+32|0,(0|r)!=(0|(t=t+32|0)););}e[l+12>>2]=z,e[l+8>>2]=r,e[l+4>>2]=s,e[l>>2]=I,m&&(FA(m),r=e[l+8>>2])}else r=t;e[r>>2]=G,e[l+8>>2]=e[l+8>>2]+4;break e}if((m=(o=e[l+8>>2])-e[l+4>>2]>>2)>>>0<(s=(t=e[l+12>>2])-(r=e[l>>2])|0)>>2>>>0){if((0|t)!=(0|o)){e[f+8>>2]=gs(4096),Wa(l,f+8|0);break e}if(e[f+8>>2]=gs(4096),Ra(l,f+8|0),t=e[l+4>>2],G=e[t>>2],o=t+4|0,e[l+4>>2]=o,(0|(t=e[l+8>>2]))==e[l+12>>2])if((m=e[l>>2])>>>0>>0)r=ze((s=(1+(o-m>>2)|0)/-2<<2)+o|0,o,t=t-o|0)+t|0,e[l+8>>2]=r,e[l+4>>2]=s+e[l+4>>2];else{if((r=(0|t)==(0|m)?1:t-m>>1)>>>0>=1073741824)break a;if(z=(s=r<<2)+(I=gs(s))|0,r=s=I+(-4&r)|0,(0|t)!=(0|o)){if(W=-4&(t=t-o|0),M=1+((b=t-4|0)>>>2|0)&7)for(r=0,t=s;e[t>>2]=e[o>>2],o=o+4|0,t=t+4|0,(0|M)!=(0|(r=r+1|0)););else t=s;if(r=s+W|0,!(b>>>0<28))for(;e[t>>2]=e[o>>2],e[t+4>>2]=e[o+4>>2],e[t+8>>2]=e[o+8>>2],e[t+12>>2]=e[o+12>>2],e[t+16>>2]=e[o+16>>2],e[t+20>>2]=e[o+20>>2],e[t+24>>2]=e[o+24>>2],e[t+28>>2]=e[o+28>>2],o=o+32|0,(0|r)!=(0|(t=t+32|0)););}e[l+12>>2]=z,e[l+8>>2]=r,e[l+4>>2]=s,e[l>>2]=I,m&&(FA(m),r=e[l+8>>2])}else r=t;e[r>>2]=G,e[l+8>>2]=e[l+8>>2]+4;break e}if(e[f+24>>2]=l+12,!((t=(0|t)==(0|r)?1:s>>1)>>>0>=1073741824)){if(t=gs(r=t<<2),e[f+8>>2]=t,s=t+(m<<2)|0,e[f+16>>2]=s,e[f+20>>2]=t+r,e[f+12>>2]=s,e[f+4>>2]=gs(4096),Wa(f+8|0,f+4|0),(0|(o=e[l+8>>2]))==e[l+4>>2]){t=o;break A}for(;Ra(f+8|0,o=o-4|0),e[l+4>>2]!=(0|o););break r}}Li(),R()}t=e[l+8>>2]}r=e[l>>2],e[l>>2]=e[f+8>>2],e[f+8>>2]=r,e[l+4>>2]=e[f+12>>2],e[f+12>>2]=o,e[l+8>>2]=e[f+16>>2],e[f+16>>2]=t,s=e[l+12>>2],e[l+12>>2]=e[f+20>>2],e[f+20>>2]=s,(0|t)!=(0|o)&&(e[f+16>>2]=t+(3+(o-t|0)&-4)),r&&FA(r)}H=f+32|0,r=(s=e[A+24>>2])+e[A+20>>2]|0,t=e[A+8>>2]}e[e[t+(r>>>8&16777212)>>2]+((1023&r)<<2)>>2]=c,e[A+24>>2]=s+1},function(A){var t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0;r=e[420+(A|=0)>>2]+1|0,e[A+420>>2]=r;e:{if(t=e[A+32>>2]){if(r>>>0>(f=e[t+4>>2])>>>0){(r=e[A+28>>2])&&(FA(r),t=e[A+32>>2]),e[A+32>>2]=0,e[A+28>>2]=t;break e}for(l=A+40|0,c=t+16|0,m=e[A+28>>2]+16|0,I=+(r>>>0)/+(f>>>0),t=0;;){if(s=T[(r=t<<3)+c>>3],o=T[r+m>>3],T[r+l>>3]=s==s?(s-o)*I+o:o,(0|(r=1|t))==47)break e;s=T[(r<<=3)+c>>3],o=T[r+m>>3],T[r+l>>3]=s==s?(s-o)*I+o:o,t=t+2|0}}if(t=e[A+28>>2],r>>>0>$[t>>2]){if(l=e[A+24>>2]){if(d[A+416|0]=0,c=e[A+8>>2],r=e[A+20>>2],t=e[e[c+(r>>>8&16777212)>>2]+((1023&r)<<2)>>2],e[A+32>>2]=t,e[A+24>>2]=l-1,r=r+1|0,e[A+20>>2]=r,r>>>0>=2048&&(FA(e[c>>2]),e[A+8>>2]=e[A+8>>2]+4,e[A+20>>2]=e[A+20>>2]-1024,t=e[A+32>>2]),u[t+8|0])SA(t+16|0,e[A+28>>2]+16|0,376),t=e[A+32>>2],e[t+368>>2]=0,e[t+372>>2]=0,s=T[A+40>>3],e[t+392>>2]=0,e[t+396>>2]=0,T[t+16>>3]=s;else if(r=e[A+28>>2],u[r+8|0]&&(SA(r+16|0,t+16|0,376),t=e[A+28>>2],e[t+368>>2]=0,e[t+372>>2]=0,!(t=e[A+32>>2])))break e;(0|(r=e[t+400>>2]))!=-1&&(e[A+424>>2]=r),e[A+420>>2]=0,T[t+16>>3]=T[t+392>>3]*+$[t+4>>2]+T[t+16>>3];break e}d[A+416|0]=1}else s=T[t+392>>3]+T[A+40>>3],T[A+40>>3]=s,T[t+16>>3]=s}return 0|(u[A+416|0]?0:A+40)},function(A){return e[424+(A|=0)>>2]},function(A){var t=0;return e[(A|=0)>>2]=132304,(t=e[A+28>>2])&&FA(t),(t=e[A+32>>2])&&FA(t),ni(A+4|0),0|A},function(A){var t=0;e[(A|=0)>>2]=132304,(t=e[A+28>>2])&&FA(t),(t=e[A+32>>2])&&FA(t),ni(A+4|0),FA(A)},function(A,t,r){t|=0,r|=0;var s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0;if(!e[1088+(A|=0)>>2])return 0;e:if(t){for(I=A+648|0,m=A- -64|0;;){if(s=e[A+1088>>2],!(s=0|$A[e[e[s>>2]+4>>2]](s)))break e;if(o=_a(T[A+32>>3]+T[s+16>>3]/+e[A+24>>2]),T[A+32>>3]=o,o=rn(6.283185307179586*o),o=_a(T[A+16>>3]+T[s>>3]*(.06*o*T[s+8>>3]+1)/+e[A+8>>2]),T[A+16>>3]=o,f=st(e[56848],e[56849],1284865837,1481765933),l=me,l=(f=f+1|0)?l:l+1|0,e[56848]=f,e[56849]=l,c=.75*T[A+40>>3]+ +(l>>>1|0)/2147483647,T[A+40>>3]=c,b=T[s+24>>3],l=o>=T[s+32>>3],d[A+48|0]=l,c=(G=b)*(b=.2*c),c=fr(m+512|0,fr(m+440|0,o=T[s+352>>3]*(b*T[s+48>>3]+T[s+40>>3]*(o+o+-1+(l?c:.01*c)))*.5,T[s+104>>3],T[s+168>>3]),T[s+112>>3],T[s+176>>3]),c=fr(m+8|0,fr(m+80|0,fr(m+152|0,fr(m+224|0,fr(m+296|0,fr(m+368|0,c==c?(c-o)*T[s+184>>3]+o:o,T[s+96>>3],T[s+160>>3]),T[s+88>>3],T[s+152>>3]),T[s+80>>3],T[s+144>>3]),T[s+72>>3],T[s+136>>3]),T[s+64>>3],T[s+128>>3]),T[s+56>>3],T[s+120>>3]),f=st(e[56848],e[56849],1284865837,1481765933),l=me,l=(f=f+1|0)?l:l+1|0,e[56848]=f,e[56849]=l,o=.75*T[A+56>>3]+ +(l>>>1|0)/2147483647,T[A+56>>3]=o,l=(M<<1)+r|0,b=fr(I+8|0,o=T[s+352>>3]*(T[s+192>>3]*(.3*o))*.5,T[s+200>>3],T[s+248>>3]),z=T[s+296>>3],W=fr(I+80|0,o,T[s+208>>3],T[s+256>>3]),Y=T[s+304>>3],X=fr(I+152|0,o,T[s+216>>3],T[s+264>>3]),te=T[s+312>>3],oe=fr(I+224|0,o,T[s+224>>3],T[s+272>>3]),pe=T[s+320>>3],Ie=fr(I+296|0,o,T[s+232>>3],T[s+280>>3]),Ge=T[s+328>>3],G=c,c=(fr(I+368|0,o,T[s+240>>3],T[s+288>>3])-o)*T[s+336>>3]+(Ge*(Ie-o)+(pe*(oe-o)+(te*(X-o)+(Y*(W-o)+(z*(b-o)+0))))),o=(G+(o==o?(o-c)*T[s+344>>3]+c:c))*T[s+360>>3]*4e3,s=(0|(s=Ae(o)<2147483648?~~o:-2147483648))>=32e3?32e3:s,k[l>>1]=(0|s)<=-32e3?-32e3:s,(0|(M=M+1|0))==(0|t))break}M=t}return 0|(t>>>0>M>>>0?M:t)},function(A,t){t|=0,e[1088+(A|=0)>>2]=t},Xi,bn,yo,function(A,t,r,s){return me=0,0}],Hn.grow=function(A){var t=this.length;return this.length=this.length+A,t},Hn.set=function(A,t){this[A]=t},Hn.get=function(A){return this[A]},Hn);return{v:function(){var A,t=0;H=A=H-16|0,0|Ue(A+12|0,A+8|0)||(t=it(4+(e[A+12>>2]<<2)|0),e[56800]=t,t&&(!(t=it(e[A+8>>2]))||(e[e[56800]+(e[A+12>>2]<<2)>>2]=0,0|Ke(e[56800],0|t)))&&(e[56800]=0)),H=A+16|0,e[56841]=227236,e[56823]=42},w:Yn,x:xo,y:function(A,t){t|=0,e[(A|=0)>>2]=t},z:function(A,t){return t|=0,d[e[(A|=0)+4>>2]+t|0]},A:Vi,B:Wi,C:function(A){return u[(A|=0)+12|0]},D:function(A,t){t|=0,d[(A|=0)+12|0]=t},E:function(A){return u[(A|=0)+13|0]},F:function(A,t){t|=0,d[(A|=0)+13|0]=t},G:function(A){return u[(A|=0)+14|0]},H:function(A,t){t|=0,d[(A|=0)+14|0]=t},I:function(A){return u[(A|=0)+15|0]},J:function(A,t){t|=0,d[(A|=0)+15|0]=t},K:Hi,L:function(A,t){t|=0,e[(A|=0)+16>>2]=t},M:vo,N:function(A,t){t|=0,e[(A|=0)+20>>2]=t},O:Yn,P:xo,Q:Ui,R:Vi,S:Bo,T:Hi,U:vo,V:function(A){return e[(A|=0)+24>>2]},W:Yn,X:function(){var A,t=0,r=0,s=0,o=0,l=0,c=0,f=0,m=0,I=0,b=0,M=0,G=0,z=0,W=0,Y=0,X=0,te=0,oe=0,pe=0,Ie=0,Ge=0,Oe=0,He=0;if(A=gs(20),e[A+16>>2]=0,e[A+8>>2]=175,e[A+12>>2]=50,!(t=e[33208])){H=t=(H=pe=H-16|0)-80|0;e:{if((r=cn(84292))&&(e[t+32>>2]=r,zs(137584,160,85959,t+32|0),(0|Ns(137584))==-31||(e[t+16>>2]=r,zs(137584,160,86031,t+16|0),(0|Ns(137584))==-31)))break e;(r=cn(84619))&&(e[t>>2]=r,zs(137584,160,85959,t),(0|Ns(137584))==-31)||(r=u[84826]|u[84827]<<8|u[84828]<<16|u[84829]<<24,e[34396]=u[84822]|u[84823]<<8|u[84824]<<16|u[84825]<<24,e[34397]=r,k[68804]=u[84846]|u[84847]<<8,r=u[84842]|u[84843]<<8|u[84844]<<16|u[84845]<<24,e[34400]=u[84838]|u[84839]<<8|u[84840]<<16|u[84841]<<24,e[34401]=r,r=u[84834]|u[84835]<<8|u[84836]<<16|u[84837]<<24,e[34398]=u[84830]|u[84831]<<8|u[84832]<<16|u[84833]<<24,e[34399]=r)}if(H=t+80|0,e[pe+12>>2]=0,o=pe+12|0,H=f=H-16|0,e[f+12>>2]=22050,we(85144)||we(85315)||we(85473)||we(85698),M=f+12|0,H=l=H-16|0,e[l+12>>2]=0,!((t=Cr(137832,84262,0,o))||(t=Cr(137836,84420,0,o))||(t=Cr(137840,84813,0,o))||(t=Cr(137820,85016,l+12|0,o))))if(e[34454]=$[l+12>>2]/68,r=e[34460],e[34456]=r,r&&(0|(I=u[0|r]|u[r+1|0]<<8|u[r+2|0]<<16|u[r+3|0]<<24))==83969){if(G=u[r+4|0]|u[r+5|0]<<8|u[r+6|0]<<16|u[r+7|0]<<24,r=e[34458],W=u[0|r],e[34461]=W,W)for(t=r+4|0,I=0;s=O(I,44)+137856|0,o=u[0|t],e[s+36>>2]=o,e[s+40>>2]=u[t+1|0],c=u[t+8|0]|u[t+9|0]<<8|u[t+10|0]<<16|u[t+11|0]<<24,r=u[t+4|0]|u[t+5|0]<<8|u[t+6|0]<<16|u[t+7|0]<<24,d[0|s]=r,d[s+1|0]=r>>>8,d[s+2|0]=r>>>16,d[s+3|0]=r>>>24,d[s+4|0]=c,d[s+5|0]=c>>>8,d[s+6|0]=c>>>16,d[s+7|0]=c>>>24,c=u[t+16|0]|u[t+17|0]<<8|u[t+18|0]<<16|u[t+19|0]<<24,r=u[t+12|0]|u[t+13|0]<<8|u[t+14|0]<<16|u[t+15|0]<<24,d[s+8|0]=r,d[s+9|0]=r>>>8,d[s+10|0]=r>>>16,d[s+11|0]=r>>>24,d[s+12|0]=c,d[s+13|0]=c>>>8,d[s+14|0]=c>>>16,d[s+15|0]=c>>>24,c=u[t+24|0]|u[t+25|0]<<8|u[t+26|0]<<16|u[t+27|0]<<24,r=u[t+20|0]|u[t+21|0]<<8|u[t+22|0]<<16|u[t+23|0]<<24,d[s+16|0]=r,d[s+17|0]=r>>>8,d[s+18|0]=r>>>16,d[s+19|0]=r>>>24,d[s+20|0]=c,d[s+21|0]=c>>>8,d[s+22|0]=c>>>16,d[s+23|0]=c>>>24,c=u[t+32|0]|u[t+33|0]<<8|u[t+34|0]<<16|u[t+35|0]<<24,r=u[t+28|0]|u[t+29|0]<<8|u[t+30|0]<<16|u[t+31|0]<<24,d[s+24|0]=r,d[s+25|0]=r>>>8,d[s+26|0]=r>>>16,d[s+27|0]=r>>>24,d[s+28|0]=c,d[s+29|0]=c>>>8,d[s+30|0]=c>>>16,d[s+31|0]=c>>>24,r=t+36|0,e[s+32>>2]=r,t=r+(o<<4)|0,(0|W)!=(0|(I=I+1|0)););(0|W)<=e[34457]&&(e[34457]=0),t=0,M&&(e[M>>2]=G)}else e:{A:{if(o){if(r=e[o>>2]){FA(e[r+4>>2]),t=e[o>>2];break A}if(t=it(16),e[o>>2]=t,t)break A;t=48}else t=268436223;break e}e[t>>2]=1,e[t+4>>2]=jn(137584),r=e[o>>2],e[r+12>>2]=83969,e[r+8>>2]=I,t=268436223}if(H=l+16|0,r=t,!t){if(M=e[f+12>>2],e[50754]=M,e[50759]=0,e[50760]=134217728/(0|M),e[50762]=0,e[50763]=0,e[50765]=2147483647,e[50781]=100,e[50779]=32,e[50761]=(M<<6)/(0|M),t=e[26385],e[50784]=e[26384],e[50785]=t,t=e[26387],e[50786]=e[26386],e[50787]=t,t=e[26389],e[50788]=e[26388],e[50789]=t,t=e[26391],e[50790]=e[26390],e[50791]=t,t=e[26393],e[50792]=e[26392],e[50793]=t,t=e[26395],e[50794]=e[26394],e[50795]=t,t=e[26397],e[50796]=e[26396],e[50797]=t,e[50798]=e[26398],G=(0|(t=(0|(o=O(M,60)))/12800|0))>=128?128:t,e[50799]=G,e[50800]=(0|G)/2,!((0|M)==22050|(0|o)<12800)){if(M=1&(t=(0|G)<=1?1:G),te=+(0|G),I=0,(0|G)>=2)for(G=2147483646&t,t=0;Y=I+132160|0,m=127*(1-As(6.283185307179586*+(0|I)/te)),z=Ae(m)<2147483648?~~m:-2147483648,d[0|Y]=z,Y=(o=1|I)+132160|0,m=127*(1-As(6.283185307179586*+(0|o)/te)),z=Ae(m)<2147483648?~~m:-2147483648,d[0|Y]=z,I=I+2|0,(0|G)!=(0|(t=t+2|0)););M&&(t=I+132160|0,m=127*(1-As(6.283185307179586*+(0|I)/te)),Y=Ae(m)<2147483648?~~m:-2147483648,d[0|t]=Y)}if(e[50801]=105792,e[56797]=ea(),e[55964]=38,e[55921]=1,e[55918]=22050,e[56606]=0,e[55960]=110928,e[55958]=0,e[55959]=1074266112,e[55956]=100,e[55922]=20,e[55923]=220,e[55916]=1,e[55917]=0,uA(),e[56244]=0,e[56245]=0,e[55928]=0,e[55926]=0,e[55927]=0,e[55924]=0,e[56246]=0,e[56247]=0,e[56260]=0,e[56261]=0,e[56262]=0,e[56263]=0,e[56276]=0,e[56277]=0,e[56278]=0,e[56279]=0,e[55974]=0,e[55975]=0,e[55972]=0,e[55973]=0,te=-3.141592653589793/+(0|(t=e[55918])),T[27967]=te,o=(0|O(t,630))/1e4|0,e[55920]=o,t=(0|O(t,950))/1e4|0,e[55919]=t,m=-2*te,T[27968]=m,te=(Oe=Gr(te*+(0|o)))*-Oe,T[28129]=te,m=Oe*As(m*+(0|t)),m+=m,T[28128]=m,T[28127]=1-m-te,e[55990]=0,e[55991]=0,e[55988]=0,e[55989]=0,e[56006]=0,e[56007]=0,e[56004]=0,e[56005]=0,e[56022]=0,e[56023]=0,e[56020]=0,e[56021]=0,e[56038]=0,e[56039]=0,e[56036]=0,e[56037]=0,e[56054]=0,e[56055]=0,e[56052]=0,e[56053]=0,e[56070]=0,e[56071]=0,e[56068]=0,e[56069]=0,e[56086]=0,e[56087]=0,e[56084]=0,e[56085]=0,e[56102]=0,e[56103]=0,e[56100]=0,e[56101]=0,e[56118]=0,e[56119]=0,e[56116]=0,e[56117]=0,e[56134]=0,e[56135]=0,e[56132]=0,e[56133]=0,e[56150]=0,e[56151]=0,e[56148]=0,e[56149]=0,e[56166]=0,e[56167]=0,e[56164]=0,e[56165]=0,e[56182]=0,e[56183]=0,e[56180]=0,e[56181]=0,e[56198]=0,e[56199]=0,e[56196]=0,e[56197]=0,e[56214]=0,e[56215]=0,e[56212]=0,e[56213]=0,e[56230]=0,e[56231]=0,e[56228]=0,e[56229]=0,e[56639]=59,e[56640]=59,e[56629]=0,e[56630]=59,e[56619]=89,e[56620]=160,e[56609]=280,e[56610]=688,e[56611]=1064,e[56621]=70,e[56631]=59,e[56612]=2806,e[56613]=3260,e[56622]=160,e[56623]=200,e[56632]=59,e[56633]=59,e[56641]=89,e[56642]=149,e[56643]=200,e[56644]=200,e[56634]=59,e[56635]=59,e[56624]=200,e[56625]=500,e[56614]=3700,e[56615]=6500,e[56645]=500,e[56646]=0,e[56616]=7e3,e[56626]=500,e[56636]=0,e[56647]=0,e[56637]=0,e[56627]=500,e[56617]=8e3,e[56669]=89,e[56648]=0,e[56638]=0,e[56628]=89,e[56618]=280,e[56657]=62,e[56655]=0,e[56656]=0,e[56653]=50,e[56654]=0,e[56651]=0,e[56652]=0,e[56649]=0,e[56650]=40,e[56607]=1e3,e[56608]=59,H=l=H-416|0,e[l+16>>2]=137584,e[l+20>>2]=47,e[l+24>>2]=85952,cA(t=l+240|0,85699,l+16|0),c=es(t,86034)){if(Bt(l+240|0,170,c))for(M=5|(t=l+240|0),G=10|t;u[l+240|0]!=47&&(e[l+240>>2]!=1701736308?Zr(l+240|0,86614,9)||(e[l+4>>2]=l+32,e[l>>2]=l+239,(0|UA(G,86829,l))==2&&(o=e[34064],e[(W=136272+(o<<4)|0)>>2]=d[l+239|0],t=jn(l+32|0),e[34064]=o+1,e[W+12>>2]=t,e[W+4>>2]=0)):(H=t=H-48|0,e[32960]=-1,e[32961]=-1,e[32970]=-1,e[32971]=-1,e[32968]=-1,e[32969]=-1,e[32966]=-1,e[32967]=-1,e[32964]=-1,e[32965]=-1,e[32962]=-1,e[32963]=-1,e[t+36>>2]=131876,e[t+32>>2]=131872,e[t+28>>2]=131868,e[t+24>>2]=131864,e[t+20>>2]=131860,e[t+16>>2]=131856,e[t+12>>2]=131852,e[t+8>>2]=131848,e[t+4>>2]=131844,e[t>>2]=131840,UA(M,84222,t),H=t+48|0)),Bt(l+240|0,170,c););Dr(c)}H=l+416|0,e[50297]=0,e[50298]=0,e[50301]=0,e[50302]=0,e[50299]=0,e[50300]=0,an(0,85698),e[36425]=0,e[36424]=0,e[36426]=0,e[36427]=-1,wo(),qs(0),s=e[25690],e[34062]=s,b=e[25689],l=e[25688],e[34060]=l,e[34061]=b,X=e[25687],c=e[25686],e[34058]=c,e[34059]=X,oe=e[25685],W=e[25684],e[34056]=W,e[34057]=oe,Ie=e[25683],M=e[25682],e[34054]=M,e[34055]=Ie,Ge=e[25681],G=e[25680],e[34052]=G,e[34053]=Ge,z=e[25679],o=e[25678],e[34050]=o,e[34051]=z,Y=e[25677],t=e[25676],e[34048]=t,e[34049]=Y,e[33729]=t,e[33730]=Y,e[33731]=o,e[33732]=z,e[33733]=G,e[33734]=Ge,e[33735]=M,e[33736]=Ie,e[33737]=W,e[33738]=oe,e[33739]=c,e[33740]=X,e[33741]=l,e[33742]=b,e[33743]=s,Qr(1,175),Qr(2,100),Qr(6,e[47200]),Qr(5,e[47201]),Qr(7,0),e[47198]=0,e[47197]=0,m=+ee()/1e3,o=st(t=Ae(m)<9223372036854776e3?~~m>>>0:0,0,1103515245,0),t=me,t=(o=o+12345|0)>>>0<12345?t+1|0:t,e[33209]=ji(o,t)}if(H=f+16|0,r){Y=e[30450],Ie=e[pe+12>>2],f=(b=H-560|0)+48|0,H=s=(H=b)-16|0;e:{A:switch(0|ts(r-268435967|0,24)){case 0:Rt(f,84133,512);break e;case 1:Rt(f,84580,512);break e;case 2:Rt(f,84747,512);break e;case 3:Rt(f,85084,512);break e;case 4:Rt(f,85251,512);break e;case 5:Rt(f,85380,512);break e;case 6:Rt(f,85607,512);break e;case 7:Rt(f,85722,512);break e;case 8:Rt(f,85913,512);break e;case 9:Rt(f,86046,512);break e;case 10:Rt(f,86153,512);break e;case 11:Rt(f,86678,512);break e;case 12:Rt(f,86773,512);break e;case 14:Rt(f,86958,512);break e;case 15:Rt(f,87071,512);break e;default:break A}if(1879048192&r)e[s>>2]=r,zs(f,512,87182,s);else{if(I=0,l=y[123728+((r>>>0<=153?r:0)<<1)>>1]+121804|0,r=e[e[56841]+20>>2]){Ge=e[r+4>>2],X=e[r>>2],oe=e[X>>2]+1794895138|0,z=qa(e[X+8>>2],oe),o=qa(e[X+12>>2],oe),t=qa(e[X+16>>2],oe);A:if(!(Ge>>>2>>>0<=z>>>0||3&(t|o)|(r=Ge-(z<<2)|0)>>>0<=o>>>0|t>>>0>=r>>>0))for(M=t>>>2|0,G=o>>>2|0;;){if(W=qa(e[(r=((t=(o=(c=z>>>1|0)+He|0)<<1)+G<<2)+X|0)>>2],oe),(r=qa(e[r+4>>2],oe))>>>0>=Ge>>>0|W>>>0>=Ge-r>>>0|u[(r+W|0)+X|0])break A;if(!(r=tr(l,r+X|0))){if(t=qa(e[(r=(t+M<<2)+X|0)>>2],oe),(r=qa(e[r+4>>2],oe))>>>0>=Ge>>>0|t>>>0>=Ge-r>>>0)break A;I=u[(t+r|0)+X|0]?0:r+X|0;break A}if((0|z)==1)break A;z=(r=(0|r)<0)?c:z-c|0,He=r?He:o}}if((r=BA(t=I||l))>>>0>=512){SA(f,t,511),d[f+511|0]=0;break e}SA(f,t,r+1|0)}}H=s+16|0;e:if(Ie){A:switch(e[Ie>>2]){case 0:e[b+16>>2]=e[Ie+4>>2],e[b+20>>2]=b+48,rr(Y,87384,b+16|0);break e;case 1:break A;default:break e}t=e[Ie+12>>2],r=e[Ie+8>>2],e[b+36>>2]=e[Ie+4>>2],me=r,e[b+40>>2]=t,e[b+44>>2]=me,e[b+32>>2]=b+48,rr(Y,87521,b+32|0)}else e[b>>2]=b+48,rr(Y,87700,b);H=b+560|0,(0|pe)!=-12&&(r=e[pe+12>>2])&&(FA(e[r+4>>2]),FA(e[pe+12>>2]),e[pe+12>>2]=0)}r=e[24806],e[34389]=0,e[32538]=r,r=(1e3+((r=O(e[50754],100))-((0|r)%1e3|0)|0)|0)/500|0,e[34390]=r,r=Ut(e[34391],r),e[34392]=r,r&&(e[34391]=r,e[34393]=40,(r=Ut(e[34388],1440))&&(e[34388]=r)),e[47198]=0,H=pe+16|0,t=e[50754],e[33208]=t}return e[A+4>>2]=t,e[A>>2]=nt(),0|A},Y:function(A,t,r){A|=0,t|=0,r|=0,e[34440]=r,ae(3,e[A+12>>2]),ae(1,e[A+8>>2]),(A=e[A+16>>2])?Ha(A):Ea(1024),QA(t),e[34440]=0},Z:function(A,t,r){return A|=0,t|=0,r|=0,e[34440]=0,(A=es(r,1032))?(e[47195]=A,e[47197]=130,A||(e[47195]=e[30450]),QA(t),e[47195]=0,e[47197]=0,e[47195]=e[30450],Dr(A),0):-1},_:function(A){return 36},$:function(A,t,r){var s;return A|=0,t|=0,H=s=H-32|0,(r|=0)?(e[s+24>>2]=0,e[s+28>>2]=0,e[s+16>>2]=0,e[s+20>>2]=0,e[s+12>>2]=r,e[s+8>>2]=t,d[s+21|0]=0,t=Ha(s+8|0)):t=Ea(t),e[A+16>>2]=201188,H=s+32|0,0|t},aa:function(A,t,r,s){var o;return A|=0,t|=0,H=o=H-32|0,(r|=0)|(s|=0)?(e[o+24>>2]=0,e[o+28>>2]=0,e[o+16>>2]=0,e[o+20>>2]=0,e[o+12>>2]=r,e[o+8>>2]=t,d[o+22|0]=0,d[o+20|0]=s,t=Ha(o+8|0)):t=Ea(t),e[A+16>>2]=201188,H=o+32|0,0|t},ba:function(A,t,r,s,o){var l;return A|=0,t|=0,H=l=H-32|0,(s|=0)|(o|=0)|(r|=0)?(e[l+24>>2]=0,e[l+28>>2]=0,e[l+16>>2]=0,e[l+20>>2]=0,e[l+12>>2]=r,e[l+8>>2]=t,d[l+21|0]=o,d[l+20|0]=s,t=Ha(l+8|0)):t=Ea(t),e[A+16>>2]=201188,H=l+32|0,0|t},ca:function(A,t,r,s,o,l){var c;return A|=0,t|=0,H=c=H-32|0,(s|=0)|(o|=0)|(l|=0)|(r|=0)?(e[c+24>>2]=0,e[c+28>>2]=0,e[c+16>>2]=0,e[c+20>>2]=0,e[c+12>>2]=r,e[c+8>>2]=t,d[c+22|0]=l,d[c+21|0]=o,d[c+20|0]=s,t=Ha(c+8|0)):t=Ea(t),e[A+16>>2]=201188,H=c+32|0,0|t},da:function(A,t){return t|=0,e[e[(A|=0)>>2]+(t<<2)>>2]},ea:function(A,t,r){t|=0,r|=0,e[e[(A|=0)>>2]+(t<<2)>>2]=r},fa:Ui,ga:Vi,ha:Wi,ia:Bo,ja:function(A,t){t|=0,e[(A|=0)+12>>2]=t},ka:Yn,la:function(){return 0},ma:function(){return 1},na:function(){return 2},oa:function(){return 3},pa:function(){return 4},qa:function(){return 5},ra:function(){return 6},sa:function(){return 7},ta:function(){return 8},ua:$A,va:function(){return 227192},wa:FA,xa:it,ya:function(A){return(A|=0)?0|!!(0|yA(A,125228)):0}}}(i)}(n)},instantiate:function(a,n){return{then:function(i){var g=new po.Module(a);i({instance:new po.Instance(g,n)})}}},RuntimeError:Error};typeof po!="object"&&vn("no native wasm support detected");var ub=!1;function H2(a,n){a||vn(n)}var Ds,io,tl,Ht,Ur,db,fb,mm=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function no(a,n,i){for(var g=n+i,p=n;a[p]&&!(p>=g);)++p;if(p-n>16&&a.buffer&&mm)return mm.decode(a.subarray(n,p));for(var h="";n>10,56320|1023&v)}}else h+=String.fromCharCode((31&C)<<6|w)}else h+=String.fromCharCode(C)}return h}function oo(a,n){return a?no(io,a,n):""}function Xc(a,n,i,g){if(!(g>0))return 0;for(var p=i,h=i+g-1,C=0;C=55296&&w<=57343&&(w=65536+((1023&w)<<10)|1023&a.charCodeAt(++C)),w<=127){if(i>=h)break;n[i++]=w}else if(w<=2047){if(i+1>=h)break;n[i++]=192|w>>6,n[i++]=128|63&w}else if(w<=65535){if(i+2>=h)break;n[i++]=224|w>>12,n[i++]=128|w>>6&63,n[i++]=128|63&w}else{if(i+3>=h)break;n[i++]=240|w>>18,n[i++]=128|w>>12&63,n[i++]=128|w>>6&63,n[i++]=128|63&w}}return n[i]=0,i-p}function gb(a){for(var n=0,i=0;i=55296&&g<=57343?(n+=4,++i):n+=3}return n}var En,V2=ie.INITIAL_MEMORY||16777216;V0=ie.wasmMemory?ie.wasmMemory:new po.Memory({initial:V2/65536,maximum:V2/65536}),En=V0.buffer,ie.HEAP8=Ds=new Int8Array(En),ie.HEAP16=tl=new Int16Array(En),ie.HEAP32=Ht=new Int32Array(En),ie.HEAPU8=io=new Uint8Array(En),ie.HEAPU16=new Uint16Array(En),ie.HEAPU32=Ur=new Uint32Array(En),ie.HEAPF32=db=new Float32Array(En),ie.HEAPF64=fb=new Float64Array(En),V2=V0.buffer.byteLength;var hm=[],pb=[],Cm=[],mb=!1;function hb(a){pb.unshift(a)}var gt,zr,Qi=0,Xo=null;function Cb(a){Qi++,ie.monitorRunDependencies&&ie.monitorRunDependencies(Qi)}function bb(a){if(Qi--,ie.monitorRunDependencies&&ie.monitorRunDependencies(Qi),Qi==0&&Xo){var n=Xo;Xo=null,n()}}function vn(a){throw ie.onAbort&&ie.onAbort(a),go(a="Aborted("+a+")"),ub=!0,a+=". Build with -sASSERTIONS for more info.",new po.RuntimeError(a)}function VI(a){this.name="ExitStatus",this.message="Program terminated with exit("+a+")",this.status=a}function U2(a){for(;a.length>0;)a.shift()(ie)}function UI(a,n="i8"){switch(n.endsWith("*")&&(n="*"),n){case"i1":case"i8":return Ds[a|0];case"i16":return tl[a>>1];case"i32":case"i64":return Ht[a>>2];case"float":return db[a>>2];case"double":return fb[a>>3];case"*":return Ur[a>>2];default:vn("invalid type for getValue: "+n)}return null}function KI(a){this.excPtr=a,this.ptr=a-24,this.set_type=function(n){Ur[this.ptr+4>>2]=n},this.get_type=function(){return Ur[this.ptr+4>>2]},this.set_destructor=function(n){Ur[this.ptr+8>>2]=n},this.get_destructor=function(){return Ur[this.ptr+8>>2]},this.set_refcount=function(n){Ht[this.ptr>>2]=n},this.set_caught=function(n){n=n?1:0,Ds[this.ptr+12|0]=n},this.get_caught=function(){return Ds[this.ptr+12|0]!=0},this.set_rethrown=function(n){n=n?1:0,Ds[this.ptr+13|0]=n},this.get_rethrown=function(){return Ds[this.ptr+13|0]!=0},this.init=function(n,i){this.set_adjusted_ptr(0),this.set_type(n),this.set_destructor(i),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var n=Ht[this.ptr>>2];Ht[this.ptr>>2]=n+1},this.release_ref=function(){var n=Ht[this.ptr>>2];return Ht[this.ptr>>2]=n-1,n===1},this.set_adjusted_ptr=function(n){Ur[this.ptr+16>>2]=n},this.get_adjusted_ptr=function(){return Ur[this.ptr+16>>2]},this.get_exception_ptr=function(){if(w8(this.get_type()))return Ur[this.excPtr>>2];var n=this.get_adjusted_ptr();return n!==0?n:this.excPtr}}var lr={isAbs:a=>a.charAt(0)==="/",splitPath:a=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1),normalizeArray:(a,n)=>{for(var i=0,g=a.length-1;g>=0;g--){var p=a[g];p==="."?a.splice(g,1):p===".."?(a.splice(g,1),i++):i&&(a.splice(g,1),i--)}if(n)for(;i;i--)a.unshift("..");return a},normalize:a=>{var n=lr.isAbs(a),i=a.substr(-1)==="/";return(a=lr.normalizeArray(a.split("/").filter(g=>!!g),!n).join("/"))||n||(a="."),a&&i&&(a+="/"),(n?"/":"")+a},dirname:a=>{var n=lr.splitPath(a),i=n[0],g=n[1];return i||g?(g&&(g=g.substr(0,g.length-1)),i+g):"."},basename:a=>{if(a==="/")return"/";var n=(a=(a=lr.normalize(a)).replace(/\/$/,"")).lastIndexOf("/");return n===-1?a:a.substr(n+1)},join:function(){var a=Array.prototype.slice.call(arguments);return lr.normalize(a.join("/"))},join2:(a,n)=>lr.normalize(a+"/"+n)},ei={resolve:function(){for(var a="",n=!1,i=arguments.length-1;i>=-1&&!n;i--){var g=i>=0?arguments[i]:q.cwd();if(typeof g!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!g)return"";a=g+"/"+a,n=lr.isAbs(g)}return(n?"/":"")+(a=lr.normalizeArray(a.split("/").filter(p=>!!p),!n).join("/"))||"."},relative:(a,n)=>{function i(v){for(var D=0;D=0&&v[B]==="";B--);return D>B?[]:v.slice(D,B-D+1)}a=ei.resolve(a).substr(1),n=ei.resolve(n).substr(1);for(var g=i(a.split("/")),p=i(n.split("/")),h=Math.min(g.length,p.length),C=h,w=0;w0&&(Al(no(a.output,0)),a.output=[])}},default_tty1_ops:{put_char:function(a,n){n===null||n===10?(go(no(a.output,0)),a.output=[]):n!=0&&a.output.push(n)},fsync:function(a){a.output&&a.output.length>0&&(go(no(a.output,0)),a.output=[])}}};function wb(a){vn()}var Et={ops_table:null,mount:function(a){return Et.createNode(null,"/",16895,0)},createNode:function(a,n,i,g){if(q.isBlkdev(i)||q.isFIFO(i))throw new q.ErrnoError(63);Et.ops_table||(Et.ops_table={dir:{node:{getattr:Et.node_ops.getattr,setattr:Et.node_ops.setattr,lookup:Et.node_ops.lookup,mknod:Et.node_ops.mknod,rename:Et.node_ops.rename,unlink:Et.node_ops.unlink,rmdir:Et.node_ops.rmdir,readdir:Et.node_ops.readdir,symlink:Et.node_ops.symlink},stream:{llseek:Et.stream_ops.llseek}},file:{node:{getattr:Et.node_ops.getattr,setattr:Et.node_ops.setattr},stream:{llseek:Et.stream_ops.llseek,read:Et.stream_ops.read,write:Et.stream_ops.write,allocate:Et.stream_ops.allocate,mmap:Et.stream_ops.mmap,msync:Et.stream_ops.msync}},link:{node:{getattr:Et.node_ops.getattr,setattr:Et.node_ops.setattr,readlink:Et.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Et.node_ops.getattr,setattr:Et.node_ops.setattr},stream:q.chrdev_stream_ops}});var p=q.createNode(a,n,i,g);return q.isDir(p.mode)?(p.node_ops=Et.ops_table.dir.node,p.stream_ops=Et.ops_table.dir.stream,p.contents={}):q.isFile(p.mode)?(p.node_ops=Et.ops_table.file.node,p.stream_ops=Et.ops_table.file.stream,p.usedBytes=0,p.contents=null):q.isLink(p.mode)?(p.node_ops=Et.ops_table.link.node,p.stream_ops=Et.ops_table.link.stream):q.isChrdev(p.mode)&&(p.node_ops=Et.ops_table.chrdev.node,p.stream_ops=Et.ops_table.chrdev.stream),p.timestamp=Date.now(),a&&(a.contents[n]=p,a.timestamp=p.timestamp),p},getFileDataAsTypedArray:function(a){return a.contents?a.contents.subarray?a.contents.subarray(0,a.usedBytes):new Uint8Array(a.contents):new Uint8Array(0)},expandFileStorage:function(a,n){var i=a.contents?a.contents.length:0;if(!(i>=n)){n=Math.max(n,i*(i<1048576?2:1.125)>>>0),i!=0&&(n=Math.max(n,256));var g=a.contents;a.contents=new Uint8Array(n),a.usedBytes>0&&a.contents.set(g.subarray(0,a.usedBytes),0)}},resizeFileStorage:function(a,n){if(a.usedBytes!=n)if(n==0)a.contents=null,a.usedBytes=0;else{var i=a.contents;a.contents=new Uint8Array(n),i&&a.contents.set(i.subarray(0,Math.min(n,a.usedBytes))),a.usedBytes=n}},node_ops:{getattr:function(a){var n={};return n.dev=q.isChrdev(a.mode)?a.id:1,n.ino=a.id,n.mode=a.mode,n.nlink=1,n.uid=0,n.gid=0,n.rdev=a.rdev,q.isDir(a.mode)?n.size=4096:q.isFile(a.mode)?n.size=a.usedBytes:q.isLink(a.mode)?n.size=a.link.length:n.size=0,n.atime=new Date(a.timestamp),n.mtime=new Date(a.timestamp),n.ctime=new Date(a.timestamp),n.blksize=4096,n.blocks=Math.ceil(n.size/n.blksize),n},setattr:function(a,n){n.mode!==void 0&&(a.mode=n.mode),n.timestamp!==void 0&&(a.timestamp=n.timestamp),n.size!==void 0&&Et.resizeFileStorage(a,n.size)},lookup:function(a,n){throw q.genericErrors[44]},mknod:function(a,n,i,g){return Et.createNode(a,n,i,g)},rename:function(a,n,i){if(q.isDir(a.mode)){var g;try{g=q.lookupNode(n,i)}catch{}if(g)for(var p in g.contents)throw new q.ErrnoError(55)}delete a.parent.contents[a.name],a.parent.timestamp=Date.now(),a.name=i,n.contents[i]=a,n.timestamp=a.parent.timestamp,a.parent=n},unlink:function(a,n){delete a.contents[n],a.timestamp=Date.now()},rmdir:function(a,n){var i=q.lookupNode(a,n);for(var g in i.contents)throw new q.ErrnoError(55);delete a.contents[n],a.timestamp=Date.now()},readdir:function(a){var n=[".",".."];for(var i in a.contents)a.contents.hasOwnProperty(i)&&n.push(i);return n},symlink:function(a,n,i){var g=Et.createNode(a,n,41471,0);return g.link=i,g},readlink:function(a){if(!q.isLink(a.mode))throw new q.ErrnoError(28);return a.link}},stream_ops:{read:function(a,n,i,g,p){var h=a.node.contents;if(p>=a.node.usedBytes)return 0;var C=Math.min(a.node.usedBytes-p,g);if(C>8&&h.subarray)n.set(h.subarray(p,p+C),i);else for(var w=0;w0||i+n{if(!(a=ei.resolve(a)))return{path:"",node:null};if((n=Object.assign({follow_mount:!0,recurse_count:0},n)).recurse_count>8)throw new q.ErrnoError(32);for(var i=a.split("/").filter(v=>!!v),g=q.root,p="/",h=0;h40)throw new q.ErrnoError(32)}}return{path:p,node:g}},getPath:a=>{for(var n;;){if(q.isRoot(a)){var i=a.mount.mountpoint;return n?i[i.length-1]!=="/"?i+"/"+n:i+n:i}n=n?a.name+"/"+n:a.name,a=a.parent}},hashName:(a,n)=>{for(var i=0,g=0;g>>0)%q.nameTable.length},hashAddNode:a=>{var n=q.hashName(a.parent.id,a.name);a.name_next=q.nameTable[n],q.nameTable[n]=a},hashRemoveNode:a=>{var n=q.hashName(a.parent.id,a.name);if(q.nameTable[n]===a)q.nameTable[n]=a.name_next;else for(var i=q.nameTable[n];i;){if(i.name_next===a){i.name_next=a.name_next;break}i=i.name_next}},lookupNode:(a,n)=>{var i=q.mayLookup(a);if(i)throw new q.ErrnoError(i,a);for(var g=q.hashName(a.id,n),p=q.nameTable[g];p;p=p.name_next){var h=p.name;if(p.parent.id===a.id&&h===n)return p}return q.lookup(a,n)},createNode:(a,n,i,g)=>{var p=new q.FSNode(a,n,i,g);return q.hashAddNode(p),p},destroyNode:a=>{q.hashRemoveNode(a)},isRoot:a=>a===a.parent,isMountpoint:a=>!!a.mounted,isFile:a=>(61440&a)==32768,isDir:a=>(61440&a)==16384,isLink:a=>(61440&a)==40960,isChrdev:a=>(61440&a)==8192,isBlkdev:a=>(61440&a)==24576,isFIFO:a=>(61440&a)==4096,isSocket:a=>!(49152&~a),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:a=>{var n=q.flagModes[a];if(n===void 0)throw new Error("Unknown file open mode: "+a);return n},flagsToPermissionString:a=>{var n=["r","w","rw"][3&a];return 512&a&&(n+="w"),n},nodePermissions:(a,n)=>q.ignorePermissions||(!n.includes("r")||292&a.mode)&&(!n.includes("w")||146&a.mode)&&(!n.includes("x")||73&a.mode)?0:2,mayLookup:a=>{var n=q.nodePermissions(a,"x");return n||(a.node_ops.lookup?0:2)},mayCreate:(a,n)=>{try{return q.lookupNode(a,n),20}catch{}return q.nodePermissions(a,"wx")},mayDelete:(a,n,i)=>{var g;try{g=q.lookupNode(a,n)}catch(h){return h.errno}var p=q.nodePermissions(a,"wx");if(p)return p;if(i){if(!q.isDir(g.mode))return 54;if(q.isRoot(g)||q.getPath(g)===q.cwd())return 10}else if(q.isDir(g.mode))return 31;return 0},mayOpen:(a,n)=>a?q.isLink(a.mode)?32:q.isDir(a.mode)&&(q.flagsToPermissionString(n)!=="r"||512&n)?31:q.nodePermissions(a,q.flagsToPermissionString(n)):44,MAX_OPEN_FDS:4096,nextfd:(a=0,n=q.MAX_OPEN_FDS)=>{for(var i=a;i<=n;i++)if(!q.streams[i])return i;throw new q.ErrnoError(33)},getStream:a=>q.streams[a],createStream:(a,n,i)=>{q.FSStream||(q.FSStream=function(){this.shared={}},q.FSStream.prototype={},Object.defineProperties(q.FSStream.prototype,{object:{get:function(){return this.node},set:function(p){this.node=p}},isRead:{get:function(){return(2097155&this.flags)!=1}},isWrite:{get:function(){return!!(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(p){this.shared.flags=p}},position:{get:function(){return this.shared.position},set:function(p){this.shared.position=p}}})),a=Object.assign(new q.FSStream,a);var g=q.nextfd(n,i);return a.fd=g,q.streams[g]=a,a},closeStream:a=>{q.streams[a]=null},chrdev_stream_ops:{open:a=>{var n=q.getDevice(a.node.rdev);a.stream_ops=n.stream_ops,a.stream_ops.open&&a.stream_ops.open(a)},llseek:()=>{throw new q.ErrnoError(70)}},major:a=>a>>8,minor:a=>255&a,makedev:(a,n)=>a<<8|n,registerDevice:(a,n)=>{q.devices[a]={stream_ops:n}},getDevice:a=>q.devices[a],getMounts:a=>{for(var n=[],i=[a];i.length;){var g=i.pop();n.push(g),i.push.apply(i,g.mounts)}return n},syncfs:(a,n)=>{typeof a=="function"&&(n=a,a=!1),q.syncFSRequests++,q.syncFSRequests>1&&go("warning: "+q.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var i=q.getMounts(q.root.mount),g=0;function p(C){return q.syncFSRequests--,n(C)}function h(C){if(C)return h.errored?void 0:(h.errored=!0,p(C));++g>=i.length&&p(null)}i.forEach(C=>{if(!C.type.syncfs)return h(null);C.type.syncfs(C,a,h)})},mount:(a,n,i)=>{var g,p=i==="/",h=!i;if(p&&q.root)throw new q.ErrnoError(10);if(!p&&!h){var C=q.lookupPath(i,{follow_mount:!1});if(i=C.path,g=C.node,q.isMountpoint(g))throw new q.ErrnoError(10);if(!q.isDir(g.mode))throw new q.ErrnoError(54)}var w={type:a,opts:n,mountpoint:i,mounts:[]},E=a.mount(w);return E.mount=w,w.root=E,p?q.root=E:g&&(g.mounted=w,g.mount&&g.mount.mounts.push(w)),E},unmount:a=>{var n=q.lookupPath(a,{follow_mount:!1});if(!q.isMountpoint(n.node))throw new q.ErrnoError(28);var i=n.node,g=i.mounted,p=q.getMounts(g);Object.keys(q.nameTable).forEach(C=>{for(var w=q.nameTable[C];w;){var E=w.name_next;p.includes(w.mount)&&q.destroyNode(w),w=E}}),i.mounted=null;var h=i.mount.mounts.indexOf(g);i.mount.mounts.splice(h,1)},lookup:(a,n)=>a.node_ops.lookup(a,n),mknod:(a,n,i)=>{var g=q.lookupPath(a,{parent:!0}).node,p=lr.basename(a);if(!p||p==="."||p==="..")throw new q.ErrnoError(28);var h=q.mayCreate(g,p);if(h)throw new q.ErrnoError(h);if(!g.node_ops.mknod)throw new q.ErrnoError(63);return g.node_ops.mknod(g,p,n,i)},create:(a,n)=>(n=n!==void 0?n:438,n&=4095,n|=32768,q.mknod(a,n,0)),mkdir:(a,n)=>(n=n!==void 0?n:511,n&=1023,n|=16384,q.mknod(a,n,0)),mkdirTree:(a,n)=>{for(var i=a.split("/"),g="",p=0;p(i===void 0&&(i=n,n=438),n|=8192,q.mknod(a,n,i)),symlink:(a,n)=>{if(!ei.resolve(a))throw new q.ErrnoError(44);var i=q.lookupPath(n,{parent:!0}).node;if(!i)throw new q.ErrnoError(44);var g=lr.basename(n),p=q.mayCreate(i,g);if(p)throw new q.ErrnoError(p);if(!i.node_ops.symlink)throw new q.ErrnoError(63);return i.node_ops.symlink(i,g,a)},rename:(a,n)=>{var i,g,p=lr.dirname(a),h=lr.dirname(n),C=lr.basename(a),w=lr.basename(n);if(i=q.lookupPath(a,{parent:!0}).node,g=q.lookupPath(n,{parent:!0}).node,!i||!g)throw new q.ErrnoError(44);if(i.mount!==g.mount)throw new q.ErrnoError(75);var E,v=q.lookupNode(i,C),D=ei.relative(a,h);if(D.charAt(0)!==".")throw new q.ErrnoError(28);if((D=ei.relative(n,p)).charAt(0)!==".")throw new q.ErrnoError(55);try{E=q.lookupNode(g,w)}catch{}if(v!==E){var B=q.isDir(v.mode),x=q.mayDelete(i,C,B);if(x)throw new q.ErrnoError(x);if(x=E?q.mayDelete(g,w,B):q.mayCreate(g,w))throw new q.ErrnoError(x);if(!i.node_ops.rename)throw new q.ErrnoError(63);if(q.isMountpoint(v)||E&&q.isMountpoint(E))throw new q.ErrnoError(10);if(g!==i&&(x=q.nodePermissions(i,"w")))throw new q.ErrnoError(x);q.hashRemoveNode(v);try{i.node_ops.rename(v,g,w)}catch(S){throw S}finally{q.hashAddNode(v)}}},rmdir:a=>{var n=q.lookupPath(a,{parent:!0}).node,i=lr.basename(a),g=q.lookupNode(n,i),p=q.mayDelete(n,i,!0);if(p)throw new q.ErrnoError(p);if(!n.node_ops.rmdir)throw new q.ErrnoError(63);if(q.isMountpoint(g))throw new q.ErrnoError(10);n.node_ops.rmdir(n,i),q.destroyNode(g)},readdir:a=>{var n=q.lookupPath(a,{follow:!0}).node;if(!n.node_ops.readdir)throw new q.ErrnoError(54);return n.node_ops.readdir(n)},unlink:a=>{var n=q.lookupPath(a,{parent:!0}).node;if(!n)throw new q.ErrnoError(44);var i=lr.basename(a),g=q.lookupNode(n,i),p=q.mayDelete(n,i,!1);if(p)throw new q.ErrnoError(p);if(!n.node_ops.unlink)throw new q.ErrnoError(63);if(q.isMountpoint(g))throw new q.ErrnoError(10);n.node_ops.unlink(n,i),q.destroyNode(g)},readlink:a=>{var n=q.lookupPath(a).node;if(!n)throw new q.ErrnoError(44);if(!n.node_ops.readlink)throw new q.ErrnoError(28);return ei.resolve(q.getPath(n.parent),n.node_ops.readlink(n))},stat:(a,n)=>{var i=q.lookupPath(a,{follow:!n}).node;if(!i)throw new q.ErrnoError(44);if(!i.node_ops.getattr)throw new q.ErrnoError(63);return i.node_ops.getattr(i)},lstat:a=>q.stat(a,!0),chmod:(a,n,i)=>{var g;if(typeof a=="string"?g=q.lookupPath(a,{follow:!i}).node:g=a,!g.node_ops.setattr)throw new q.ErrnoError(63);g.node_ops.setattr(g,{mode:4095&n|-4096&g.mode,timestamp:Date.now()})},lchmod:(a,n)=>{q.chmod(a,n,!0)},fchmod:(a,n)=>{var i=q.getStream(a);if(!i)throw new q.ErrnoError(8);q.chmod(i.node,n)},chown:(a,n,i,g)=>{var p;if(typeof a=="string"?p=q.lookupPath(a,{follow:!g}).node:p=a,!p.node_ops.setattr)throw new q.ErrnoError(63);p.node_ops.setattr(p,{timestamp:Date.now()})},lchown:(a,n,i)=>{q.chown(a,n,i,!0)},fchown:(a,n,i)=>{var g=q.getStream(a);if(!g)throw new q.ErrnoError(8);q.chown(g.node,n,i)},truncate:(a,n)=>{if(n<0)throw new q.ErrnoError(28);var i;if(typeof a=="string"?i=q.lookupPath(a,{follow:!0}).node:i=a,!i.node_ops.setattr)throw new q.ErrnoError(63);if(q.isDir(i.mode))throw new q.ErrnoError(31);if(!q.isFile(i.mode))throw new q.ErrnoError(28);var g=q.nodePermissions(i,"w");if(g)throw new q.ErrnoError(g);i.node_ops.setattr(i,{size:n,timestamp:Date.now()})},ftruncate:(a,n)=>{var i=q.getStream(a);if(!i)throw new q.ErrnoError(8);if(!(2097155&i.flags))throw new q.ErrnoError(28);q.truncate(i.node,n)},utime:(a,n,i)=>{var g=q.lookupPath(a,{follow:!0}).node;g.node_ops.setattr(g,{timestamp:Math.max(n,i)})},open:(a,n,i)=>{if(a==="")throw new q.ErrnoError(44);var g;if(i=i===void 0?438:i,i=64&(n=typeof n=="string"?q.modeStringToFlags(n):n)?4095&i|32768:0,typeof a=="object")g=a;else{a=lr.normalize(a);try{g=q.lookupPath(a,{follow:!(131072&n)}).node}catch{}}var p=!1;if(64&n)if(g){if(128&n)throw new q.ErrnoError(20)}else g=q.mknod(a,i,0),p=!0;if(!g)throw new q.ErrnoError(44);if(q.isChrdev(g.mode)&&(n&=-513),65536&n&&!q.isDir(g.mode))throw new q.ErrnoError(54);if(!p){var h=q.mayOpen(g,n);if(h)throw new q.ErrnoError(h)}512&n&&!p&&q.truncate(g,0),n&=-131713;var C=q.createStream({node:g,path:q.getPath(g),flags:n,seekable:!0,position:0,stream_ops:g.stream_ops,ungotten:[],error:!1});return C.stream_ops.open&&C.stream_ops.open(C),!ie.logReadFiles||1&n||(q.readFiles||(q.readFiles={}),a in q.readFiles||(q.readFiles[a]=1)),C},close:a=>{if(q.isClosed(a))throw new q.ErrnoError(8);a.getdents&&(a.getdents=null);try{a.stream_ops.close&&a.stream_ops.close(a)}catch(n){throw n}finally{q.closeStream(a.fd)}a.fd=null},isClosed:a=>a.fd===null,llseek:(a,n,i)=>{if(q.isClosed(a))throw new q.ErrnoError(8);if(!a.seekable||!a.stream_ops.llseek)throw new q.ErrnoError(70);if(i!=0&&i!=1&&i!=2)throw new q.ErrnoError(28);return a.position=a.stream_ops.llseek(a,n,i),a.ungotten=[],a.position},read:(a,n,i,g,p)=>{if(g<0||p<0)throw new q.ErrnoError(28);if(q.isClosed(a))throw new q.ErrnoError(8);if((2097155&a.flags)==1)throw new q.ErrnoError(8);if(q.isDir(a.node.mode))throw new q.ErrnoError(31);if(!a.stream_ops.read)throw new q.ErrnoError(28);var h=p!==void 0;if(h){if(!a.seekable)throw new q.ErrnoError(70)}else p=a.position;var C=a.stream_ops.read(a,n,i,g,p);return h||(a.position+=C),C},write:(a,n,i,g,p,h)=>{if(g<0||p<0)throw new q.ErrnoError(28);if(q.isClosed(a))throw new q.ErrnoError(8);if(!(2097155&a.flags))throw new q.ErrnoError(8);if(q.isDir(a.node.mode))throw new q.ErrnoError(31);if(!a.stream_ops.write)throw new q.ErrnoError(28);a.seekable&&1024&a.flags&&q.llseek(a,0,2);var C=p!==void 0;if(C){if(!a.seekable)throw new q.ErrnoError(70)}else p=a.position;var w=a.stream_ops.write(a,n,i,g,p,h);return C||(a.position+=w),w},allocate:(a,n,i)=>{if(q.isClosed(a))throw new q.ErrnoError(8);if(n<0||i<=0)throw new q.ErrnoError(28);if(!(2097155&a.flags))throw new q.ErrnoError(8);if(!q.isFile(a.node.mode)&&!q.isDir(a.node.mode))throw new q.ErrnoError(43);if(!a.stream_ops.allocate)throw new q.ErrnoError(138);a.stream_ops.allocate(a,n,i)},mmap:(a,n,i,g,p)=>{if(2&g&&!(2&p)&&(2097155&a.flags)!=2)throw new q.ErrnoError(2);if((2097155&a.flags)==1)throw new q.ErrnoError(2);if(!a.stream_ops.mmap)throw new q.ErrnoError(43);return a.stream_ops.mmap(a,n,i,g,p)},msync:(a,n,i,g,p)=>a.stream_ops.msync?a.stream_ops.msync(a,n,i,g,p):0,munmap:a=>0,ioctl:(a,n,i)=>{if(!a.stream_ops.ioctl)throw new q.ErrnoError(59);return a.stream_ops.ioctl(a,n,i)},readFile:(a,n={})=>{if(n.flags=n.flags||0,n.encoding=n.encoding||"binary",n.encoding!=="utf8"&&n.encoding!=="binary")throw new Error('Invalid encoding type "'+n.encoding+'"');var i,g=q.open(a,n.flags),p=q.stat(a).size,h=new Uint8Array(p);return q.read(g,h,0,p,0),n.encoding==="utf8"?i=no(h,0):n.encoding==="binary"&&(i=h),q.close(g),i},writeFile:(a,n,i={})=>{i.flags=i.flags||577;var g=q.open(a,i.flags,i.mode);if(typeof n=="string"){var p=new Uint8Array(gb(n)+1),h=Xc(n,p,0,p.length);q.write(g,p,0,h,void 0,i.canOwn)}else{if(!ArrayBuffer.isView(n))throw new Error("Unsupported data type");q.write(g,n,0,n.byteLength,void 0,i.canOwn)}q.close(g)},cwd:()=>q.currentPath,chdir:a=>{var n=q.lookupPath(a,{follow:!0});if(n.node===null)throw new q.ErrnoError(44);if(!q.isDir(n.node.mode))throw new q.ErrnoError(54);var i=q.nodePermissions(n.node,"x");if(i)throw new q.ErrnoError(i);q.currentPath=n.path},createDefaultDirectories:()=>{q.mkdir("/tmp"),q.mkdir("/home"),q.mkdir("/home/web_user")},createDefaultDevices:()=>{q.mkdir("/dev"),q.registerDevice(q.makedev(1,3),{read:()=>0,write:(a,n,i,g,p)=>g}),q.mkdev("/dev/null",q.makedev(1,3)),Pi.register(q.makedev(5,0),Pi.default_tty_ops),Pi.register(q.makedev(6,0),Pi.default_tty1_ops),q.mkdev("/dev/tty",q.makedev(5,0)),q.mkdev("/dev/tty1",q.makedev(6,0)),q.mkdir("/dev/shm"),q.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{q.mkdir("/proc");var a=q.mkdir("/proc/self");q.mkdir("/proc/self/fd"),q.mount({mount:()=>{var n=q.createNode(a,"fd",16895,73);return n.node_ops={lookup:(i,g)=>{var p=+g,h=q.getStream(p);if(!h)throw new q.ErrnoError(8);var C={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>h.path}};return C.parent=C,C}},n}},{},"/proc/self/fd")},createStandardStreams:()=>{ie.stdin?q.createDevice("/dev","stdin",ie.stdin):q.symlink("/dev/tty","/dev/stdin"),ie.stdout?q.createDevice("/dev","stdout",null,ie.stdout):q.symlink("/dev/tty","/dev/stdout"),ie.stderr?q.createDevice("/dev","stderr",null,ie.stderr):q.symlink("/dev/tty1","/dev/stderr"),q.open("/dev/stdin",0),q.open("/dev/stdout",1),q.open("/dev/stderr",1)},ensureErrnoError:()=>{q.ErrnoError||(q.ErrnoError=function(a,n){this.node=n,this.setErrno=function(i){this.errno=i},this.setErrno(a),this.message="FS error"},q.ErrnoError.prototype=new Error,q.ErrnoError.prototype.constructor=q.ErrnoError,[44].forEach(a=>{q.genericErrors[a]=new q.ErrnoError(a),q.genericErrors[a].stack=""}))},staticInit:()=>{q.ensureErrnoError(),q.nameTable=new Array(4096),q.mount(Et,{},"/"),q.createDefaultDirectories(),q.createDefaultDevices(),q.createSpecialDirectories(),q.filesystems={MEMFS:Et}},init:(a,n,i)=>{q.init.initialized=!0,q.ensureErrnoError(),ie.stdin=a||ie.stdin,ie.stdout=n||ie.stdout,ie.stderr=i||ie.stderr,q.createStandardStreams()},quit:()=>{q.init.initialized=!1;for(var a=0;a{var i=0;return a&&(i|=365),n&&(i|=146),i},findObject:(a,n)=>{var i=q.analyzePath(a,n);return i.exists?i.object:null},analyzePath:(a,n)=>{try{a=(g=q.lookupPath(a,{follow:!n})).path}catch{}var i={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var g=q.lookupPath(a,{parent:!0});i.parentExists=!0,i.parentPath=g.path,i.parentObject=g.node,i.name=lr.basename(a),g=q.lookupPath(a,{follow:!n}),i.exists=!0,i.path=g.path,i.object=g.node,i.name=g.node.name,i.isRoot=g.path==="/"}catch(p){i.error=p.errno}return i},createPath:(a,n,i,g)=>{a=typeof a=="string"?a:q.getPath(a);for(var p=n.split("/").reverse();p.length;){var h=p.pop();if(h){var C=lr.join2(a,h);try{q.mkdir(C)}catch{}a=C}}return C},createFile:(a,n,i,g,p)=>{var h=lr.join2(typeof a=="string"?a:q.getPath(a),n),C=q.getMode(g,p);return q.create(h,C)},createDataFile:(a,n,i,g,p,h)=>{var C=n;a&&(a=typeof a=="string"?a:q.getPath(a),C=n?lr.join2(a,n):a);var w=q.getMode(g,p),E=q.create(C,w);if(i){if(typeof i=="string"){for(var v=new Array(i.length),D=0,B=i.length;D{var p=lr.join2(typeof a=="string"?a:q.getPath(a),n),h=q.getMode(!!i,!!g);q.createDevice.major||(q.createDevice.major=64);var C=q.makedev(q.createDevice.major++,0);return q.registerDevice(C,{open:w=>{w.seekable=!1},close:w=>{g&&g.buffer&&g.buffer.length&&g(10)},read:(w,E,v,D,B)=>{for(var x=0,S=0;S{for(var x=0;x{if(a.isDevice||a.isFolder||a.link||a.contents)return!0;throw typeof XMLHttpRequest<"u"?new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."):new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:(a,n,i,g,p)=>{function h(){this.lengthKnown=!1,this.chunks=[]}if(h.prototype.get=function(B){if(!(B>this.length-1||B<0)){var x=B%this.chunkSize,S=B/this.chunkSize|0;return this.getter(S)[x]}},h.prototype.setDataGetter=function(B){this.getter=B},h.prototype.cacheLength=function(){var B=new XMLHttpRequest;if(B.open("HEAD",i,!1),B.send(null),!(B.status>=200&&B.status<300||B.status===304))throw new Error("Couldn't load "+i+". Status: "+B.status);var x,S=Number(B.getResponseHeader("Content-length")),F=(x=B.getResponseHeader("Accept-Ranges"))&&x==="bytes",R=(x=B.getResponseHeader("Content-Encoding"))&&x==="gzip",K=1048576;F||(K=S);var L=this;L.setDataGetter(N=>{var V=N*K,d=(N+1)*K-1;if(d=Math.min(d,S-1),L.chunks[N]===void 0&&(L.chunks[N]=((k,e)=>{if(k>e)throw new Error("invalid range ("+k+", "+e+") or no bytes requested!");if(e>S-1)throw new Error("only "+S+" bytes available! programmer error!");var u=new XMLHttpRequest;if(u.open("GET",i,!1),S!==K&&u.setRequestHeader("Range","bytes="+k+"-"+e),u.responseType="arraybuffer",u.overrideMimeType&&u.overrideMimeType("text/plain; charset=x-user-defined"),u.send(null),!(u.status>=200&&u.status<300||u.status===304))throw new Error("Couldn't load "+i+". Status: "+u.status);return u.response!==void 0?new Uint8Array(u.response||[]):Ib(u.responseText||"",!0)})(V,d)),L.chunks[N]===void 0)throw new Error("doXHR failed!");return L.chunks[N]}),!R&&S||(K=S=1,S=this.getter(0).length,K=S,Al("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=S,this._chunkSize=K,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!HI)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var C=new h;Object.defineProperties(C,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var w={isDevice:!1,contents:C}}else w={isDevice:!1,url:i};var E=q.createFile(a,n,w,g,p);w.contents?E.contents=w.contents:w.url&&(E.contents=null,E.url=w.url),Object.defineProperties(E,{usedBytes:{get:function(){return this.contents.length}}});var v={};function D(B,x,S,F,R){var K=B.node.contents;if(R>=K.length)return 0;var L=Math.min(K.length-R,F);if(K.slice)for(var N=0;N{var x=E.stream_ops[B];v[B]=function(){return q.forceLoadFile(E),x.apply(null,arguments)}}),v.read=(B,x,S,F,R)=>(q.forceLoadFile(E),D(B,x,S,F,R)),v.mmap=(B,x,S,F,R)=>{q.forceLoadFile(E);var K=wb();if(!K)throw new q.ErrnoError(48);return D(B,Ds,K,x,S),{ptr:K,allocated:!0}},E.stream_ops=v,E},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(a,n,i)=>{n=n||(()=>{}),i=i||(()=>{});var g=q.indexedDB();try{var p=g.open(q.DB_NAME(),q.DB_VERSION)}catch(h){return i(h)}p.onupgradeneeded=()=>{Al("creating db"),p.result.createObjectStore(q.DB_STORE_NAME)},p.onsuccess=()=>{var h=p.result.transaction([q.DB_STORE_NAME],"readwrite"),C=h.objectStore(q.DB_STORE_NAME),w=0,E=0,v=a.length;function D(){E==0?n():i()}a.forEach(B=>{var x=C.put(q.analyzePath(B).object.contents,B);x.onsuccess=()=>{++w+E==v&&D()},x.onerror=()=>{E++,w+E==v&&D()}}),h.onerror=i},p.onerror=i},loadFilesFromDB:(a,n,i)=>{n=n||(()=>{}),i=i||(()=>{});var g=q.indexedDB();try{var p=g.open(q.DB_NAME(),q.DB_VERSION)}catch(h){return i(h)}p.onupgradeneeded=i,p.onsuccess=()=>{var h=p.result;try{var C=h.transaction([q.DB_STORE_NAME],"readonly")}catch(x){return void i(x)}var w=C.objectStore(q.DB_STORE_NAME),E=0,v=0,D=a.length;function B(){v==0?n():i()}a.forEach(x=>{var S=w.get(x);S.onsuccess=()=>{q.analyzePath(x).exists&&q.unlink(x),q.createDataFile(lr.dirname(x),lr.basename(x),S.result,!0,!0,!0),++E+v==D&&B()},S.onerror=()=>{v++,E+v==D&&B()}}),C.onerror=i},p.onerror=i}},Br={DEFAULT_POLLMASK:5,calculateAt:function(a,n,i){if(lr.isAbs(n))return n;var g;if(a===-100?g=q.cwd():g=Br.getStreamFromFD(a).path,n.length==0){if(!i)throw new q.ErrnoError(44);return g}return lr.join2(g,n)},doStat:function(a,n,i){try{var g=a(n)}catch(w){if(w&&w.node&&lr.normalize(n)!==lr.normalize(q.getPath(w.node)))return-54;throw w}Ht[i>>2]=g.dev,Ht[i+8>>2]=g.ino,Ht[i+12>>2]=g.mode,Ur[i+16>>2]=g.nlink,Ht[i+20>>2]=g.uid,Ht[i+24>>2]=g.gid,Ht[i+28>>2]=g.rdev,zr=[g.size>>>0,(gt=g.size,+Math.abs(gt)>=1?gt>0?(0|Math.min(+Math.floor(gt/4294967296),4294967295))>>>0:~~+Math.ceil((gt-+(~~gt>>>0))/4294967296)>>>0:0)],Ht[i+40>>2]=zr[0],Ht[i+44>>2]=zr[1],Ht[i+48>>2]=4096,Ht[i+52>>2]=g.blocks;var p=g.atime.getTime(),h=g.mtime.getTime(),C=g.ctime.getTime();return zr=[Math.floor(p/1e3)>>>0,(gt=Math.floor(p/1e3),+Math.abs(gt)>=1?gt>0?(0|Math.min(+Math.floor(gt/4294967296),4294967295))>>>0:~~+Math.ceil((gt-+(~~gt>>>0))/4294967296)>>>0:0)],Ht[i+56>>2]=zr[0],Ht[i+60>>2]=zr[1],Ur[i+64>>2]=p%1e3*1e3,zr=[Math.floor(h/1e3)>>>0,(gt=Math.floor(h/1e3),+Math.abs(gt)>=1?gt>0?(0|Math.min(+Math.floor(gt/4294967296),4294967295))>>>0:~~+Math.ceil((gt-+(~~gt>>>0))/4294967296)>>>0:0)],Ht[i+72>>2]=zr[0],Ht[i+76>>2]=zr[1],Ur[i+80>>2]=h%1e3*1e3,zr=[Math.floor(C/1e3)>>>0,(gt=Math.floor(C/1e3),+Math.abs(gt)>=1?gt>0?(0|Math.min(+Math.floor(gt/4294967296),4294967295))>>>0:~~+Math.ceil((gt-+(~~gt>>>0))/4294967296)>>>0:0)],Ht[i+88>>2]=zr[0],Ht[i+92>>2]=zr[1],Ur[i+96>>2]=C%1e3*1e3,zr=[g.ino>>>0,(gt=g.ino,+Math.abs(gt)>=1?gt>0?(0|Math.min(+Math.floor(gt/4294967296),4294967295))>>>0:~~+Math.ceil((gt-+(~~gt>>>0))/4294967296)>>>0:0)],Ht[i+104>>2]=zr[0],Ht[i+108>>2]=zr[1],0},doMsync:function(a,n,i,g,p){if(!q.isFile(n.node.mode))throw new q.ErrnoError(43);if(2&g)return 0;var h=io.slice(a,a+i);q.msync(n,h,p,i,g)},varargs:void 0,get:function(){return Br.varargs+=4,Ht[Br.varargs-4>>2]},getStr:function(a){return oo(a)},getStreamFromFD:function(a){var n=q.getStream(a);if(!n)throw new q.ErrnoError(8);return n}},K2={};function Zo(){if(!Zo.strings){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:Kc||"./this.program"};for(var n in K2)K2[n]===void 0?delete a[n]:a[n]=K2[n];var i=[];for(var n in a)i.push(n+"="+a[n]);Zo.strings=i}return Zo.strings}var bm=function(a,n,i,g){a||(a=this),this.parent=a,this.mount=a.mount,this.mounted=null,this.id=q.nextInode++,this.name=n,this.mode=i,this.node_ops={},this.stream_ops={},this.rdev=g};Object.defineProperties(bm.prototype,{read:{get:function(){return!(365&~this.mode)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return!(146&~this.mode)},set:function(a){a?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return q.isDir(this.mode)}},isDevice:{get:function(){return q.isChrdev(this.mode)}}}),q.FSNode=bm,q.staticInit(),ie.FS_createPath=q.createPath,ie.FS_createDataFile=q.createDataFile,ie.FS_unlink=q.unlink,ie.FS_createLazyFile=q.createLazyFile,ie.FS_createDevice=q.createDevice;var XI={g:function(a,n,i,g){vn("Assertion failed: "+oo(a)+", at: "+[n?oo(n):"unknown filename",i,g?oo(g):"unknown function"])},u:function(a,n,i){throw new KI(a).init(n,i),a},d:function(a,n,i){Br.varargs=i;try{var g=Br.getStreamFromFD(a);switch(n){case 0:return(p=Br.get())<0?-28:q.createStream(g,p).fd;case 1:case 2:case 6:case 7:return 0;case 3:return g.flags;case 4:var p=Br.get();return g.flags|=p,0;case 5:return p=Br.get(),tl[p+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return h=28,Ht[I8()>>2]=h,-1}}catch(C){if(q===void 0||!(C instanceof q.ErrnoError))throw C;return-C.errno}var h},q:function(a,n,i){try{var g=Br.getStreamFromFD(a);g.getdents||(g.getdents=q.readdir(g.path));for(var p=280,h=0,C=q.llseek(g,0,1),w=Math.floor(C/p);w>>0,(gt=E,+Math.abs(gt)>=1?gt>0?(0|Math.min(+Math.floor(gt/4294967296),4294967295))>>>0:~~+Math.ceil((gt-+(~~gt>>>0))/4294967296)>>>0:0)],Ht[n+h>>2]=zr[0],Ht[n+h+4>>2]=zr[1],zr=[(w+1)*p>>>0,(gt=(w+1)*p,+Math.abs(gt)>=1?gt>0?(0|Math.min(+Math.floor(gt/4294967296),4294967295))>>>0:~~+Math.ceil((gt-+(~~gt>>>0))/4294967296)>>>0:0)],Ht[n+h+8>>2]=zr[0],Ht[n+h+12>>2]=zr[1],tl[n+h+16>>1]=280,Ds[n+h+18|0]=v,Xc(D,io,n+h+19,256),h+=p,w+=1}return q.llseek(g,w*p,0),h}catch(x){if(q===void 0||!(x instanceof q.ErrnoError))throw x;return-x.errno}},h:function(a,n,i){Br.varargs=i;try{var g=Br.getStreamFromFD(a);switch(n){case 21509:case 21505:case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:case 21523:case 21524:return g.tty?0:-59;case 21519:if(!g.tty)return-59;var p=Br.get();return Ht[p>>2]=0,0;case 21520:return g.tty?-28:-59;case 21531:return p=Br.get(),q.ioctl(g,n,p);default:return-28}}catch(h){if(q===void 0||!(h instanceof q.ErrnoError))throw h;return-h.errno}},e:function(a,n,i,g){Br.varargs=g;try{n=Br.getStr(n),n=Br.calculateAt(a,n);var p=g?Br.get():0;return q.open(n,i,p).fd}catch(h){if(q===void 0||!(h instanceof q.ErrnoError))throw h;return-h.errno}},o:function(a){try{return a=Br.getStr(a),q.rmdir(a),0}catch(n){if(q===void 0||!(n instanceof q.ErrnoError))throw n;return-n.errno}},n:function(a,n){try{return a=Br.getStr(a),Br.doStat(q.stat,a,n)}catch(i){if(q===void 0||!(i instanceof q.ErrnoError))throw i;return-i.errno}},p:function(a,n,i){try{return n=Br.getStr(n),n=Br.calculateAt(a,n),i===0?q.unlink(n):i===512?q.rmdir(n):vn("Invalid flags passed to unlinkat"),0}catch(g){if(q===void 0||!(g instanceof q.ErrnoError))throw g;return-g.errno}},i:function(){return!0},l:function(){vn("")},f:function(){return Date.now()},j:function(a,n,i){io.copyWithin(a,n,n+i)},m:function(a){io.length,vn("OOM")},r:function(a,n){var i=0;return Zo().forEach(function(g,p){var h=n+i;Ur[a+4*p>>2]=h,function(C,w){for(var E=0;E>2]=i.length;var g=0;return i.forEach(function(p){g+=p.length+1}),Ur[n>>2]=g,0},b:function(a){try{var n=Br.getStreamFromFD(a);return q.close(n),0}catch(i){if(q===void 0||!(i instanceof q.ErrnoError))throw i;return i.errno}},t:function(a,n,i,g){try{var p=function(h,C,w,E){for(var v=0,D=0;D>2],x=Ur[C+4>>2];C+=8;var S=q.read(h,Ds,B,x,E);if(S<0)return-1;if(v+=S,S>2]=p,0}catch(h){if(q===void 0||!(h instanceof q.ErrnoError))throw h;return h.errno}},k:function(a,n,i,g,p){try{var h=(E=i)+2097152>>>0<4194305-!!(w=n)?(w>>>0)+4294967296*E:NaN;if(isNaN(h))return 61;var C=Br.getStreamFromFD(a);return q.llseek(C,h,g),zr=[C.position>>>0,(gt=C.position,+Math.abs(gt)>=1?gt>0?(0|Math.min(+Math.floor(gt/4294967296),4294967295))>>>0:~~+Math.ceil((gt-+(~~gt>>>0))/4294967296)>>>0:0)],Ht[p>>2]=zr[0],Ht[p+4>>2]=zr[1],C.getdents&&h===0&&g===0&&(C.getdents=null),0}catch(v){if(q===void 0||!(v instanceof q.ErrnoError))throw v;return v.errno}var w,E},c:function(a,n,i,g){try{var p=function(h,C,w,E){for(var v=0,D=0;D>2],x=Ur[C+4>>2];C+=8;var S=q.write(h,Ds,B,x,E);if(S<0)return-1;v+=S}return v}(Br.getStreamFromFD(a),n,i);return Ur[g>>2]=p,0}catch(h){if(q===void 0||!(h instanceof q.ErrnoError))throw h;return h.errno}},a:V0};(function(){var a,n={a:XI};function i(p,h){var C=p.exports;ie.asm=C,ie.asm.ua,hb(ie.asm.v),bb()}function g(p){i(p.instance)}if(Cb(),ie.instantiateWasm)try{return ie.instantiateWasm(n,i)}catch(p){return go("Module.instantiateWasm callback failed with error: "+p),!1}a=g,async function(){return[]}().then(function(p){return po.instantiate(p,n)}).then(function(p){return p}).then(a,function(p){go("failed to asynchronously prepare wasm: "+p),vn(p)})})(),ie.___wasm_call_ctors=function(){return(ie.___wasm_call_ctors=ie.asm.v).apply(null,arguments)};var kb=ie._emscripten_bind_VoidPtr___destroy___0=function(){return(kb=ie._emscripten_bind_VoidPtr___destroy___0=ie.asm.w).apply(null,arguments)},Eb=ie._emscripten_bind_espeak_VOICE_get_name_0=function(){return(Eb=ie._emscripten_bind_espeak_VOICE_get_name_0=ie.asm.x).apply(null,arguments)},Mb=ie._emscripten_bind_espeak_VOICE_set_name_1=function(){return(Mb=ie._emscripten_bind_espeak_VOICE_set_name_1=ie.asm.y).apply(null,arguments)},Bb=ie._emscripten_bind_espeak_VOICE_get_languages_1=function(){return(Bb=ie._emscripten_bind_espeak_VOICE_get_languages_1=ie.asm.z).apply(null,arguments)},vb=ie._emscripten_bind_espeak_VOICE_get_identifier_0=function(){return(vb=ie._emscripten_bind_espeak_VOICE_get_identifier_0=ie.asm.A).apply(null,arguments)},xb=ie._emscripten_bind_espeak_VOICE_set_identifier_1=function(){return(xb=ie._emscripten_bind_espeak_VOICE_set_identifier_1=ie.asm.B).apply(null,arguments)},yb=ie._emscripten_bind_espeak_VOICE_get_gender_0=function(){return(yb=ie._emscripten_bind_espeak_VOICE_get_gender_0=ie.asm.C).apply(null,arguments)},Db=ie._emscripten_bind_espeak_VOICE_set_gender_1=function(){return(Db=ie._emscripten_bind_espeak_VOICE_set_gender_1=ie.asm.D).apply(null,arguments)},Tb=ie._emscripten_bind_espeak_VOICE_get_age_0=function(){return(Tb=ie._emscripten_bind_espeak_VOICE_get_age_0=ie.asm.E).apply(null,arguments)},Gb=ie._emscripten_bind_espeak_VOICE_set_age_1=function(){return(Gb=ie._emscripten_bind_espeak_VOICE_set_age_1=ie.asm.F).apply(null,arguments)},Pb=ie._emscripten_bind_espeak_VOICE_get_variant_0=function(){return(Pb=ie._emscripten_bind_espeak_VOICE_get_variant_0=ie.asm.G).apply(null,arguments)},Qb=ie._emscripten_bind_espeak_VOICE_set_variant_1=function(){return(Qb=ie._emscripten_bind_espeak_VOICE_set_variant_1=ie.asm.H).apply(null,arguments)},Fb=ie._emscripten_bind_espeak_VOICE_get_xx1_0=function(){return(Fb=ie._emscripten_bind_espeak_VOICE_get_xx1_0=ie.asm.I).apply(null,arguments)},Sb=ie._emscripten_bind_espeak_VOICE_set_xx1_1=function(){return(Sb=ie._emscripten_bind_espeak_VOICE_set_xx1_1=ie.asm.J).apply(null,arguments)},Ob=ie._emscripten_bind_espeak_VOICE_get_score_0=function(){return(Ob=ie._emscripten_bind_espeak_VOICE_get_score_0=ie.asm.K).apply(null,arguments)},zb=ie._emscripten_bind_espeak_VOICE_set_score_1=function(){return(zb=ie._emscripten_bind_espeak_VOICE_set_score_1=ie.asm.L).apply(null,arguments)},Nb=ie._emscripten_bind_espeak_VOICE_get_spare_0=function(){return(Nb=ie._emscripten_bind_espeak_VOICE_get_spare_0=ie.asm.M).apply(null,arguments)},Lb=ie._emscripten_bind_espeak_VOICE_set_spare_1=function(){return(Lb=ie._emscripten_bind_espeak_VOICE_set_spare_1=ie.asm.N).apply(null,arguments)},_b=ie._emscripten_bind_espeak_VOICE___destroy___0=function(){return(_b=ie._emscripten_bind_espeak_VOICE___destroy___0=ie.asm.O).apply(null,arguments)},Rb=ie._emscripten_bind_espeak_EVENT_get_type_0=function(){return(Rb=ie._emscripten_bind_espeak_EVENT_get_type_0=ie.asm.P).apply(null,arguments)},jb=ie._emscripten_bind_espeak_EVENT_get_unique_identifier_0=function(){return(jb=ie._emscripten_bind_espeak_EVENT_get_unique_identifier_0=ie.asm.Q).apply(null,arguments)},Wb=ie._emscripten_bind_espeak_EVENT_get_text_position_0=function(){return(Wb=ie._emscripten_bind_espeak_EVENT_get_text_position_0=ie.asm.R).apply(null,arguments)},Yb=ie._emscripten_bind_espeak_EVENT_get_length_0=function(){return(Yb=ie._emscripten_bind_espeak_EVENT_get_length_0=ie.asm.S).apply(null,arguments)},Hb=ie._emscripten_bind_espeak_EVENT_get_audio_position_0=function(){return(Hb=ie._emscripten_bind_espeak_EVENT_get_audio_position_0=ie.asm.T).apply(null,arguments)},Vb=ie._emscripten_bind_espeak_EVENT_get_sample_0=function(){return(Vb=ie._emscripten_bind_espeak_EVENT_get_sample_0=ie.asm.U).apply(null,arguments)},Ub=ie._emscripten_bind_espeak_EVENT_get_user_data_0=function(){return(Ub=ie._emscripten_bind_espeak_EVENT_get_user_data_0=ie.asm.V).apply(null,arguments)},Kb=ie._emscripten_bind_espeak_EVENT___destroy___0=function(){return(Kb=ie._emscripten_bind_espeak_EVENT___destroy___0=ie.asm.W).apply(null,arguments)},Xb=ie._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=function(){return(Xb=ie._emscripten_bind_eSpeakNGWorker_eSpeakNGWorker_0=ie.asm.X).apply(null,arguments)},Zb=ie._emscripten_bind_eSpeakNGWorker_synth__2=function(){return(Zb=ie._emscripten_bind_eSpeakNGWorker_synth__2=ie.asm.Y).apply(null,arguments)},Jb=ie._emscripten_bind_eSpeakNGWorker_synth_ipa__2=function(){return(Jb=ie._emscripten_bind_eSpeakNGWorker_synth_ipa__2=ie.asm.Z).apply(null,arguments)},qb=ie._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=function(){return(qb=ie._emscripten_bind_eSpeakNGWorker_getSizeOfEventStruct__0=ie.asm._).apply(null,arguments)},$b=ie._emscripten_bind_eSpeakNGWorker_set_voice_2=function(){return($b=ie._emscripten_bind_eSpeakNGWorker_set_voice_2=ie.asm.$).apply(null,arguments)},e8=ie._emscripten_bind_eSpeakNGWorker_set_voice_3=function(){return(e8=ie._emscripten_bind_eSpeakNGWorker_set_voice_3=ie.asm.aa).apply(null,arguments)},A8=ie._emscripten_bind_eSpeakNGWorker_set_voice_4=function(){return(A8=ie._emscripten_bind_eSpeakNGWorker_set_voice_4=ie.asm.ba).apply(null,arguments)},t8=ie._emscripten_bind_eSpeakNGWorker_set_voice_5=function(){return(t8=ie._emscripten_bind_eSpeakNGWorker_set_voice_5=ie.asm.ca).apply(null,arguments)},r8=ie._emscripten_bind_eSpeakNGWorker_get_voices_1=function(){return(r8=ie._emscripten_bind_eSpeakNGWorker_get_voices_1=ie.asm.da).apply(null,arguments)},s8=ie._emscripten_bind_eSpeakNGWorker_set_voices_2=function(){return(s8=ie._emscripten_bind_eSpeakNGWorker_set_voices_2=ie.asm.ea).apply(null,arguments)},a8=ie._emscripten_bind_eSpeakNGWorker_get_samplerate_0=function(){return(a8=ie._emscripten_bind_eSpeakNGWorker_get_samplerate_0=ie.asm.fa).apply(null,arguments)},n8=ie._emscripten_bind_eSpeakNGWorker_get_rate_0=function(){return(n8=ie._emscripten_bind_eSpeakNGWorker_get_rate_0=ie.asm.ga).apply(null,arguments)},i8=ie._emscripten_bind_eSpeakNGWorker_set_rate_1=function(){return(i8=ie._emscripten_bind_eSpeakNGWorker_set_rate_1=ie.asm.ha).apply(null,arguments)},o8=ie._emscripten_bind_eSpeakNGWorker_get_pitch_0=function(){return(o8=ie._emscripten_bind_eSpeakNGWorker_get_pitch_0=ie.asm.ia).apply(null,arguments)},l8=ie._emscripten_bind_eSpeakNGWorker_set_pitch_1=function(){return(l8=ie._emscripten_bind_eSpeakNGWorker_set_pitch_1=ie.asm.ja).apply(null,arguments)},c8=ie._emscripten_bind_eSpeakNGWorker___destroy___0=function(){return(c8=ie._emscripten_bind_eSpeakNGWorker___destroy___0=ie.asm.ka).apply(null,arguments)},u8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=function(){return(u8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_LIST_TERMINATED=ie.asm.la).apply(null,arguments)},d8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=function(){return(d8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_WORD=ie.asm.ma).apply(null,arguments)},f8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=function(){return(f8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SENTENCE=ie.asm.na).apply(null,arguments)},g8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=function(){return(g8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MARK=ie.asm.oa).apply(null,arguments)},p8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=function(){return(p8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PLAY=ie.asm.pa).apply(null,arguments)},m8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=function(){return(m8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_END=ie.asm.qa).apply(null,arguments)},h8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=function(){return(h8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_MSG_TERMINATED=ie.asm.ra).apply(null,arguments)},C8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=function(){return(C8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_PHONEME=ie.asm.sa).apply(null,arguments)},b8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=function(){return(b8=ie._emscripten_enum_espeak_EVENT_TYPE_espeakEVENT_SAMPLERATE=ie.asm.ta).apply(null,arguments)},I8=ie.___errno_location=function(){return(I8=ie.___errno_location=ie.asm.va).apply(null,arguments)};ie._free=function(){return(ie._free=ie.asm.wa).apply(null,arguments)},ie._malloc=function(){return(ie._malloc=ie.asm.xa).apply(null,arguments)};var rl,w8=ie.___cxa_is_pointer_type=function(){return(w8=ie.___cxa_is_pointer_type=ie.asm.ya).apply(null,arguments)};function k8(a){function n(){rl||(rl=!0,ie.calledRun=!0,ub||(mb=!0,ie.noFSInit||q.init.initialized||q.init(),q.ignorePermissions=!1,U2(pb),ie.onRuntimeInitialized&&ie.onRuntimeInitialized(),function(){if(ie.postRun)for(typeof ie.postRun=="function"&&(ie.postRun=[ie.postRun]);ie.postRun.length;)i=ie.postRun.shift(),Cm.unshift(i);var i;U2(Cm)}()))}Qi>0||(function(){if(ie.preRun)for(typeof ie.preRun=="function"&&(ie.preRun=[ie.preRun]);ie.preRun.length;)i=ie.preRun.shift(),hm.unshift(i);var i;U2(hm)}(),Qi>0||(ie.setStatus?(ie.setStatus("Running..."),setTimeout(function(){setTimeout(function(){ie.setStatus("")},1),n()},1)):n()))}if(ie.___start_em_js=132724,ie.___stop_em_js=132822,ie.addRunDependency=Cb,ie.removeRunDependency=bb,ie.FS_createPath=q.createPath,ie.FS_createDataFile=q.createDataFile,ie.FS_createLazyFile=q.createLazyFile,ie.FS_createDevice=q.createDevice,ie.FS_unlink=q.unlink,Xo=function a(){rl||k8(),rl||(Xo=a)},ie.preInit)for(typeof ie.preInit=="function"&&(ie.preInit=[ie.preInit]);ie.preInit.length>0;)ie.preInit.pop()();function Js(){}function sl(a){return(a||Js).__cache__}function lo(a,n){var i=sl(n),g=i[a];return g||((g=Object.create((n||Js).prototype)).ptr=a,i[a]=g)}k8(),Js.prototype=Object.create(Js.prototype),Js.prototype.constructor=Js,Js.prototype.__class__=Js,Js.__cache__={},ie.WrapperObject=Js,ie.getCache=sl,ie.wrapPointer=lo,ie.castObject=function(a,n){return lo(a.ptr,n)},ie.NULL=lo(0),ie.destroy=function(a){if(!a.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";a.__destroy__(),delete sl(a.__class__)[a.ptr]},ie.compare=function(a,n){return a.ptr===n.ptr},ie.getPointer=function(a){return a.ptr},ie.getClass=function(a){return a.__class__};var ar={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ar.needed){for(var a=0;a=ar.size?(H2(p>0),ar.needed+=p,i=ie._malloc(p),ar.temps.push(i)):(i=ar.buffer+ar.pos,ar.pos+=p),i},copy:function(a,n,i){switch(i>>>=0,n.BYTES_PER_ELEMENT){case 2:i>>>=1;break;case 4:i>>>=2;break;case 8:i>>>=3}for(var g=0;g{ie.calledRun?a(new ie.eSpeakNGWorker):ie.onRuntimeInitialized=()=>a(new ie.eSpeakNGWorker)}),JI=["en"],qI=E8.then(a=>{const n=a.list_voices().map(({name:g,identifier:p,languages:h})=>({name:g,identifier:p,languages:h.filter(C=>JI.includes(C.name.split("-")[0]))})).filter(g=>g.languages.length>0),i=new Set;for(const g of n){i.add(g.identifier);for(const p of g.languages)i.add(p.name)}return{voices:n,identifiers:i}}),$I=async(a,n="en-us")=>{var p;const i=await E8,{identifiers:g}=await qI;if(!g.has(n))throw new Error(`Invalid language identifier: "${n}". Should be one of: ${Array.from(g).toSorted().join(", ")}.`);return i.set_voice(n),((p=i.synthesize_ipa(a).ipa)==null?void 0:p.split(` +`).filter(h=>h.length>0))??[]};var R0={};function e5(a){if(a.includes("."))return a;if(a.includes(":")){let[h,C]=a.split(":").map(Number);return C===0?`${h} o'clock`:C<10?`${h} oh ${C}`:`${h} ${C}`}let n=parseInt(a.slice(0,4),10);if(n<1100||n%1e3<10)return a;let i=a.slice(0,2),g=parseInt(a.slice(2,4),10),p=a.endsWith("s")?"s":"";if(n%1e3>=100&&n%1e3<=999){if(g===0)return`${i} hundred${p}`;if(g<10)return`${i} oh ${g}${p}`}return`${i} ${g}${p}`}function A5(a){const n=a[0]==="$"?"dollar":"pound";if(isNaN(Number(a.slice(1))))return`${a.slice(1)} ${n}s`;if(!a.includes(".")){let h=a.slice(1)==="1"?"":"s";return`${a.slice(1)} ${n}${h}`}const[i,g]=a.slice(1).split("."),p=parseInt(g.padEnd(2,"0"),10);return`${i} ${n}${i==="1"?"":"s"} and ${p} ${a[0]==="$"?p===1?"cent":"cents":p===1?"penny":"pence"}`}function t5(a){let[n,i]=a.split(".");return`${n} point ${i.split("").join(" ")}`}const r5=new RegExp(`(\\s*[${Im=';:,.!?¡¿—…"«»“”(){}[]',Im.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}]+\\s*)+`,"g");var Im;async function wm(a,n="a",i=!0){i&&(a=function(w){return w.replace(/[‘’]/g,"'").replace(/«/g,"“").replace(/»/g,"”").replace(/[“”]/g,'"').replace(/\(/g,"«").replace(/\)/g,"»").replace(/、/g,", ").replace(/。/g,". ").replace(/!/g,"! ").replace(/,/g,", ").replace(/:/g,": ").replace(/;/g,"; ").replace(/?/g,"? ").replace(/[^\S \n]/g," ").replace(/ +/," ").replace(new RegExp("(?<=\\n) +(?=\\n)","g"),"").replace(/\bD[Rr]\.(?= [A-Z])/g,"Doctor").replace(/\b(?:Mr\.|MR\.(?= [A-Z]))/g,"Mister").replace(/\b(?:Ms\.|MS\.(?= [A-Z]))/g,"Miss").replace(/\b(?:Mrs\.|MRS\.(?= [A-Z]))/g,"Mrs").replace(/\betc\.(?! [A-Z])/gi,"etc").replace(/\b(y)eah?\b/gi,"$1e'a").replace(new RegExp("\\d*\\.\\d+|\\b\\d{4}s?\\b|(?E.replace(/\./g,"-")).replace(new RegExp("(?<=[A-Z])\\.(?=[A-Z])","gi"),"-").trim()}(a));const g=function(w,E){const v=[];let D=0;for(const B of w.matchAll(E)){const x=B[0];D0&&v.push({match:!0,text:x}),D=B.index+x.length}return Dw?E:(await $I(E,p)).join(" ")))).join("").replace(/kəkˈoːɹoʊ/g,"kˈoʊkəɹoʊ").replace(/kəkˈɔːɹəʊ/g,"kˈəʊkəɹəʊ").replace(/ʲ/g,"j").replace(/r/g,"ɹ").replace(/x/g,"k").replace(/ɬ/g,"l").replace(new RegExp("(?<=[a-zɹː])(?=hˈʌndɹɪd)","g")," ").replace(/ z(?=[;:,.!?¡¿—…"«»“” ]|$)/g,"z");return n==="a"&&(C=C.replace(new RegExp("(?<=nˈaɪn)ti(?!ː)","g"),"di")),C.trim()}function X2(a,n=!0){return".!?…。?!".includes(a)||n&&a===` +`}function s5(a,n){let i=n;for(;i0&&i0&&this._sentences.push(n),this._buffer="",this._resolve()}_resolve(){this._resolver&&(this._resolver(),this._resolver=null)}_process(){let n=0;const i=this._buffer,g=i.length;let p=0,h=[];const C=w=>{let E=w;for(;E+1=0&&/\S/.test(i[B]);)B--;B=Math.max(n,B+1);const x=s5(i,B);if(!x){++p;continue}if((/https?[,:]\/\//.test(x)||x.includes("@"))&&!X2(x.at(-1))){p=B+x.length;continue}if(n5(x)){++p;continue}if(/^([A-Za-z]\.)+$/.test(x)&&D0&&this._resolve()}async*[Symbol.asyncIterator](){if(this._resolver)throw new Error("Another iterator is already active.");for(;;)if(this._sentences.length>0)yield this._sentences.shift();else{if(this._closed)break;await new Promise(n=>{this._resolver=n})}}[Symbol.iterator](){this.flush();const n=this._sentences[Symbol.iterator]();return this._sentences=[],n}get sentences(){return this._sentences}}const Wo=Object.freeze({af_heart:{name:"Heart",language:"en-us",gender:"Female",traits:"❤️",targetQuality:"A",overallGrade:"A"},af_alloy:{name:"Alloy",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C"},af_aoede:{name:"Aoede",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_bella:{name:"Bella",language:"en-us",gender:"Female",traits:"🔥",targetQuality:"A",overallGrade:"A-"},af_jessica:{name:"Jessica",language:"en-us",gender:"Female",targetQuality:"C",overallGrade:"D"},af_kore:{name:"Kore",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_nicole:{name:"Nicole",language:"en-us",gender:"Female",traits:"🎧",targetQuality:"B",overallGrade:"B-"},af_nova:{name:"Nova",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C"},af_river:{name:"River",language:"en-us",gender:"Female",targetQuality:"C",overallGrade:"D"},af_sarah:{name:"Sarah",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C+"},af_sky:{name:"Sky",language:"en-us",gender:"Female",targetQuality:"B",overallGrade:"C-"},am_adam:{name:"Adam",language:"en-us",gender:"Male",targetQuality:"D",overallGrade:"F+"},am_echo:{name:"Echo",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_eric:{name:"Eric",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_fenrir:{name:"Fenrir",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_liam:{name:"Liam",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_michael:{name:"Michael",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_onyx:{name:"Onyx",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D"},am_puck:{name:"Puck",language:"en-us",gender:"Male",targetQuality:"B",overallGrade:"C+"},am_santa:{name:"Santa",language:"en-us",gender:"Male",targetQuality:"C",overallGrade:"D-"},bf_emma:{name:"Emma",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"B",overallGrade:"B-"},bf_isabella:{name:"Isabella",language:"en-gb",gender:"Female",targetQuality:"B",overallGrade:"C"},bm_george:{name:"George",language:"en-gb",gender:"Male",targetQuality:"B",overallGrade:"C"},bm_lewis:{name:"Lewis",language:"en-gb",gender:"Male",targetQuality:"C",overallGrade:"D+"},bf_alice:{name:"Alice",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"C",overallGrade:"D"},bf_lily:{name:"Lily",language:"en-gb",gender:"Female",traits:"🚺",targetQuality:"C",overallGrade:"D"},bm_daniel:{name:"Daniel",language:"en-gb",gender:"Male",traits:"🚹",targetQuality:"C",overallGrade:"D"},bm_fable:{name:"Fable",language:"en-gb",gender:"Male",traits:"🚹",targetQuality:"B",overallGrade:"C"}}),Z2=new Map;async function l5(a){if(Z2.has(a))return Z2.get(a);const n=new Float32Array(await async function(i){if(R0&&Object.hasOwn(R0,"readFile")){const w=typeof __dirname<"u"?__dirname:import.meta.dirname,E=R0.resolve(w,`../voices/${i}.bin`),{buffer:v}=await R0.readFile(E);return v}const g=`https://huggingface.co/onnx-community/Kokoro-82M-v1.0-ONNX/resolve/main/voices/${i}.bin`;let p;try{p=await caches.open("kokoro-voices");const w=await p.match(g);if(w)return await w.arrayBuffer()}catch(w){console.warn("Unable to open cache",w)}const h=await fetch(g),C=await h.arrayBuffer();if(p)try{await p.put(g,new Response(C,{headers:h.headers}))}catch(w){console.warn("Unable to cache file",w)}return C}(a));return Z2.set(a,n),n}class Zc{constructor(n,i){this.model=n,this.tokenizer=i}static async from_pretrained(n,{dtype:i="fp32",device:g=null,progress_callback:p=null}={}){const h=_I.from_pretrained(n,{progress_callback:p,dtype:i,device:g}),C=cb.from_pretrained(n,{progress_callback:p}),w=await Promise.all([h,C]);return new Zc(...w)}get voices(){return Wo}list_voices(){console.table(Wo)}_validate_voice(n){if(!Wo.hasOwnProperty(n))throw console.error(`Voice "${n}" not found. Available voices:`),console.table(Wo),new Error(`Voice "${n}" not found. Should be one of: ${Object.keys(Wo).join(", ")}.`);return n.at(0)}async generate(n,{voice:i="af_heart",speed:g=1}={}){const p=this._validate_voice(i),h=await wm(n,p),{input_ids:C}=this.tokenizer(h,{truncation:!0});return this.generate_from_ids(C,{voice:i,speed:g})}async generate_from_ids(n,{voice:i="af_heart",speed:g=1}={}){const p=256*Math.min(Math.max(n.dims.at(-1)-2,0),509),h=(await l5(i)).slice(p,p+256),C={input_ids:n,style:new a0("float32",h,[1,256]),speed:new a0("float32",[g],[1])},{waveform:w}=await this.model(C);return new LI(w.data,24e3)}async*stream(n,{voice:i="af_heart",speed:g=1,split_pattern:p=null}={}){const h=this._validate_voice(i);let C;if(n instanceof al)C=n;else{if(typeof n!="string")throw new Error("Invalid input type. Expected string or TextSplitterStream.");{C=new al;const w=p?n.split(p).map(E=>E.trim()).filter(E=>E.length>0):[n];C.push(...w)}}for await(const w of C){const E=await wm(w,h),{input_ids:v}=this.tokenizer(E,{truncation:!0}),D=await this.generate_from_ids(v,{voice:i,speed:g});yield{text:w,phonemes:E,audio:D}}}}const ol=16e3,Jc=ol/1e3,c5=.3,u5=.1,d5=400,f5=d5*Jc,g5=80,B8=g5*Jc,p5=250*Jc,m5=30,h5=512,C5=Math.ceil(B8/h5),b5={webgpu:{encoder_model:"fp32",decoder_model_merged:"fp32"},wasm:{encoder_model:"fp32",decoder_model_merged:"q8"}},I5="onnx-community/Kokoro-82M-v1.0-ONNX";let nl,v8,pc,n0;const x8={role:"system",content:"You're a helpful and conversational voice assistant. Keep your responses short, clear, and casual."};let Jo=[x8],mc=null,qo=null;const co=new Float32Array(m5*ol);let Ai=0;const w5=new a0("int64",[ol],[]);let km=new a0("float32",new Float32Array(2*1*128),[2,1,128]),$o=!1,il=!1,e0,hc;const A0=[];async function k5(){n0=await Zc.from_pretrained(I5,{dtype:"fp32",device:"webgpu"});const a="webgpu";globalThis.postMessage({type:"info",data:{message:`Using device: "${a}"`}}),globalThis.postMessage({type:"info",data:{message:"Loading models...",duration:"until_next"}}),v8=await OI.from_pretrained("onnx-community/silero-vad",{config:{model_type:"custom"},dtype:"fp32",progress_callback:n=>globalThis.postMessage({type:"progress",data:{message:n}})}).catch(n=>{throw globalThis.postMessage({type:"error",data:{error:n,message:n.message}}),n}),pc=await jI("automatic-speech-recognition","onnx-community/whisper-base",{device:a,dtype:b5[a],progress_callback:n=>globalThis.postMessage({type:"progress",data:{message:n}})}).catch(n=>{throw globalThis.postMessage({type:"error",data:{error:n,message:n.message}}),n}),await pc(new Float32Array(ol)),hc=await zI.from_pretrained("HuggingFaceTB/SmolLM2-1.7B-Instruct",{dtype:await fm()?"q4f16":"int8",device:await fm()?"webgpu":"wasm",progress_callback:n=>globalThis.postMessage({type:"progress",data:{message:n}})}).catch(n=>{throw globalThis.postMessage({type:"error",data:{error:n,message:n.message}}),n}),e0=await cb.from_pretrained("HuggingFaceTB/SmolLM2-1.7B-Instruct").catch(n=>{throw globalThis.postMessage({type:"error",data:{error:n,message:n.message}}),n}),await hc.generate({...e0("x"),max_new_tokens:1}),globalThis.postMessage({type:"status",data:{status:"ready",message:"Ready!",voices:n0.voices}})}k5();async function E5(a){if(!a)return!1;const n=new a0("float32",a,[1,a.length]),{stateN:i,output:g}=await v8({input:n,sr:w5,state:km});km=i;const p=g.data[0];return p>c5||$o&&p>=u5}async function M5(a,n){il=!0;const g=(await pc(a)).text.trim();if(["","[BLANK_AUDIO]"].includes(g))return;Jo.push({role:"user",content:g});const p=new al,h=n0.stream(p,{voice:nl});(async()=>{for await(const{text:x,audio:S}of h)globalThis.postMessage({type:"output",data:{text:x,result:S}})})();const C=e0.apply_chat_template(Jo,{add_generation_prompt:!0,return_dict:!0}),w=new RI(e0,{skip_prompt:!0,skip_special_tokens:!0,callback_function:x=>{p.push(x)},token_callback_function:()=>{}});qo=new NI;const E=await hc.generate({...C,past_key_values:mc,do_sample:!1,max_new_tokens:1024,streamer:w,stopping_criteria:qo,return_dict_in_generate:!0}),{past_key_values:v,sequences:D}=E;mc=v,p.close();const B=e0.batch_decode(D.slice(null,[C.input_ids.dims[1],null]),{skip_special_tokens:!0});Jo.push({role:"assistant",content:B[0]})}let U0=0;function y8(a=0){globalThis.postMessage({type:"status",data:{status:"recording_end",message:"Transcribing...",duration:"until_next"}}),co.fill(0,a),Ai=a,$o=!1,U0=0}function Em(a){const n=(a==null?void 0:a.length)??0,i=co.slice(0,Ai+B8),g=A0.reduce((C,w)=>C+w.length,0),p=new Float32Array(g+i.length);let h=0;for(const C of A0)p.set(C,h),h+=C.length;p.set(i,h),M5(p),a&&co.set(a,0),y8(n)}globalThis.onmessage=async a=>{var C;const{type:n,buffer:i}=a.data;if(n==="audio"&&il)return;switch(n){case"start_call":{const w=((C=n0.voices[nl??"af_heart"])==null?void 0:C.name)??"Heart";B5(`Hey there, my name is ${w}! How can I help you today?`);return}case"end_call":Jo=[x8],mc=null;break;case"interrupt":qo==null||qo.interrupt();return;case"set_voice":nl=a.data.voice,globalThis.postMessage({type:"set_voice_response",data:{ok:!0}});return;case"playback_ended":il=!1;return}const g=$o,p=await E5(i);if(!g&&!p){A0.length>=C5&&A0.shift(),A0.push(i);return}const h=co.length-Ai;if(i.length>=h){co.set(i.subarray(0,h),Ai),Ai+=h;const w=i.subarray(h);Em(w);return}else co.set(i,Ai),Ai+=i.length;if(p){$o||globalThis.postMessage({type:"status",data:{status:"recording_start",message:"Listening...",duration:"until_next"}}),$o=!0,U0=0;return}if(U0+=i.length,!(U0{for await(const{text:g,audio:p}of i)globalThis.postMessage({type:"output",data:{text:g,result:p}})})(),n.push(a),n.close(),Jo.push({role:"assistant",content:a})}